Update html
|
@ -945,7 +945,7 @@
|
|||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.11.3"
|
||||
"version": "3.11.13"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
|
|
|
@ -84,7 +84,7 @@
|
|||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.11.3"
|
||||
"version": "3.11.13"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
|
|
|
@ -877,7 +877,7 @@
|
|||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.11.3"
|
||||
"version": "3.11.13"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
"id": "42cfa8b1-20d2-47e4-a1f0-161c4517df2c",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"(path-filtering)=\n",
|
||||
"# Activity 7: Large clusters and path filtering"
|
||||
]
|
||||
},
|
||||
|
@ -33,7 +34,7 @@
|
|||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.11.3"
|
||||
"version": "3.11.13"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
<link rel="stylesheet" type="text/css" href="../_static/styles/sphinx-book-theme.css?v=eba8b062" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/togglebutton.css?v=13237357" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css?v=76b2166b" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css?v=be8a1c11" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/sphinx-thebe.css?v=4fa983c6" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/sphinx-design.min.css?v=95c83b7e" />
|
||||
|
||||
|
@ -1129,7 +1129,7 @@ Building atomic systems, structures… is pretty straightforward:</p>
|
|||
<div class="footer-item">
|
||||
|
||||
<p class="component-author">
|
||||
By Sylvain Tricot, Philippe Schieffer & Didier Sébilleau
|
||||
By Sylvain Tricot
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
<link rel="stylesheet" type="text/css" href="../_static/styles/sphinx-book-theme.css?v=eba8b062" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/togglebutton.css?v=13237357" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css?v=76b2166b" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css?v=be8a1c11" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/sphinx-thebe.css?v=4fa983c6" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/sphinx-design.min.css?v=95c83b7e" />
|
||||
|
||||
|
@ -1514,7 +1514,7 @@ The idea is to use low energy photoelectron diffraction to see the substitution
|
|||
<div class="footer-item">
|
||||
|
||||
<p class="component-author">
|
||||
By Sylvain Tricot, Philippe Schieffer & Didier Sébilleau
|
||||
By Sylvain Tricot
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
|
|
@ -1,455 +0,0 @@
|
|||
|
||||
<!DOCTYPE html>
|
||||
|
||||
|
||||
<html lang="en" data-content_root="../" >
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
|
||||
<title>Activity 3: Adsorbates and the single scattering approach — My sample book</title>
|
||||
|
||||
|
||||
|
||||
<script data-cfasync="false">
|
||||
document.documentElement.dataset.mode = localStorage.getItem("mode") || "";
|
||||
document.documentElement.dataset.theme = localStorage.getItem("theme") || "";
|
||||
</script>
|
||||
|
||||
<!-- Loaded before other Sphinx assets -->
|
||||
<link href="../_static/styles/theme.css?digest=dfe6caa3a7d634c4db9b" rel="stylesheet" />
|
||||
<link href="../_static/styles/bootstrap.css?digest=dfe6caa3a7d634c4db9b" rel="stylesheet" />
|
||||
<link href="../_static/styles/pydata-sphinx-theme.css?digest=dfe6caa3a7d634c4db9b" rel="stylesheet" />
|
||||
|
||||
|
||||
<link href="../_static/vendor/fontawesome/6.5.2/css/all.min.css?digest=dfe6caa3a7d634c4db9b" rel="stylesheet" />
|
||||
<link rel="preload" as="font" type="font/woff2" crossorigin href="../_static/vendor/fontawesome/6.5.2/webfonts/fa-solid-900.woff2" />
|
||||
<link rel="preload" as="font" type="font/woff2" crossorigin href="../_static/vendor/fontawesome/6.5.2/webfonts/fa-brands-400.woff2" />
|
||||
<link rel="preload" as="font" type="font/woff2" crossorigin href="../_static/vendor/fontawesome/6.5.2/webfonts/fa-regular-400.woff2" />
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=03e43079" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/styles/sphinx-book-theme.css?v=eba8b062" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/togglebutton.css?v=13237357" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css?v=76b2166b" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/sphinx-thebe.css?v=4fa983c6" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/sphinx-design.min.css?v=95c83b7e" />
|
||||
|
||||
<!-- Pre-loaded scripts that we'll load fully later -->
|
||||
<link rel="preload" as="script" href="../_static/scripts/bootstrap.js?digest=dfe6caa3a7d634c4db9b" />
|
||||
<link rel="preload" as="script" href="../_static/scripts/pydata-sphinx-theme.js?digest=dfe6caa3a7d634c4db9b" />
|
||||
<script src="../_static/vendor/fontawesome/6.5.2/js/all.min.js?digest=dfe6caa3a7d634c4db9b"></script>
|
||||
|
||||
<script src="../_static/documentation_options.js?v=9eb32ce0"></script>
|
||||
<script src="../_static/doctools.js?v=9a2dae69"></script>
|
||||
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
|
||||
<script src="../_static/clipboard.min.js?v=a7894cd8"></script>
|
||||
<script src="../_static/copybutton.js?v=f281be69"></script>
|
||||
<script src="../_static/scripts/sphinx-book-theme.js?v=887ef09a"></script>
|
||||
<script>let toggleHintShow = 'Click to show';</script>
|
||||
<script>let toggleHintHide = 'Click to hide';</script>
|
||||
<script>let toggleOpenOnPrint = 'true';</script>
|
||||
<script src="../_static/togglebutton.js?v=4a39c7ea"></script>
|
||||
<script>var togglebuttonSelector = '.toggle, .admonition.dropdown';</script>
|
||||
<script src="../_static/design-tabs.js?v=f930bc37"></script>
|
||||
<script>const THEBE_JS_URL = "https://unpkg.com/thebe@0.8.2/lib/index.js"; const thebe_selector = ".thebe,.cell"; const thebe_selector_input = "pre"; const thebe_selector_output = ".output, .cell_output"</script>
|
||||
<script async="async" src="../_static/sphinx-thebe.js?v=c100c467"></script>
|
||||
<script>var togglebuttonSelector = '.toggle, .admonition.dropdown';</script>
|
||||
<script>const THEBE_JS_URL = "https://unpkg.com/thebe@0.8.2/lib/index.js"; const thebe_selector = ".thebe,.cell"; const thebe_selector_input = "pre"; const thebe_selector_output = ".output, .cell_output"</script>
|
||||
<script>DOCUMENTATION_OPTIONS.pagename = 'Activity02/Untitled';</script>
|
||||
<link rel="index" title="Index" href="../genindex.html" />
|
||||
<link rel="search" title="Search" href="../search.html" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<meta name="docsearch:language" content="en"/>
|
||||
</head>
|
||||
|
||||
|
||||
<body data-bs-spy="scroll" data-bs-target=".bd-toc-nav" data-offset="180" data-bs-root-margin="0px 0px -60%" data-default-mode="">
|
||||
|
||||
|
||||
|
||||
<div id="pst-skip-link" class="skip-link d-print-none"><a href="#main-content">Skip to main content</a></div>
|
||||
|
||||
<div id="pst-scroll-pixel-helper"></div>
|
||||
|
||||
<button type="button" class="btn rounded-pill" id="pst-back-to-top">
|
||||
<i class="fa-solid fa-arrow-up"></i>Back to top</button>
|
||||
|
||||
|
||||
<input type="checkbox"
|
||||
class="sidebar-toggle"
|
||||
id="pst-primary-sidebar-checkbox"/>
|
||||
<label class="overlay overlay-primary" for="pst-primary-sidebar-checkbox"></label>
|
||||
|
||||
<input type="checkbox"
|
||||
class="sidebar-toggle"
|
||||
id="pst-secondary-sidebar-checkbox"/>
|
||||
<label class="overlay overlay-secondary" for="pst-secondary-sidebar-checkbox"></label>
|
||||
|
||||
<div class="search-button__wrapper">
|
||||
<div class="search-button__overlay"></div>
|
||||
<div class="search-button__search-container">
|
||||
<form class="bd-search d-flex align-items-center"
|
||||
action="../search.html"
|
||||
method="get">
|
||||
<i class="fa-solid fa-magnifying-glass"></i>
|
||||
<input type="search"
|
||||
class="form-control"
|
||||
name="q"
|
||||
id="search-input"
|
||||
placeholder="Search this book..."
|
||||
aria-label="Search this book..."
|
||||
autocomplete="off"
|
||||
autocorrect="off"
|
||||
autocapitalize="off"
|
||||
spellcheck="false"/>
|
||||
<span class="search-button__kbd-shortcut"><kbd class="kbd-shortcut__modifier">Ctrl</kbd>+<kbd>K</kbd></span>
|
||||
</form></div>
|
||||
</div>
|
||||
|
||||
<div class="pst-async-banner-revealer d-none">
|
||||
<aside id="bd-header-version-warning" class="d-none d-print-none" aria-label="Version warning"></aside>
|
||||
</div>
|
||||
|
||||
|
||||
<header class="bd-header navbar navbar-expand-lg bd-navbar d-print-none">
|
||||
</header>
|
||||
|
||||
|
||||
<div class="bd-container">
|
||||
<div class="bd-container__inner bd-page-width">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="bd-sidebar-primary bd-sidebar">
|
||||
|
||||
|
||||
|
||||
<div class="sidebar-header-items sidebar-primary__section">
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="sidebar-primary-items__start sidebar-primary__section">
|
||||
<div class="sidebar-primary-item">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a class="navbar-brand logo" href="../intro.html">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<img src="../_static/logo.png" class="logo__image only-light" alt="My sample book - Home"/>
|
||||
<script>document.write(`<img src="../_static/logo.png" class="logo__image only-dark" alt="My sample book - Home"/>`);</script>
|
||||
|
||||
|
||||
</a></div>
|
||||
<div class="sidebar-primary-item">
|
||||
|
||||
<script>
|
||||
document.write(`
|
||||
<button class="btn search-button-field search-button__button" title="Search" aria-label="Search" data-bs-placement="bottom" data-bs-toggle="tooltip">
|
||||
<i class="fa-solid fa-magnifying-glass"></i>
|
||||
<span class="search-button__default-text">Search</span>
|
||||
<span class="search-button__kbd-shortcut"><kbd class="kbd-shortcut__modifier">Ctrl</kbd>+<kbd class="kbd-shortcut__modifier">K</kbd></span>
|
||||
</button>
|
||||
`);
|
||||
</script></div>
|
||||
<div class="sidebar-primary-item"><nav class="bd-links bd-docs-nav" aria-label="Main">
|
||||
<div class="bd-toc-item navbar-nav active">
|
||||
|
||||
<ul class="nav bd-sidenav bd-sidenav__home-link">
|
||||
<li class="toctree-l1">
|
||||
<a class="reference internal" href="../intro.html">
|
||||
Welcome to your Jupyter Book
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="nav bd-sidenav">
|
||||
<li class="toctree-l1"><a class="reference internal" href="../Activity01/Activity01.html">Activity 1: Getting started</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</nav></div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="sidebar-primary-items__end sidebar-primary__section">
|
||||
</div>
|
||||
|
||||
<div id="rtd-footer-container"></div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<main id="main-content" class="bd-main" role="main">
|
||||
|
||||
|
||||
|
||||
<div class="sbt-scroll-pixel-helper"></div>
|
||||
|
||||
<div class="bd-content">
|
||||
<div class="bd-article-container">
|
||||
|
||||
<div class="bd-header-article d-print-none">
|
||||
<div class="header-article-items header-article__inner">
|
||||
|
||||
<div class="header-article-items__start">
|
||||
|
||||
<div class="header-article-item"><button class="sidebar-toggle primary-toggle btn btn-sm" title="Toggle primary sidebar" data-bs-placement="bottom" data-bs-toggle="tooltip">
|
||||
<span class="fa-solid fa-bars"></span>
|
||||
</button></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="header-article-items__end">
|
||||
|
||||
<div class="header-article-item">
|
||||
|
||||
<div class="article-header-buttons">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="dropdown dropdown-download-buttons">
|
||||
<button class="btn dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false" aria-label="Download this page">
|
||||
<i class="fas fa-download"></i>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
|
||||
|
||||
|
||||
<li><a href="../_sources/Activity02/Untitled.ipynb" target="_blank"
|
||||
class="btn btn-sm btn-download-source-button dropdown-item"
|
||||
title="Download source file"
|
||||
data-bs-placement="left" data-bs-toggle="tooltip"
|
||||
>
|
||||
|
||||
|
||||
<span class="btn__icon-container">
|
||||
<i class="fas fa-file"></i>
|
||||
</span>
|
||||
<span class="btn__text-container">.ipynb</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
<li>
|
||||
<button onclick="window.print()"
|
||||
class="btn btn-sm btn-download-pdf-button dropdown-item"
|
||||
title="Print to PDF"
|
||||
data-bs-placement="left" data-bs-toggle="tooltip"
|
||||
>
|
||||
|
||||
|
||||
<span class="btn__icon-container">
|
||||
<i class="fas fa-file-pdf"></i>
|
||||
</span>
|
||||
<span class="btn__text-container">.pdf</span>
|
||||
</button>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<button onclick="toggleFullScreen()"
|
||||
class="btn btn-sm btn-fullscreen-button"
|
||||
title="Fullscreen mode"
|
||||
data-bs-placement="bottom" data-bs-toggle="tooltip"
|
||||
>
|
||||
|
||||
|
||||
<span class="btn__icon-container">
|
||||
<i class="fas fa-expand"></i>
|
||||
</span>
|
||||
|
||||
</button>
|
||||
|
||||
|
||||
|
||||
<script>
|
||||
document.write(`
|
||||
<button class="btn btn-sm nav-link pst-navbar-icon theme-switch-button" title="light/dark" aria-label="light/dark" data-bs-placement="bottom" data-bs-toggle="tooltip">
|
||||
<i class="theme-switch fa-solid fa-sun fa-lg" data-mode="light"></i>
|
||||
<i class="theme-switch fa-solid fa-moon fa-lg" data-mode="dark"></i>
|
||||
<i class="theme-switch fa-solid fa-circle-half-stroke fa-lg" data-mode="auto"></i>
|
||||
</button>
|
||||
`);
|
||||
</script>
|
||||
|
||||
|
||||
<script>
|
||||
document.write(`
|
||||
<button class="btn btn-sm pst-navbar-icon search-button search-button__button" title="Search" aria-label="Search" data-bs-placement="bottom" data-bs-toggle="tooltip">
|
||||
<i class="fa-solid fa-magnifying-glass fa-lg"></i>
|
||||
</button>
|
||||
`);
|
||||
</script>
|
||||
<button class="sidebar-toggle secondary-toggle btn btn-sm" title="Toggle secondary sidebar" data-bs-placement="bottom" data-bs-toggle="tooltip">
|
||||
<span class="fa-solid fa-list"></span>
|
||||
</button>
|
||||
</div></div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div id="jb-print-docs-body" class="onlyprint">
|
||||
<h1>Activity 3: Adsorbates and the single scattering approach</h1>
|
||||
<!-- Table of contents -->
|
||||
<div id="print-main-content">
|
||||
<div id="jb-print-toc">
|
||||
|
||||
<div>
|
||||
<h2> Contents </h2>
|
||||
</div>
|
||||
<nav aria-label="Page">
|
||||
<ul class="visible nav section-nav flex-column">
|
||||
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#oxygen-on-rh-001">Oxygen on Rh(001)</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div id="searchbox"></div>
|
||||
<article class="bd-article">
|
||||
|
||||
<section class="tex2jax_ignore mathjax_ignore" id="activity-3-adsorbates-and-the-single-scattering-approach">
|
||||
<h1>Activity 3: Adsorbates and the single scattering approach<a class="headerlink" href="#activity-3-adsorbates-and-the-single-scattering-approach" title="Link to this heading">#</a></h1>
|
||||
<section id="oxygen-on-rh-001">
|
||||
<h2>Oxygen on Rh(001)<a class="headerlink" href="#oxygen-on-rh-001" title="Link to this heading">#</a></h2>
|
||||
<p>In a paper published in 1998, T. Gerber et al. used the quite high backscattering factor of Rhodium atoms to probe
|
||||
the distance of Oxygen atoms adsorbed on a Rhodium surface. Some electrons coming from Oxygen atoms are ejected
|
||||
toward the Rhodium surface. They are then backscattered and interfere with the direct signal comming from Oxygen atoms (see the figure below). They demonstrated both experimentally and numerically with a sinle scattering computation that this lead to a very accurate probe of adsorbed species that can be sensitive to bond length changes of the order of</p>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<script type="text/x-thebe-config">
|
||||
{
|
||||
requestKernel: true,
|
||||
binderOptions: {
|
||||
repo: "binder-examples/jupyter-stacks-datascience",
|
||||
ref: "master",
|
||||
},
|
||||
codeMirrorConfig: {
|
||||
theme: "abcdef",
|
||||
mode: "python"
|
||||
},
|
||||
kernelOptions: {
|
||||
name: "python3",
|
||||
path: "./Activity02"
|
||||
},
|
||||
predefinedOutput: true
|
||||
}
|
||||
</script>
|
||||
<script>kernelName = 'python3'</script>
|
||||
|
||||
</article>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<footer class="prev-next-footer d-print-none">
|
||||
|
||||
<div class="prev-next-area">
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="bd-sidebar-secondary bd-toc"><div class="sidebar-secondary-items sidebar-secondary__inner">
|
||||
|
||||
|
||||
<div class="sidebar-secondary-item">
|
||||
<div class="page-toc tocsection onthispage">
|
||||
<i class="fa-solid fa-list"></i> Contents
|
||||
</div>
|
||||
<nav class="bd-toc-nav page-toc">
|
||||
<ul class="visible nav section-nav flex-column">
|
||||
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#oxygen-on-rh-001">Oxygen on Rh(001)</a></li>
|
||||
</ul>
|
||||
</nav></div>
|
||||
|
||||
</div></div>
|
||||
|
||||
|
||||
</div>
|
||||
<footer class="bd-footer-content">
|
||||
|
||||
<div class="bd-footer-content__inner container">
|
||||
|
||||
<div class="footer-item">
|
||||
|
||||
<p class="component-author">
|
||||
By The Jupyter Book Community
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="footer-item">
|
||||
|
||||
|
||||
<p class="copyright">
|
||||
|
||||
© Copyright 2023.
|
||||
<br/>
|
||||
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="footer-item">
|
||||
|
||||
</div>
|
||||
|
||||
<div class="footer-item">
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
||||
</main>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Scripts loaded after <body> so the DOM is not blocked -->
|
||||
<script src="../_static/scripts/bootstrap.js?digest=dfe6caa3a7d634c4db9b"></script>
|
||||
<script src="../_static/scripts/pydata-sphinx-theme.js?digest=dfe6caa3a7d634c4db9b"></script>
|
||||
|
||||
<footer class="bd-footer">
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
|
@ -32,7 +32,7 @@
|
|||
<link rel="stylesheet" type="text/css" href="../_static/styles/sphinx-book-theme.css?v=eba8b062" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/togglebutton.css?v=13237357" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css?v=76b2166b" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css?v=be8a1c11" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/sphinx-thebe.css?v=4fa983c6" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/sphinx-design.min.css?v=95c83b7e" />
|
||||
|
||||
|
@ -700,7 +700,7 @@ on top of a fcc site of 3 Rh atoms at various altitudes <span class="math notran
|
|||
<div class="footer-item">
|
||||
|
||||
<p class="component-author">
|
||||
By Sylvain Tricot, Philippe Schieffer & Didier Sébilleau
|
||||
By Sylvain Tricot
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
<link rel="stylesheet" type="text/css" href="../_static/styles/sphinx-book-theme.css?v=eba8b062" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/togglebutton.css?v=13237357" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css?v=76b2166b" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css?v=be8a1c11" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/sphinx-thebe.css?v=4fa983c6" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/sphinx-design.min.css?v=95c83b7e" />
|
||||
|
||||
|
@ -509,7 +509,7 @@ document.write(`
|
|||
<div class="footer-item">
|
||||
|
||||
<p class="component-author">
|
||||
By Sylvain Tricot, Philippe Schieffer & Didier Sébilleau
|
||||
By Sylvain Tricot
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
<link rel="stylesheet" type="text/css" href="../_static/styles/sphinx-book-theme.css?v=eba8b062" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/togglebutton.css?v=13237357" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css?v=76b2166b" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css?v=be8a1c11" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/sphinx-thebe.css?v=4fa983c6" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/sphinx-design.min.css?v=95c83b7e" />
|
||||
|
||||
|
@ -1153,7 +1153,7 @@ Typically, in the forward scattering regime, the scattering order corresponds to
|
|||
<div class="footer-item">
|
||||
|
||||
<p class="component-author">
|
||||
By Sylvain Tricot, Philippe Schieffer & Didier Sébilleau
|
||||
By Sylvain Tricot
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
<link rel="stylesheet" type="text/css" href="../_static/styles/sphinx-book-theme.css?v=eba8b062" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/togglebutton.css?v=13237357" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css?v=76b2166b" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css?v=be8a1c11" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/sphinx-thebe.css?v=4fa983c6" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/sphinx-design.min.css?v=95c83b7e" />
|
||||
|
||||
|
@ -57,6 +57,8 @@
|
|||
<script async="async" src="../_static/sphinx-thebe.js?v=c100c467"></script>
|
||||
<script>var togglebuttonSelector = '.toggle, .admonition.dropdown';</script>
|
||||
<script>const THEBE_JS_URL = "https://unpkg.com/thebe@0.8.2/lib/index.js"; const thebe_selector = ".thebe,.cell"; const thebe_selector_input = "pre"; const thebe_selector_output = ".output, .cell_output"</script>
|
||||
<script>window.MathJax = {"options": {"processHtmlClass": "tex2jax_process|mathjax_process|math|output_area"}}</script>
|
||||
<script defer="defer" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
|
||||
<script>DOCUMENTATION_OPTIONS.pagename = 'Activity06/Activity06';</script>
|
||||
<link rel="index" title="Index" href="../genindex.html" />
|
||||
<link rel="search" title="Search" href="../search.html" />
|
||||
|
@ -317,7 +319,9 @@ document.write(`
|
|||
</button>
|
||||
`);
|
||||
</script>
|
||||
|
||||
<button class="sidebar-toggle secondary-toggle btn btn-sm" title="Toggle secondary sidebar" data-bs-placement="bottom" data-bs-toggle="tooltip">
|
||||
<span class="fa-solid fa-list"></span>
|
||||
</button>
|
||||
</div></div>
|
||||
|
||||
</div>
|
||||
|
@ -333,6 +337,17 @@ document.write(`
|
|||
<div id="print-main-content">
|
||||
<div id="jb-print-toc">
|
||||
|
||||
<div>
|
||||
<h2> Contents </h2>
|
||||
</div>
|
||||
<nav aria-label="Page">
|
||||
<ul class="visible nav section-nav flex-column">
|
||||
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#surface-and-bulk-effects-of-the-temperature">Surface and bulk effects of the temperature</a><ul class="nav section-nav flex-column">
|
||||
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#the-script">The script</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -344,6 +359,318 @@ document.write(`
|
|||
|
||||
<section class="tex2jax_ignore mathjax_ignore" id="activity-6-effect-of-the-temperature">
|
||||
<h1>Activity 6: Effect of the temperature<a class="headerlink" href="#activity-6-effect-of-the-temperature" title="Link to this heading">#</a></h1>
|
||||
<section id="surface-and-bulk-effects-of-the-temperature">
|
||||
<h2>Surface and bulk effects of the temperature<a class="headerlink" href="#surface-and-bulk-effects-of-the-temperature" title="Link to this heading">#</a></h2>
|
||||
<p>In this example, we will look at the effects of the temperature on the X-Ray photoelectron diffraction from a copper substrate. We will base our python script on a paper published in 1986 by R. Trehan and S. Fadley. In their work, they performed azimutal scans of a copper(001) surface at 2 different polar angles: one at grazing incidence and one at 45° for incresing temperatures from 298K to roughly 1000K.</p>
|
||||
<p>For each azimutal scan, they looked at the anisotropy of the signal, that is:</p>
|
||||
<div class="math notranslate nohighlight" id="equation-eq-anisotropy">
|
||||
<span class="eqno">(1)<a class="headerlink" href="#equation-eq-anisotropy" title="Link to this equation">#</a></span>\[\frac{I_{max} - I_{min}}{I_{max}}=\frac{\Delta I}{I_{max}}\]</div>
|
||||
<p>This value is representative of how clear are the <em>modulations</em> of the signal. They also proposed single scattering calculations that reproduced well these results.</p>
|
||||
<p>We will reproduce this kind of calculations to introduce the parameters that control the vibrational damping.</p>
|
||||
<div class="admonition seealso" id="msd-paper">
|
||||
<p class="admonition-title">See also</p>
|
||||
<p>based on this paper from R. Trehan and C.S. Fadley
|
||||
<a class="reference external" href="https://doi.org/10.1103/PhysRevB.34.6784">Phys. Rev. B <strong>34</strong> p6784–98 (2012)</a></p>
|
||||
</div>
|
||||
<section id="the-script">
|
||||
<h3>The script<a class="headerlink" href="#the-script" title="Link to this heading">#</a></h3>
|
||||
<p>Since we want to distinguish between bulk (low polar angles, <span class="math notranslate nohighlight">\(\theta = 45°\)</span> in the paper) and surface effects (large polar angles, <span class="math notranslate nohighlight">\(\theta = 83°\)</span> in the paper), we need to compute scans for different emitters and different depths in the cluster.</p>
|
||||
<p>The script contains 3 functions:</p>
|
||||
<ol class="arabic simple">
|
||||
<li><p>The <code class="docutils literal notranslate"><span class="pre">create_clusters</span></code> function will build clusters with increasing number of planes, with the emitter being in the deepest plane for each cluster.</p></li>
|
||||
<li><p>The function <code class="docutils literal notranslate"><span class="pre">compute</span></code> will compute the azimuthal scan for a given cluster.</p></li>
|
||||
<li><p>The <code class="docutils literal notranslate"><span class="pre">analysis</span></code> function will sum the intensity from each plane for a given temperature. This will be the <em>substrate total signal</em> (more on this in the <a class="reference internal" href="../Activity07/Activity07.html#path-filtering"><span class="std std-ref">Activity 7: Large clusters and path filtering</span></a> section). The function will also compute the anisotropy (equation <a class="reference internal" href="#equation-eq-anisotropy">(1)</a>).</p></li>
|
||||
</ol>
|
||||
<p>MsSpec can introduce temperature effects in two ways: either by using the Debye Waller model or by doing an average over the phase shifts. We will explore the latter in this example.</p>
|
||||
<p>Regardless of the option chosen to model temperature effects, we need to define mean square displacement (MSD) values of the atoms in our cluster. We will use the Debye model for this. The MSD is defined as follows:</p>
|
||||
<div class="math notranslate nohighlight" id="equation-eq-debye">
|
||||
<span class="eqno">(2)<a class="headerlink" href="#equation-eq-debye" title="Link to this equation">#</a></span>\[<U_j^2(T)> = \frac{3\hbar^2 T}{M K_B \Theta_D^2}\]</div>
|
||||
<p>where <span class="math notranslate nohighlight">\(\hbar\)</span> is the reduce Planck’s constant, <span class="math notranslate nohighlight">\(T\)</span> is the temperature, <span class="math notranslate nohighlight">\(M\)</span> is the mass of the atom, <span class="math notranslate nohighlight">\(k_B\)</span> is the Boltzmann’s constant and <span class="math notranslate nohighlight">\(\Theta_D\)</span> is the Debye temperature of the sample.</p>
|
||||
<p>To get an idea of the typical order of magnitude for MSD, the figure below plots the values of MSD for copper for temperatures ranging from 300 K to 1000 K.</p>
|
||||
<figure class="align-default" id="msd-fig">
|
||||
<a class="reference internal image-reference" href="../_images/msd.jpg"><img alt="Cu MSD" class="align-center" src="../_images/msd.jpg" style="width: 600px;" />
|
||||
</a>
|
||||
<figcaption>
|
||||
<p><span class="caption-number">Fig. 14 </span><span class="caption-text">Variation of MSD for copper versus temperature using equation <a class="reference internal" href="#equation-eq-debye">(2)</a></span><a class="headerlink" href="#msd-fig" title="Link to this image">#</a></p>
|
||||
</figcaption>
|
||||
</figure>
|
||||
<div class="sd-tab-set docutils">
|
||||
<input checked="checked" id="sd-tab-item-0" name="sd-tab-set-0" type="radio">
|
||||
<label class="sd-tab-label" for="sd-tab-item-0">
|
||||
<i class="fa-solid fa-circle-question"></i> Quiz</label><div class="sd-tab-content docutils">
|
||||
<p>With the help of the <a class="reference external" href="https://msspec.cnrs.fr/parameters.html">MsSpec documentation</a> and the second paragraph p6791 of the <a class="reference internal" href="#msd-paper">article cited above</a>,
|
||||
complete the hilighted lines in the following script to compute the anisotropy of Cu(2p) <span class="math notranslate nohighlight">\(\phi\)</span>-scans for polar angle <span class="math notranslate nohighlight">\(\theta\)</span>=45° and 83°.</p>
|
||||
<p>How is varying the anisotropy versus the temperature. How can you qualitatively explain this variation ?</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="linenos"> 1</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"> 2</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"> 3</span>
|
||||
<span class="linenos"> 4</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"> 5</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"> 6</span>
|
||||
<span class="linenos"> 7</span><span class="k">def</span><span class="w"> </span><span class="nf">create_clusters</span><span class="p">(</span><span class="n">nplanes</span><span class="o">=</span><span class="mi">3</span><span class="p">):</span>
|
||||
<span class="linenos"> 8</span> <span class="n">copper</span> <span class="o">=</span> <span class="n">bulk</span><span class="p">(</span><span class="s1">'Cu'</span><span class="p">,</span> <span class="n">a</span><span class="o">=</span><span class="mf">3.6</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"> 9</span> <span class="n">clusters</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="linenos"> 10</span> <span class="k">for</span> <span class="n">emitter_plane</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">nplanes</span><span class="p">):</span>
|
||||
<span class="linenos"> 11</span> <span class="n">cluster</span> <span class="o">=</span> <span class="n">hemispherical_cluster</span><span class="p">(</span><span class="n">copper</span><span class="p">,</span>
|
||||
<span class="linenos"> 12</span> <span class="n">emitter_plane</span><span class="o">=</span><span class="n">emitter_plane</span><span class="p">,</span>
|
||||
<span class="linenos"> 13</span> <span class="n">planes</span><span class="o">=</span><span class="n">emitter_plane</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span>
|
||||
<span class="linenos"> 14</span> <span class="n">diameter</span><span class="o">=</span><span class="mi">27</span><span class="p">,</span>
|
||||
<span class="linenos"> 15</span> <span class="n">shape</span><span class="o">=</span><span class="s1">'cylindrical'</span><span class="p">)</span>
|
||||
<span class="linenos"> 16</span> <span class="n">cluster</span><span class="o">.</span><span class="n">absorber</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"> 17</span> <span class="c1"># This is how to store extra information with your cluster</span>
|
||||
<span class="linenos"> 18</span> <span class="n">cluster</span><span class="o">.</span><span class="n">info</span><span class="o">.</span><span class="n">update</span><span class="p">({</span>
|
||||
<span class="linenos"> 19</span> <span class="s1">'emitter_plane'</span><span class="p">:</span> <span class="n">emitter_plane</span><span class="p">,</span>
|
||||
<span class="linenos"> 20</span> <span class="p">})</span>
|
||||
<span class="linenos"> 21</span> <span class="n">clusters</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">cluster</span><span class="p">)</span>
|
||||
<span class="linenos"> 22</span> <span class="k">return</span> <span class="n">clusters</span>
|
||||
<span class="linenos"> 23</span>
|
||||
<span class="linenos"> 24</span>
|
||||
<span class="linenos"> 25</span><span class="k">def</span><span class="w"> </span><span class="nf">compute</span><span class="p">(</span><span class="n">clusters</span><span class="p">,</span> <span class="n">all_theta</span><span class="o">=</span><span class="p">[</span><span class="mf">45.</span><span class="p">,</span> <span class="mf">83.</span><span class="p">],</span>
|
||||
<span class="linenos"> 26</span> <span class="n">all_T</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="mf">300.</span><span class="p">,</span> <span class="mf">1000.</span><span class="p">,</span> <span class="mf">400.</span><span class="p">)):</span>
|
||||
<span class="linenos"> 27</span> <span class="n">data</span> <span class="o">=</span> <span class="kc">None</span>
|
||||
<span class="linenos"> 28</span> <span class="k">for</span> <span class="n">cluster</span> <span class="ow">in</span> <span class="n">clusters</span><span class="p">:</span>
|
||||
<span class="linenos"> 29</span> <span class="c1"># Retrieve emitter's plane from cluster object</span>
|
||||
<span class="linenos"> 30</span> <span class="n">plane</span> <span class="o">=</span> <span class="n">cluster</span><span class="o">.</span><span class="n">info</span><span class="p">[</span><span class="s1">'emitter_plane'</span><span class="p">]</span>
|
||||
<span class="linenos"> 31</span>
|
||||
<span class="linenos"> 32</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">'PED'</span><span class="p">,</span> <span class="n">algorithm</span><span class="o">=</span><span class="s1">'expansion'</span><span class="p">)</span>
|
||||
<span class="linenos"> 33</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"> 34</span> <span class="n">calc</span><span class="o">.</span><span class="n">muffintin_parameters</span><span class="o">.</span><span class="n">interstitial_potential</span> <span class="o">=</span> <span class="mf">14.1</span>
|
||||
<span class="linenos"> 35</span>
|
||||
<span class="linenos"> 36</span> <span class="c1"># In simple scattering, it is common practice to use a real potential and</span>
|
||||
<span class="linenos"> 37</span> <span class="c1"># manually define a mean free path arbitrarily lower than the actual physical</span>
|
||||
<span class="linenos"> 38</span> <span class="c1"># value in an attempt to reproduce multiple scattering effects.</span>
|
||||
<span class="linenos"> 39</span> <span class="n">calc</span><span class="o">.</span><span class="n">tmatrix_parameters</span><span class="o">.</span><span class="n">exchange_correlation</span> <span class="o">=</span> <span class="s1">'x_alpha_real'</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">mean_free_path</span> <span class="o">=</span> <span class="o">...</span> <span class="c1"># -> half of the mean free</span>
|
||||
</span><span class="hll"><span class="linenos"> 41</span> <span class="c1"># path (see p6785)</span>
|
||||
</span><span class="linenos"> 42</span> <span class="c1"># Parameters for temperature effects</span>
|
||||
<span class="linenos"> 43</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">'averaged_tl'</span>
|
||||
<span class="hll"><span class="linenos"> 44</span> <span class="n">calc</span><span class="o">.</span><span class="n">calculation_parameters</span><span class="o">.</span><span class="n">use_debye_model</span> <span class="o">=</span> <span class="o">.....</span> <span class="c1"># Use the MsSpec help</span>
|
||||
</span><span class="hll"><span class="linenos"> 45</span> <span class="n">calc</span><span class="o">.</span><span class="n">calculation_parameters</span><span class="o">.</span><span class="n">debye_temperature</span> <span class="o">=</span> <span class="o">...</span> <span class="c1"># and p6791 of the paper</span>
|
||||
</span><span class="hll"><span class="linenos"> 46</span> <span class="n">calc</span><span class="o">.</span><span class="n">calculation_parameters</span><span class="o">.</span><span class="n">vibration_scaling</span> <span class="o">=</span> <span class="o">...</span> <span class="c1"># -> How much more do </span>
|
||||
</span><span class="hll"><span class="linenos"> 47</span> <span class="c1"># surface atoms vibrate </span>
|
||||
</span><span class="hll"><span class="linenos"> 48</span> <span class="c1"># than bulk atoms?</span>
|
||||
</span><span class="linenos"> 49</span> <span class="n">calc</span><span class="o">.</span><span class="n">detector_parameters</span><span class="o">.</span><span class="n">average_sampling</span> <span class="o">=</span> <span class="s1">'low'</span>
|
||||
<span class="linenos"> 50</span> <span class="n">calc</span><span class="o">.</span><span class="n">detector_parameters</span><span class="o">.</span><span class="n">angular_acceptance</span> <span class="o">=</span> <span class="mf">5.7</span>
|
||||
<span class="linenos"> 51</span>
|
||||
<span class="linenos"> 52</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">1</span>
|
||||
<span class="linenos"> 53</span>
|
||||
<span class="linenos"> 54</span>
|
||||
<span class="linenos"> 55</span> <span class="k">for</span> <span class="n">T</span> <span class="ow">in</span> <span class="n">all_T</span><span class="p">:</span>
|
||||
<span class="linenos"> 56</span> <span class="c1"># Define the sample temperature</span>
|
||||
<span class="linenos"> 57</span> <span class="n">calc</span><span class="o">.</span><span class="n">calculation_parameters</span><span class="o">.</span><span class="n">temperature</span> <span class="o">=</span> <span class="n">T</span>
|
||||
<span class="linenos"> 58</span> <span class="c1"># Set the atoms and compute an azimuthal scan</span>
|
||||
<span class="linenos"> 59</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"> 60</span> <span class="n">data</span> <span class="o">=</span> <span class="n">calc</span><span class="o">.</span><span class="n">get_phi_scan</span><span class="p">(</span><span class="n">level</span><span class="o">=</span><span class="s1">'2p'</span><span class="p">,</span> <span class="n">theta</span><span class="o">=</span><span class="n">all_theta</span><span class="p">,</span>
|
||||
<span class="linenos"> 61</span> <span class="n">phi</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">100</span><span class="p">,</span> <span class="mi">51</span><span class="p">),</span>
|
||||
<span class="linenos"> 62</span> <span class="n">kinetic_energy</span><span class="o">=</span><span class="mi">560</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">data</span><span class="p">)</span>
|
||||
<span class="linenos"> 63</span> <span class="c1"># Small changes to add some details in both the title of the dataset</span>
|
||||
<span class="linenos"> 64</span> <span class="c1"># and the figure</span>
|
||||
<span class="linenos"> 65</span> <span class="n">view</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">views</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
|
||||
<span class="linenos"> 66</span> <span class="n">t</span> <span class="o">=</span> <span class="n">view</span><span class="o">.</span><span class="n">_plotopts</span><span class="p">[</span><span class="s1">'title'</span><span class="p">]</span> <span class="o">+</span> <span class="sa">f</span><span class="s2">" (plane #</span><span class="si">{</span><span class="n">plane</span><span class="si">:</span><span class="s2">d</span><span class="si">}</span><span class="s2">, T=</span><span class="si">{</span><span class="n">T</span><span class="si">:</span><span class="s2">.0f</span><span class="si">}</span><span class="s2"> K)"</span>
|
||||
<span class="linenos"> 67</span> <span class="n">data</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">title</span> <span class="o">=</span> <span class="n">t</span>
|
||||
<span class="linenos"> 68</span> <span class="n">view</span><span class="o">.</span><span class="n">set_plot_options</span><span class="p">(</span><span class="n">autoscale</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="n">t</span><span class="p">)</span>
|
||||
<span class="linenos"> 69</span> <span class="n">calc</span><span class="o">.</span><span class="n">shutdown</span><span class="p">()</span>
|
||||
<span class="linenos"> 70</span> <span class="k">return</span> <span class="n">data</span>
|
||||
<span class="linenos"> 71</span>
|
||||
<span class="linenos"> 72</span>
|
||||
<span class="linenos"> 73</span><span class="k">def</span><span class="w"> </span><span class="nf">analysis</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">all_theta</span><span class="p">,</span> <span class="n">all_T</span><span class="p">,</span> <span class="n">nplanes</span><span class="p">):</span>
|
||||
<span class="linenos"> 74</span> <span class="c1"># Sum cross_section for all emitter's plane at a given T</span>
|
||||
<span class="linenos"> 75</span> <span class="c1"># Compute the anisotropy</span>
|
||||
<span class="linenos"> 76</span> <span class="n">results</span> <span class="o">=</span> <span class="nb">dict</span><span class="o">.</span><span class="n">fromkeys</span><span class="p">(</span><span class="n">all_T</span><span class="p">,</span> <span class="p">[])</span>
|
||||
<span class="linenos"> 77</span> <span class="n">anisotropy</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="linenos"> 78</span> <span class="k">for</span> <span class="n">dset</span> <span class="ow">in</span> <span class="n">data</span><span class="p">:</span>
|
||||
<span class="linenos"> 79</span> <span class="c1"># Retrieve temperature</span>
|
||||
<span class="linenos"> 80</span> <span class="n">T</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">dset</span><span class="o">.</span><span class="n">get_parameter</span><span class="p">(</span><span class="s1">'CalculationParameters'</span><span class="p">,</span> <span class="s1">'temperature'</span><span class="p">)[</span><span class="s1">'value'</span><span class="p">])</span>
|
||||
<span class="linenos"> 81</span> <span class="c1"># Update the sum in results</span>
|
||||
<span class="linenos"> 82</span> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">results</span><span class="p">[</span><span class="n">T</span><span class="p">])</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
|
||||
<span class="linenos"> 83</span> <span class="n">results</span><span class="p">[</span><span class="n">T</span><span class="p">]</span> <span class="o">=</span> <span class="n">dset</span><span class="o">.</span><span class="n">cross_section</span>
|
||||
<span class="linenos"> 84</span> <span class="k">else</span><span class="p">:</span>
|
||||
<span class="linenos"> 85</span> <span class="n">results</span><span class="p">[</span><span class="n">T</span><span class="p">]</span> <span class="o">+=</span> <span class="n">dset</span><span class="o">.</span><span class="n">cross_section</span>
|
||||
<span class="linenos"> 86</span>
|
||||
<span class="linenos"> 87</span> <span class="n">anisotropy_dset</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">add_dset</span><span class="p">(</span><span class="s2">"Anisotropies"</span><span class="p">)</span>
|
||||
<span class="linenos"> 88</span> <span class="n">anisotropy_dset</span><span class="o">.</span><span class="n">add_columns</span><span class="p">(</span><span class="n">temperature</span><span class="o">=</span><span class="n">all_T</span><span class="p">)</span>
|
||||
<span class="linenos"> 89</span> <span class="k">for</span> <span class="n">theta</span> <span class="ow">in</span> <span class="n">all_theta</span><span class="p">:</span>
|
||||
<span class="linenos"> 90</span> <span class="n">col_name</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"theta</span><span class="si">{</span><span class="n">theta</span><span class="si">:</span><span class="s2">.0f</span><span class="si">}</span><span class="s2">"</span>
|
||||
<span class="linenos"> 91</span> <span class="n">col_values</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="linenos"> 92</span> <span class="n">i</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">dset</span><span class="o">.</span><span class="n">theta</span> <span class="o">==</span> <span class="n">theta</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
|
||||
<span class="linenos"> 93</span> <span class="k">for</span> <span class="n">T</span> <span class="ow">in</span> <span class="n">all_T</span><span class="p">:</span>
|
||||
<span class="linenos"> 94</span> <span class="n">cs</span> <span class="o">=</span> <span class="n">results</span><span class="p">[</span><span class="n">T</span><span class="p">][</span><span class="n">i</span><span class="p">]</span>
|
||||
<span class="linenos"> 95</span> <span class="n">Imax</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">max</span><span class="p">(</span><span class="n">cs</span><span class="p">)</span>
|
||||
<span class="linenos"> 96</span> <span class="n">Imin</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">min</span><span class="p">(</span><span class="n">cs</span><span class="p">)</span>
|
||||
<span class="linenos"> 97</span> <span class="n">A</span> <span class="o">=</span> <span class="p">(</span><span class="n">Imax</span> <span class="o">-</span> <span class="n">Imin</span><span class="p">)</span><span class="o">/</span><span class="n">Imax</span>
|
||||
<span class="linenos"> 98</span> <span class="n">col_values</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">A</span><span class="p">)</span>
|
||||
<span class="linenos"> 99</span> <span class="n">anisotropy_dset</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="n">col_name</span><span class="p">:</span><span class="n">col_values</span><span class="o">/</span><span class="n">np</span><span class="o">.</span><span class="n">max</span><span class="p">(</span><span class="n">col_values</span><span class="p">)})</span>
|
||||
<span class="linenos">100</span>
|
||||
<span class="linenos">101</span>
|
||||
<span class="linenos">102</span> <span class="n">anisotropy_view</span> <span class="o">=</span> <span class="n">anisotropy_dset</span><span class="o">.</span><span class="n">add_view</span><span class="p">(</span><span class="s1">'Anisotropies'</span><span class="p">,</span>
|
||||
<span class="linenos">103</span> <span class="n">title</span><span class="o">=</span><span class="s1">'Relative anisotropies for Cu(2p)'</span><span class="p">,</span>
|
||||
<span class="linenos">104</span> <span class="n">marker</span><span class="o">=</span><span class="s1">'o'</span><span class="p">,</span>
|
||||
<span class="linenos">105</span> <span class="n">xlabel</span><span class="o">=</span><span class="s1">'T (K)'</span><span class="p">,</span>
|
||||
<span class="linenos">106</span> <span class="n">ylabel</span><span class="o">=</span><span class="sa">r</span><span class="s1">'$\frac{\Delta I / I_</span><span class="si">{max}</span><span class="s1">(T)}{\Delta I_</span><span class="si">{300}</span><span class="s1">'</span>
|
||||
<span class="linenos">107</span> <span class="sa">r</span><span class="s1">'/ I_</span><span class="si">{max}</span><span class="s1">(300)} (\%)$'</span><span class="p">,</span>
|
||||
<span class="linenos">108</span> <span class="n">autoscale</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
||||
<span class="linenos">109</span> <span class="k">for</span> <span class="n">theta</span> <span class="ow">in</span> <span class="n">all_theta</span><span class="p">:</span>
|
||||
<span class="linenos">110</span> <span class="n">col_name</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"theta</span><span class="si">{</span><span class="n">theta</span><span class="si">:</span><span class="s2">.0f</span><span class="si">}</span><span class="s2">"</span>
|
||||
<span class="linenos">111</span> <span class="n">anisotropy_view</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="s1">'temperature'</span><span class="p">,</span> <span class="n">col_name</span><span class="p">,</span>
|
||||
<span class="linenos">112</span> <span class="n">legend</span><span class="o">=</span><span class="sa">r</span><span class="s1">'$\theta = </span><span class="si">{:.0f}</span><span class="s1"> \degree$'</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">theta</span><span class="p">))</span>
|
||||
<span class="linenos">113</span>
|
||||
<span class="linenos">114</span> <span class="k">return</span> <span class="n">data</span>
|
||||
<span class="linenos">115</span>
|
||||
<span class="linenos">116</span>
|
||||
<span class="linenos">117</span>
|
||||
<span class="linenos">118</span><span class="k">if</span> <span class="vm">__name__</span> <span class="o">==</span> <span class="s2">"__main__"</span><span class="p">:</span>
|
||||
<span class="linenos">119</span> <span class="n">nplanes</span> <span class="o">=</span> <span class="mi">4</span>
|
||||
<span class="linenos">120</span> <span class="n">all_theta</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="mi">45</span><span class="p">,</span> <span class="mi">83</span><span class="p">])</span>
|
||||
<span class="linenos">121</span> <span class="n">all_theta</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="mf">300.</span><span class="p">,</span> <span class="mf">1000.</span><span class="p">])</span>
|
||||
<span class="linenos">122</span>
|
||||
<span class="linenos">123</span> <span class="n">clusters</span> <span class="o">=</span> <span class="n">create_clusters</span><span class="p">(</span><span class="n">nplanes</span><span class="o">=</span><span class="n">nplanes</span><span class="p">)</span>
|
||||
<span class="linenos">124</span> <span class="n">data</span> <span class="o">=</span> <span class="n">compute</span><span class="p">(</span><span class="n">clusters</span><span class="p">,</span> <span class="n">all_T</span><span class="o">=</span><span class="n">all_T</span><span class="p">,</span> <span class="n">all_theta</span><span class="o">=</span><span class="n">all_theta</span><span class="p">)</span>
|
||||
<span class="linenos">125</span> <span class="n">data</span> <span class="o">=</span> <span class="n">analysis</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">all_T</span><span class="o">=</span><span class="n">all_T</span><span class="p">,</span> <span class="n">all_theta</span><span class="o">=</span><span class="n">all_theta</span><span class="p">,</span> <span class="n">nplanes</span><span class="o">=</span><span class="n">nplanes</span><span class="p">)</span>
|
||||
<span class="linenos">126</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 class="toggle docutils container">
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="linenos"> 1</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"> 2</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"> 3</span>
|
||||
<span class="linenos"> 4</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"> 5</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"> 6</span>
|
||||
<span class="linenos"> 7</span><span class="k">def</span><span class="w"> </span><span class="nf">create_clusters</span><span class="p">(</span><span class="n">nplanes</span><span class="o">=</span><span class="mi">3</span><span class="p">):</span>
|
||||
<span class="linenos"> 8</span> <span class="n">copper</span> <span class="o">=</span> <span class="n">bulk</span><span class="p">(</span><span class="s1">'Cu'</span><span class="p">,</span> <span class="n">a</span><span class="o">=</span><span class="mf">3.6</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"> 9</span> <span class="n">clusters</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="linenos"> 10</span> <span class="k">for</span> <span class="n">emitter_plane</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">nplanes</span><span class="p">):</span>
|
||||
<span class="linenos"> 11</span> <span class="n">cluster</span> <span class="o">=</span> <span class="n">hemispherical_cluster</span><span class="p">(</span><span class="n">copper</span><span class="p">,</span>
|
||||
<span class="linenos"> 12</span> <span class="n">emitter_plane</span><span class="o">=</span><span class="n">emitter_plane</span><span class="p">,</span>
|
||||
<span class="linenos"> 13</span> <span class="n">planes</span><span class="o">=</span><span class="n">emitter_plane</span><span class="o">+</span><span class="mi">1</span><span class="p">,</span>
|
||||
<span class="linenos"> 14</span> <span class="n">diameter</span><span class="o">=</span><span class="mi">27</span><span class="p">,</span>
|
||||
<span class="linenos"> 15</span> <span class="n">shape</span><span class="o">=</span><span class="s1">'cylindrical'</span><span class="p">)</span>
|
||||
<span class="linenos"> 16</span> <span class="n">cluster</span><span class="o">.</span><span class="n">absorber</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"> 17</span> <span class="c1"># This is how to store extra information with your cluster</span>
|
||||
<span class="linenos"> 18</span> <span class="n">cluster</span><span class="o">.</span><span class="n">info</span><span class="o">.</span><span class="n">update</span><span class="p">({</span>
|
||||
<span class="linenos"> 19</span> <span class="s1">'emitter_plane'</span><span class="p">:</span> <span class="n">emitter_plane</span><span class="p">,</span>
|
||||
<span class="linenos"> 20</span> <span class="p">})</span>
|
||||
<span class="linenos"> 21</span> <span class="n">clusters</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">cluster</span><span class="p">)</span>
|
||||
<span class="linenos"> 22</span> <span class="k">return</span> <span class="n">clusters</span>
|
||||
<span class="linenos"> 23</span>
|
||||
<span class="linenos"> 24</span>
|
||||
<span class="linenos"> 25</span><span class="k">def</span><span class="w"> </span><span class="nf">compute</span><span class="p">(</span><span class="n">clusters</span><span class="p">,</span> <span class="n">all_theta</span><span class="o">=</span><span class="p">[</span><span class="mf">45.</span><span class="p">,</span> <span class="mf">83.</span><span class="p">],</span>
|
||||
<span class="linenos"> 26</span> <span class="n">all_T</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="mf">300.</span><span class="p">,</span> <span class="mf">1000.</span><span class="p">,</span> <span class="mf">400.</span><span class="p">)):</span>
|
||||
<span class="linenos"> 27</span> <span class="n">data</span> <span class="o">=</span> <span class="kc">None</span>
|
||||
<span class="linenos"> 28</span> <span class="k">for</span> <span class="n">cluster</span> <span class="ow">in</span> <span class="n">clusters</span><span class="p">:</span>
|
||||
<span class="linenos"> 29</span> <span class="c1"># Retrieve emitter's plane from cluster object</span>
|
||||
<span class="linenos"> 30</span> <span class="n">plane</span> <span class="o">=</span> <span class="n">cluster</span><span class="o">.</span><span class="n">info</span><span class="p">[</span><span class="s1">'emitter_plane'</span><span class="p">]</span>
|
||||
<span class="linenos"> 31</span>
|
||||
<span class="linenos"> 32</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">'PED'</span><span class="p">,</span> <span class="n">algorithm</span><span class="o">=</span><span class="s1">'expansion'</span><span class="p">)</span>
|
||||
<span class="linenos"> 33</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"> 34</span> <span class="n">calc</span><span class="o">.</span><span class="n">muffintin_parameters</span><span class="o">.</span><span class="n">interstitial_potential</span> <span class="o">=</span> <span class="mf">14.1</span>
|
||||
<span class="linenos"> 35</span>
|
||||
<span class="linenos"> 36</span> <span class="c1"># In simple scattering, it is common practice to use a real potential and</span>
|
||||
<span class="linenos"> 37</span> <span class="c1"># manually define a mean free path arbitrarily lower than the actual physical</span>
|
||||
<span class="linenos"> 38</span> <span class="c1"># value in an attempt to reproduce multiple scattering effects.</span>
|
||||
<span class="linenos"> 39</span> <span class="n">calc</span><span class="o">.</span><span class="n">tmatrix_parameters</span><span class="o">.</span><span class="n">exchange_correlation</span> <span class="o">=</span> <span class="s1">'x_alpha_real'</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">mean_free_path</span> <span class="o">=</span> <span class="mf">.5</span> <span class="o">*</span> <span class="mf">9.1</span>
|
||||
</span><span class="hll"><span class="linenos"> 41</span>
|
||||
</span><span class="linenos"> 42</span> <span class="c1"># Parameters for temperature effects</span>
|
||||
<span class="linenos"> 43</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">'averaged_tl'</span>
|
||||
<span class="hll"><span class="linenos"> 44</span> <span class="n">calc</span><span class="o">.</span><span class="n">calculation_parameters</span><span class="o">.</span><span class="n">use_debye_model</span> <span class="o">=</span> <span class="kc">True</span>
|
||||
</span><span class="hll"><span class="linenos"> 45</span> <span class="n">calc</span><span class="o">.</span><span class="n">calculation_parameters</span><span class="o">.</span><span class="n">debye_temperature</span> <span class="o">=</span> <span class="mi">343</span>
|
||||
</span><span class="hll"><span class="linenos"> 46</span> <span class="n">calc</span><span class="o">.</span><span class="n">calculation_parameters</span><span class="o">.</span><span class="n">vibration_scaling</span> <span class="o">=</span> <span class="mf">2.3</span>
|
||||
</span><span class="hll"><span class="linenos"> 47</span>
|
||||
</span><span class="hll"><span class="linenos"> 48</span>
|
||||
</span><span class="linenos"> 49</span> <span class="n">calc</span><span class="o">.</span><span class="n">detector_parameters</span><span class="o">.</span><span class="n">average_sampling</span> <span class="o">=</span> <span class="s1">'low'</span>
|
||||
<span class="linenos"> 50</span> <span class="n">calc</span><span class="o">.</span><span class="n">detector_parameters</span><span class="o">.</span><span class="n">angular_acceptance</span> <span class="o">=</span> <span class="mf">5.7</span>
|
||||
<span class="linenos"> 51</span>
|
||||
<span class="linenos"> 52</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">1</span>
|
||||
<span class="linenos"> 53</span>
|
||||
<span class="linenos"> 54</span>
|
||||
<span class="linenos"> 55</span> <span class="k">for</span> <span class="n">T</span> <span class="ow">in</span> <span class="n">all_T</span><span class="p">:</span>
|
||||
<span class="linenos"> 56</span> <span class="c1"># Define the sample temperature</span>
|
||||
<span class="linenos"> 57</span> <span class="n">calc</span><span class="o">.</span><span class="n">calculation_parameters</span><span class="o">.</span><span class="n">temperature</span> <span class="o">=</span> <span class="n">T</span>
|
||||
<span class="linenos"> 58</span> <span class="c1"># Set the atoms and compute an azimuthal scan</span>
|
||||
<span class="linenos"> 59</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"> 60</span> <span class="n">data</span> <span class="o">=</span> <span class="n">calc</span><span class="o">.</span><span class="n">get_phi_scan</span><span class="p">(</span><span class="n">level</span><span class="o">=</span><span class="s1">'2p'</span><span class="p">,</span> <span class="n">theta</span><span class="o">=</span><span class="n">all_theta</span><span class="p">,</span>
|
||||
<span class="linenos"> 61</span> <span class="n">phi</span><span class="o">=</span><span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">100</span><span class="p">,</span> <span class="mi">51</span><span class="p">),</span>
|
||||
<span class="linenos"> 62</span> <span class="n">kinetic_energy</span><span class="o">=</span><span class="mi">560</span><span class="p">,</span> <span class="n">data</span><span class="o">=</span><span class="n">data</span><span class="p">)</span>
|
||||
<span class="linenos"> 63</span> <span class="c1"># Small changes to add some details in both the title of the dataset</span>
|
||||
<span class="linenos"> 64</span> <span class="c1"># and the figure</span>
|
||||
<span class="linenos"> 65</span> <span class="n">view</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">views</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
|
||||
<span class="linenos"> 66</span> <span class="n">t</span> <span class="o">=</span> <span class="n">view</span><span class="o">.</span><span class="n">_plotopts</span><span class="p">[</span><span class="s1">'title'</span><span class="p">]</span> <span class="o">+</span> <span class="sa">f</span><span class="s2">" (plane #</span><span class="si">{</span><span class="n">plane</span><span class="si">:</span><span class="s2">d</span><span class="si">}</span><span class="s2">, T=</span><span class="si">{</span><span class="n">T</span><span class="si">:</span><span class="s2">.0f</span><span class="si">}</span><span class="s2"> K)"</span>
|
||||
<span class="linenos"> 67</span> <span class="n">data</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">title</span> <span class="o">=</span> <span class="n">t</span>
|
||||
<span class="linenos"> 68</span> <span class="n">view</span><span class="o">.</span><span class="n">set_plot_options</span><span class="p">(</span><span class="n">autoscale</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">title</span><span class="o">=</span><span class="n">t</span><span class="p">)</span>
|
||||
<span class="linenos"> 69</span> <span class="n">calc</span><span class="o">.</span><span class="n">shutdown</span><span class="p">()</span>
|
||||
<span class="linenos"> 70</span> <span class="k">return</span> <span class="n">data</span>
|
||||
<span class="linenos"> 71</span>
|
||||
<span class="linenos"> 72</span>
|
||||
<span class="linenos"> 73</span><span class="k">def</span><span class="w"> </span><span class="nf">analysis</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">all_theta</span><span class="p">,</span> <span class="n">all_T</span><span class="p">,</span> <span class="n">nplanes</span><span class="p">):</span>
|
||||
<span class="linenos"> 74</span> <span class="c1"># Sum cross_section for all emitter's plane at a given T</span>
|
||||
<span class="linenos"> 75</span> <span class="c1"># Compute the anisotropy</span>
|
||||
<span class="linenos"> 76</span> <span class="n">results</span> <span class="o">=</span> <span class="nb">dict</span><span class="o">.</span><span class="n">fromkeys</span><span class="p">(</span><span class="n">all_T</span><span class="p">,</span> <span class="p">[])</span>
|
||||
<span class="linenos"> 77</span> <span class="n">anisotropy</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="linenos"> 78</span> <span class="k">for</span> <span class="n">dset</span> <span class="ow">in</span> <span class="n">data</span><span class="p">:</span>
|
||||
<span class="linenos"> 79</span> <span class="c1"># Retrieve temperature</span>
|
||||
<span class="linenos"> 80</span> <span class="n">T</span> <span class="o">=</span> <span class="nb">float</span><span class="p">(</span><span class="n">dset</span><span class="o">.</span><span class="n">get_parameter</span><span class="p">(</span><span class="s1">'CalculationParameters'</span><span class="p">,</span> <span class="s1">'temperature'</span><span class="p">)[</span><span class="s1">'value'</span><span class="p">])</span>
|
||||
<span class="linenos"> 81</span> <span class="c1"># Update the sum in results</span>
|
||||
<span class="linenos"> 82</span> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">results</span><span class="p">[</span><span class="n">T</span><span class="p">])</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
|
||||
<span class="linenos"> 83</span> <span class="n">results</span><span class="p">[</span><span class="n">T</span><span class="p">]</span> <span class="o">=</span> <span class="n">dset</span><span class="o">.</span><span class="n">cross_section</span>
|
||||
<span class="linenos"> 84</span> <span class="k">else</span><span class="p">:</span>
|
||||
<span class="linenos"> 85</span> <span class="n">results</span><span class="p">[</span><span class="n">T</span><span class="p">]</span> <span class="o">+=</span> <span class="n">dset</span><span class="o">.</span><span class="n">cross_section</span>
|
||||
<span class="linenos"> 86</span>
|
||||
<span class="linenos"> 87</span> <span class="n">anisotropy_dset</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">add_dset</span><span class="p">(</span><span class="s2">"Anisotropies"</span><span class="p">)</span>
|
||||
<span class="linenos"> 88</span> <span class="n">anisotropy_dset</span><span class="o">.</span><span class="n">add_columns</span><span class="p">(</span><span class="n">temperature</span><span class="o">=</span><span class="n">all_T</span><span class="p">)</span>
|
||||
<span class="linenos"> 89</span> <span class="k">for</span> <span class="n">theta</span> <span class="ow">in</span> <span class="n">all_theta</span><span class="p">:</span>
|
||||
<span class="linenos"> 90</span> <span class="n">col_name</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"theta</span><span class="si">{</span><span class="n">theta</span><span class="si">:</span><span class="s2">.0f</span><span class="si">}</span><span class="s2">"</span>
|
||||
<span class="linenos"> 91</span> <span class="n">col_values</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="linenos"> 92</span> <span class="n">i</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">dset</span><span class="o">.</span><span class="n">theta</span> <span class="o">==</span> <span class="n">theta</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
|
||||
<span class="linenos"> 93</span> <span class="k">for</span> <span class="n">T</span> <span class="ow">in</span> <span class="n">all_T</span><span class="p">:</span>
|
||||
<span class="linenos"> 94</span> <span class="n">cs</span> <span class="o">=</span> <span class="n">results</span><span class="p">[</span><span class="n">T</span><span class="p">][</span><span class="n">i</span><span class="p">]</span>
|
||||
<span class="linenos"> 95</span> <span class="n">Imax</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">max</span><span class="p">(</span><span class="n">cs</span><span class="p">)</span>
|
||||
<span class="linenos"> 96</span> <span class="n">Imin</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">min</span><span class="p">(</span><span class="n">cs</span><span class="p">)</span>
|
||||
<span class="linenos"> 97</span> <span class="n">A</span> <span class="o">=</span> <span class="p">(</span><span class="n">Imax</span> <span class="o">-</span> <span class="n">Imin</span><span class="p">)</span><span class="o">/</span><span class="n">Imax</span>
|
||||
<span class="linenos"> 98</span> <span class="n">col_values</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">A</span><span class="p">)</span>
|
||||
<span class="linenos"> 99</span> <span class="n">anisotropy_dset</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="n">col_name</span><span class="p">:</span><span class="n">col_values</span><span class="o">/</span><span class="n">np</span><span class="o">.</span><span class="n">max</span><span class="p">(</span><span class="n">col_values</span><span class="p">)})</span>
|
||||
<span class="linenos">100</span>
|
||||
<span class="linenos">101</span>
|
||||
<span class="linenos">102</span> <span class="n">anisotropy_view</span> <span class="o">=</span> <span class="n">anisotropy_dset</span><span class="o">.</span><span class="n">add_view</span><span class="p">(</span><span class="s1">'Anisotropies'</span><span class="p">,</span>
|
||||
<span class="linenos">103</span> <span class="n">title</span><span class="o">=</span><span class="s1">'Relative anisotropies for Cu(2p)'</span><span class="p">,</span>
|
||||
<span class="linenos">104</span> <span class="n">marker</span><span class="o">=</span><span class="s1">'o'</span><span class="p">,</span>
|
||||
<span class="linenos">105</span> <span class="n">xlabel</span><span class="o">=</span><span class="s1">'T (K)'</span><span class="p">,</span>
|
||||
<span class="linenos">106</span> <span class="n">ylabel</span><span class="o">=</span><span class="sa">r</span><span class="s1">'$\frac{\Delta I / I_</span><span class="si">{max}</span><span class="s1">(T)}{\Delta I_</span><span class="si">{300}</span><span class="s1">'</span>
|
||||
<span class="linenos">107</span> <span class="sa">r</span><span class="s1">'/ I_</span><span class="si">{max}</span><span class="s1">(300)} (\%)$'</span><span class="p">,</span>
|
||||
<span class="linenos">108</span> <span class="n">autoscale</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
||||
<span class="linenos">109</span> <span class="k">for</span> <span class="n">theta</span> <span class="ow">in</span> <span class="n">all_theta</span><span class="p">:</span>
|
||||
<span class="linenos">110</span> <span class="n">col_name</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"theta</span><span class="si">{</span><span class="n">theta</span><span class="si">:</span><span class="s2">.0f</span><span class="si">}</span><span class="s2">"</span>
|
||||
<span class="linenos">111</span> <span class="n">anisotropy_view</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="s1">'temperature'</span><span class="p">,</span> <span class="n">col_name</span><span class="p">,</span>
|
||||
<span class="linenos">112</span> <span class="n">legend</span><span class="o">=</span><span class="sa">r</span><span class="s1">'$\theta = </span><span class="si">{:.0f}</span><span class="s1"> \degree$'</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">theta</span><span class="p">))</span>
|
||||
<span class="linenos">113</span>
|
||||
<span class="linenos">114</span> <span class="k">return</span> <span class="n">data</span>
|
||||
<span class="linenos">115</span>
|
||||
<span class="linenos">116</span>
|
||||
<span class="linenos">117</span>
|
||||
<span class="linenos">118</span><span class="k">if</span> <span class="vm">__name__</span> <span class="o">==</span> <span class="s2">"__main__"</span><span class="p">:</span>
|
||||
<span class="linenos">119</span> <span class="n">nplanes</span> <span class="o">=</span> <span class="mi">4</span>
|
||||
<span class="linenos">120</span> <span class="n">all_theta</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="mi">45</span><span class="p">,</span> <span class="mi">83</span><span class="p">])</span>
|
||||
<span class="linenos">121</span> <span class="n">all_theta</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="mf">300.</span><span class="p">,</span> <span class="mf">1000.</span><span class="p">])</span>
|
||||
<span class="linenos">122</span>
|
||||
<span class="linenos">123</span> <span class="n">clusters</span> <span class="o">=</span> <span class="n">create_clusters</span><span class="p">(</span><span class="n">nplanes</span><span class="o">=</span><span class="n">nplanes</span><span class="p">)</span>
|
||||
<span class="linenos">124</span> <span class="n">data</span> <span class="o">=</span> <span class="n">compute</span><span class="p">(</span><span class="n">clusters</span><span class="p">,</span> <span class="n">all_T</span><span class="o">=</span><span class="n">all_T</span><span class="p">,</span> <span class="n">all_theta</span><span class="o">=</span><span class="n">all_theta</span><span class="p">)</span>
|
||||
<span class="linenos">125</span> <span class="n">data</span> <span class="o">=</span> <span class="n">analysis</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">all_T</span><span class="o">=</span><span class="n">all_T</span><span class="p">,</span> <span class="n">all_theta</span><span class="o">=</span><span class="n">all_theta</span><span class="p">,</span> <span class="n">nplanes</span><span class="o">=</span><span class="n">nplanes</span><span class="p">)</span>
|
||||
<span class="linenos">126</span> <span class="n">data</span><span class="o">.</span><span class="n">view</span><span class="p">()</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<figure class="align-default" id="anisotropy-fig">
|
||||
<a class="reference internal image-reference" href="../_images/anisotropies.png"><img alt="anisotropies" class="align-center" src="../_images/anisotropies.png" style="width: 600px;" />
|
||||
</a>
|
||||
<figcaption>
|
||||
<p><span class="caption-number">Fig. 15 </span><span class="caption-text">Variation of anisotropy as a function of temperature and polar angle for Cu(2p).</span><a class="headerlink" href="#anisotropy-fig" title="Link to this image">#</a></p>
|
||||
</figcaption>
|
||||
</figure>
|
||||
<p>The anisotropy decreases when the temperature is increased due to the increased disorder in the structure coming from thermal agitation. This variation in anisotropy is more pronounced for grazing incidence angles since surface atoms are expected to vibrate more than bulk ones and the expected mean depth of no-loss emission is <span class="math notranslate nohighlight">\(\sim 1\)</span> atomic layer at <span class="math notranslate nohighlight">\(\theta = 83°\)</span> and 3-4 layers at <span class="math notranslate nohighlight">\(\theta = 45°\)</span> as estimated by <span class="math notranslate nohighlight">\(\Lambda_e\sin\theta\)</span> (where <span class="math notranslate nohighlight">\(\Lambda_e\)</span> is the photoelectron mean free path at 560 eV).</p>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<script type="text/x-thebe-config">
|
||||
|
@ -401,6 +728,24 @@ document.write(`
|
|||
|
||||
|
||||
|
||||
<div class="bd-sidebar-secondary bd-toc"><div class="sidebar-secondary-items sidebar-secondary__inner">
|
||||
|
||||
|
||||
<div class="sidebar-secondary-item">
|
||||
<div class="page-toc tocsection onthispage">
|
||||
<i class="fa-solid fa-list"></i> Contents
|
||||
</div>
|
||||
<nav class="bd-toc-nav page-toc">
|
||||
<ul class="visible nav section-nav flex-column">
|
||||
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#surface-and-bulk-effects-of-the-temperature">Surface and bulk effects of the temperature</a><ul class="nav section-nav flex-column">
|
||||
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#the-script">The script</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</nav></div>
|
||||
|
||||
</div></div>
|
||||
|
||||
|
||||
</div>
|
||||
<footer class="bd-footer-content">
|
||||
|
@ -410,7 +755,7 @@ document.write(`
|
|||
<div class="footer-item">
|
||||
|
||||
<p class="component-author">
|
||||
By Sylvain Tricot, Philippe Schieffer & Didier Sébilleau
|
||||
By Sylvain Tricot
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
<link rel="stylesheet" type="text/css" href="../_static/styles/sphinx-book-theme.css?v=eba8b062" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/togglebutton.css?v=13237357" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css?v=76b2166b" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css?v=be8a1c11" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/sphinx-thebe.css?v=4fa983c6" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/sphinx-design.min.css?v=95c83b7e" />
|
||||
|
||||
|
@ -343,7 +343,7 @@ document.write(`
|
|||
<article class="bd-article">
|
||||
|
||||
<section class="tex2jax_ignore mathjax_ignore" id="activity-7-large-clusters-and-path-filtering">
|
||||
<h1>Activity 7: Large clusters and path filtering<a class="headerlink" href="#activity-7-large-clusters-and-path-filtering" title="Link to this heading">#</a></h1>
|
||||
<span id="path-filtering"></span><h1>Activity 7: Large clusters and path filtering<a class="headerlink" href="#activity-7-large-clusters-and-path-filtering" title="Link to this heading">#</a></h1>
|
||||
</section>
|
||||
|
||||
<script type="text/x-thebe-config">
|
||||
|
@ -410,7 +410,7 @@ document.write(`
|
|||
<div class="footer-item">
|
||||
|
||||
<p class="component-author">
|
||||
By Sylvain Tricot, Philippe Schieffer & Didier Sébilleau
|
||||
By Sylvain Tricot
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
<link rel="stylesheet" type="text/css" href="../_static/styles/sphinx-book-theme.css?v=eba8b062" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/togglebutton.css?v=13237357" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css?v=76b2166b" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css?v=be8a1c11" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/sphinx-thebe.css?v=4fa983c6" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/sphinx-design.min.css?v=95c83b7e" />
|
||||
|
||||
|
@ -410,7 +410,7 @@ document.write(`
|
|||
<div class="footer-item">
|
||||
|
||||
<p class="component-author">
|
||||
By Sylvain Tricot, Philippe Schieffer & Didier Sébilleau
|
||||
By Sylvain Tricot
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
<link rel="stylesheet" type="text/css" href="../_static/styles/sphinx-book-theme.css?v=eba8b062" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/togglebutton.css?v=13237357" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css?v=76b2166b" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css?v=be8a1c11" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/sphinx-thebe.css?v=4fa983c6" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/sphinx-design.min.css?v=95c83b7e" />
|
||||
|
||||
|
@ -410,7 +410,7 @@ document.write(`
|
|||
<div class="footer-item">
|
||||
|
||||
<p class="component-author">
|
||||
By Sylvain Tricot, Philippe Schieffer & Didier Sébilleau
|
||||
By Sylvain Tricot
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
<link rel="stylesheet" type="text/css" href="../_static/styles/sphinx-book-theme.css?v=eba8b062" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/togglebutton.css?v=13237357" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css?v=76b2166b" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css?v=be8a1c11" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/sphinx-thebe.css?v=4fa983c6" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/sphinx-design.min.css?v=95c83b7e" />
|
||||
|
||||
|
@ -410,7 +410,7 @@ document.write(`
|
|||
<div class="footer-item">
|
||||
|
||||
<p class="component-author">
|
||||
By Sylvain Tricot, Philippe Schieffer & Didier Sébilleau
|
||||
By Sylvain Tricot
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
<link rel="stylesheet" type="text/css" href="../_static/styles/sphinx-book-theme.css?v=eba8b062" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/togglebutton.css?v=13237357" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/copybutton.css?v=76b2166b" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css?v=be8a1c11" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/sphinx-thebe.css?v=4fa983c6" />
|
||||
<link rel="stylesheet" type="text/css" href="../_static/sphinx-design.min.css?v=95c83b7e" />
|
||||
|
||||
|
@ -410,7 +410,7 @@ document.write(`
|
|||
<div class="footer-item">
|
||||
|
||||
<p class="component-author">
|
||||
By Sylvain Tricot, Philippe Schieffer & Didier Sébilleau
|
||||
By Sylvain Tricot
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
|
Before Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 46 KiB |
Before Width: | Height: | Size: 64 KiB |
After Width: | Height: | Size: 60 KiB |
Before Width: | Height: | Size: 46 KiB |
Before Width: | Height: | Size: 54 KiB |
After Width: | Height: | Size: 27 KiB |
|
@ -945,7 +945,7 @@
|
|||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.11.3"
|
||||
"version": "3.11.13"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
|
|
|
@ -1,58 +0,0 @@
|
|||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "19e5b61a-39cf-48d3-8ed0-552300d82883",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"# Activity 3: Adsorbates and the single scattering approach\n",
|
||||
"\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "6a0ec68c-8762-40de-8db5-0291fd84c820",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"## Oxygen on Rh(001)\n",
|
||||
"\n",
|
||||
"In a paper published in 1998, T. Gerber et al. used the quite high backscattering factor of Rhodium atoms to probe\n",
|
||||
"the distance of Oxygen atoms adsorbed on a Rhodium surface. Some electrons coming from Oxygen atoms are ejected \n",
|
||||
"toward the Rhodium surface. They are then backscattered and interfere with the direct signal comming from Oxygen atoms (see the figure below). They demonstrated both experimentally and numerically with a sinle scattering computation that this lead to a very accurate probe of adsorbed species that can be sensitive to bond length changes of the order of "
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3 (ipykernel)",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 3
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.11.13"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 5
|
||||
}
|
|
@ -84,7 +84,7 @@
|
|||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.11.3"
|
||||
"version": "3.11.13"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
|
|
|
@ -877,7 +877,7 @@
|
|||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.11.3"
|
||||
"version": "3.11.13"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
|
|
|
@ -5,7 +5,115 @@
|
|||
"id": "c0a860db-0f72-4785-81f4-831e48b3a49f",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Activity 6: Effect of the temperature"
|
||||
"# Activity 6: Effect of the temperature\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"## Surface and bulk effects of the temperature\n",
|
||||
"\n",
|
||||
"In this example, we will look at the effects of the temperature on the X-Ray photoelectron diffraction from a copper substrate. We will base our python script on a paper published in 1986 by R. Trehan and S. Fadley. In their work, they performed azimutal scans of a copper(001) surface at 2 different polar angles: one at grazing incidence and one at 45° for incresing temperatures from 298K to roughly 1000K.\n",
|
||||
"\n",
|
||||
"For each azimutal scan, they looked at the anisotropy of the signal, that is:\n",
|
||||
"\n",
|
||||
"```{math}\n",
|
||||
":label: eq-anisotropy\n",
|
||||
"\\frac{I_{max} - I_{min}}{I_{max}}=\\frac{\\Delta I}{I_{max}}\n",
|
||||
"```\n",
|
||||
"\n",
|
||||
"This value is representative of how clear are the *modulations* of the signal. They also proposed single scattering calculations that reproduced well these results.\n",
|
||||
"\n",
|
||||
"We will reproduce this kind of calculations to introduce the parameters that control the vibrational damping.\n",
|
||||
"\n",
|
||||
"(msd-paper)=\n",
|
||||
":::{seealso}\n",
|
||||
"based on this paper from R. Trehan and C.S. Fadley\n",
|
||||
"[Phys. Rev. B **34** p6784–98 (2012)](https://doi.org/10.1103/PhysRevB.34.6784)\n",
|
||||
":::\n",
|
||||
"\n",
|
||||
"### The script\n",
|
||||
"\n",
|
||||
"Since we want to distinguish between bulk (low polar angles, $\\theta = 45°$ in the paper) and surface effects (large polar angles, $\\theta = 83°$ in the paper), we need to compute scans for different emitters and different depths in the cluster.\n",
|
||||
"\n",
|
||||
"The script contains 3 functions:\n",
|
||||
"1. The `create_clusters` function will build clusters with increasing number of planes, with the emitter being in the deepest plane for each cluster.\n",
|
||||
"2. The function `compute` will compute the azimuthal scan for a given cluster.\n",
|
||||
"3. The `analysis` function will sum the intensity from each plane for a given temperature. This will be the *substrate total signal* (more on this in the {ref}`path-filtering` section). The function will also compute the anisotropy (equation {eq}`eq-anisotropy`).\n",
|
||||
"\n",
|
||||
"MsSpec can introduce temperature effects in two ways: either by using the Debye Waller model or by doing an average over the phase shifts. We will explore the latter in this example.\n",
|
||||
"\n",
|
||||
"Regardless of the option chosen to model temperature effects, we need to define mean square displacement (MSD) values of the atoms in our cluster. We will use the Debye model for this. The MSD is defined as follows:\n",
|
||||
"\n",
|
||||
":::{math}\n",
|
||||
":label: eq-debye\n",
|
||||
"<U_j^2(T)> = \\frac{3\\hbar^2 T}{M K_B \\Theta_D^2}\n",
|
||||
":::\n",
|
||||
"\n",
|
||||
"where $\\hbar$ is the reduce Planck's constant, $T$ is the temperature, $M$ is the mass of the atom, $k_B$ is the Boltzmann's constant and $\\Theta_D$ is the Debye temperature of the sample.\n",
|
||||
"\n",
|
||||
"To get an idea of the typical order of magnitude for MSD, the figure below plots the values of MSD for copper for temperatures ranging from 300 K to 1000 K.\n",
|
||||
"\n",
|
||||
":::{figure-md} msd-fig\n",
|
||||
"<img src=\"msd.jpg\" alt=\"Cu MSD\" width=\"600px\" align=\"center\">\n",
|
||||
"\n",
|
||||
"Variation of MSD for copper versus temperature using equation {eq}`eq-debye`\n",
|
||||
":::"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "69b8c17d-ab66-4092-a492-005f05d80495",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"::::{tab-set}\n",
|
||||
"\n",
|
||||
":::{tab-item} <i class=\"fa-solid fa-circle-question\"></i> Quiz\n",
|
||||
"With the help of the [MsSpec documentation](https://msspec.cnrs.fr/parameters.html) and the second paragraph p6791 of the [article cited above](#msd-paper),\n",
|
||||
"complete the hilighted lines in the following script to compute the anisotropy of Cu(2p) $\\phi$-scans for polar angle $\\theta$=45° and 83°.\n",
|
||||
"\n",
|
||||
"How is varying the anisotropy versus the temperature. How can you qualitatively explain this variation ?\n",
|
||||
"\n",
|
||||
"```{literalinclude} Cu_temperature.py\n",
|
||||
":lineno-match:\n",
|
||||
":emphasize-lines: 40-41,44-48\n",
|
||||
"```\n",
|
||||
"\n",
|
||||
":::\n",
|
||||
"\n",
|
||||
"::::"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "8dbafb54-cdb8-43fb-ba9e-ec1696e39731",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"```{toggle}\n",
|
||||
"\n",
|
||||
":::{literalinclude} Cu_temperature_completed.py\n",
|
||||
":lineno-match:\n",
|
||||
":emphasize-lines: 40-41,44-48\n",
|
||||
":::\n",
|
||||
"\n",
|
||||
":::{figure-md} anisotropy-fig\n",
|
||||
"<img src=\"anisotropies.png\" alt=\"anisotropies\" width=\"600px\" align=\"center\">\n",
|
||||
"\n",
|
||||
"Variation of anisotropy as a function of temperature and polar angle for Cu(2p).\n",
|
||||
":::\n",
|
||||
"\n",
|
||||
"The anisotropy decreases when the temperature is increased due to the increased disorder in the structure coming from thermal agitation. This variation in anisotropy is more pronounced for grazing incidence angles since surface atoms are expected to vibrate more than bulk ones and the expected mean depth of no-loss emission is $\\sim 1$ atomic layer at $\\theta = 83°$ and 3-4 layers at $\\theta = 45°$ as estimated by $\\Lambda_e\\sin\\theta$ (where $\\Lambda_e$ is the photoelectron mean free path at 560 eV).\n",
|
||||
"\n",
|
||||
"```"
|
||||
]
|
||||
}
|
||||
],
|
||||
|
@ -25,7 +133,7 @@
|
|||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.11.3"
|
||||
"version": "3.11.13"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
"id": "42cfa8b1-20d2-47e4-a1f0-161c4517df2c",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"(path-filtering)=\n",
|
||||
"# Activity 7: Large clusters and path filtering"
|
||||
]
|
||||
},
|
||||
|
@ -33,7 +34,7 @@
|
|||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.11.3"
|
||||
"version": "3.11.13"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
|
|
Before Width: | Height: | Size: 9.6 KiB |
|
@ -32,7 +32,7 @@
|
|||
<link rel="stylesheet" type="text/css" href="_static/styles/sphinx-book-theme.css?v=eba8b062" />
|
||||
<link rel="stylesheet" type="text/css" href="_static/togglebutton.css?v=13237357" />
|
||||
<link rel="stylesheet" type="text/css" href="_static/copybutton.css?v=76b2166b" />
|
||||
<link rel="stylesheet" type="text/css" href="_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css?v=be8a1c11" />
|
||||
<link rel="stylesheet" type="text/css" href="_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css" />
|
||||
<link rel="stylesheet" type="text/css" href="_static/sphinx-thebe.css?v=4fa983c6" />
|
||||
<link rel="stylesheet" type="text/css" href="_static/sphinx-design.min.css?v=95c83b7e" />
|
||||
|
||||
|
@ -438,7 +438,7 @@ document.write(`
|
|||
<div class="footer-item">
|
||||
|
||||
<p class="component-author">
|
||||
By Sylvain Tricot, Philippe Schieffer & Didier Sébilleau
|
||||
By Sylvain Tricot
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
<link rel="stylesheet" type="text/css" href="_static/styles/sphinx-book-theme.css?v=eba8b062" />
|
||||
<link rel="stylesheet" type="text/css" href="_static/togglebutton.css?v=13237357" />
|
||||
<link rel="stylesheet" type="text/css" href="_static/copybutton.css?v=76b2166b" />
|
||||
<link rel="stylesheet" type="text/css" href="_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css?v=be8a1c11" />
|
||||
<link rel="stylesheet" type="text/css" href="_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css" />
|
||||
<link rel="stylesheet" type="text/css" href="_static/sphinx-thebe.css?v=4fa983c6" />
|
||||
<link rel="stylesheet" type="text/css" href="_static/sphinx-design.min.css?v=95c83b7e" />
|
||||
|
||||
|
@ -327,7 +327,7 @@ document.write(`
|
|||
<div class="footer-item">
|
||||
|
||||
<p class="component-author">
|
||||
By Sylvain Tricot, Philippe Schieffer & Didier Sébilleau
|
||||
By Sylvain Tricot
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
<link rel="stylesheet" type="text/css" href="_static/styles/sphinx-book-theme.css?v=eba8b062" />
|
||||
<link rel="stylesheet" type="text/css" href="_static/togglebutton.css?v=13237357" />
|
||||
<link rel="stylesheet" type="text/css" href="_static/copybutton.css?v=76b2166b" />
|
||||
<link rel="stylesheet" type="text/css" href="_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css?v=be8a1c11" />
|
||||
<link rel="stylesheet" type="text/css" href="_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css" />
|
||||
<link rel="stylesheet" type="text/css" href="_static/sphinx-thebe.css?v=4fa983c6" />
|
||||
<link rel="stylesheet" type="text/css" href="_static/sphinx-design.min.css?v=95c83b7e" />
|
||||
|
||||
|
@ -424,7 +424,7 @@ concepts needed to learn how to perform simulation with MsSpec.</p>
|
|||
<div class="footer-item">
|
||||
|
||||
<p class="component-author">
|
||||
By Sylvain Tricot, Philippe Schieffer & Didier Sébilleau
|
||||
By Sylvain Tricot
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
|
|
@ -1,38 +0,0 @@
|
|||
Traceback (most recent call last):
|
||||
File "/home/stricot/msspec_py3.11.13/lib/python3.11/site-packages/jupyter_core/utils/__init__.py", line 154, in wrapped
|
||||
asyncio.get_running_loop()
|
||||
RuntimeError: no running event loop
|
||||
|
||||
During handling of the above exception, another exception occurred:
|
||||
|
||||
Traceback (most recent call last):
|
||||
File "/home/stricot/msspec_py3.11.13/lib/python3.11/site-packages/jupyter_cache/executors/utils.py", line 58, in single_nb_execution
|
||||
executenb(
|
||||
File "/home/stricot/msspec_py3.11.13/lib/python3.11/site-packages/nbclient/client.py", line 1319, in execute
|
||||
return NotebookClient(nb=nb, resources=resources, km=km, **kwargs).execute()
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/stricot/msspec_py3.11.13/lib/python3.11/site-packages/jupyter_core/utils/__init__.py", line 158, in wrapped
|
||||
return loop.run_until_complete(inner)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/stricot/.pyenv/versions/3.11.13/lib/python3.11/asyncio/base_events.py", line 654, in run_until_complete
|
||||
return future.result()
|
||||
^^^^^^^^^^^^^^^
|
||||
File "/home/stricot/msspec_py3.11.13/lib/python3.11/site-packages/nbclient/client.py", line 709, in async_execute
|
||||
await self.async_execute_cell(
|
||||
File "/home/stricot/msspec_py3.11.13/lib/python3.11/site-packages/nbclient/client.py", line 1005, in async_execute_cell
|
||||
exec_reply = await self.task_poll_for_reply
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/stricot/msspec_py3.11.13/lib/python3.11/site-packages/nbclient/client.py", line 806, in _async_poll_for_reply
|
||||
error_on_timeout_execute_reply = await self._async_handle_timeout(timeout, cell)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
File "/home/stricot/msspec_py3.11.13/lib/python3.11/site-packages/nbclient/client.py", line 856, in _async_handle_timeout
|
||||
raise CellTimeoutError.error_from_timeout_and_cell(
|
||||
nbclient.exceptions.CellTimeoutError: A cell timed out while it was being executed, after 30 seconds.
|
||||
The message was: Cell execution timed out.
|
||||
Here is a preview of the cell contents:
|
||||
-------------------
|
||||
["calc = MSSPEC(spectroscopy='PED', algorithm='inversion', txt='msspec.log')", 'calc.set_atoms(cluster)', '', 'calc.source_parameters.theta = 0', 'calc.source_parameters.phi = 0']
|
||||
...
|
||||
['dset.add_columns(experiment=y)', '', '# Add points to view', 'view = dset.views[0]', "view.select('phi', 'experiment', legend='Exp. data')"]
|
||||
-------------------
|
||||
|
|
@ -30,7 +30,7 @@
|
|||
<link rel="stylesheet" type="text/css" href="_static/styles/sphinx-book-theme.css?v=eba8b062" />
|
||||
<link rel="stylesheet" type="text/css" href="_static/togglebutton.css?v=13237357" />
|
||||
<link rel="stylesheet" type="text/css" href="_static/copybutton.css?v=76b2166b" />
|
||||
<link rel="stylesheet" type="text/css" href="_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css?v=be8a1c11" />
|
||||
<link rel="stylesheet" type="text/css" href="_static/mystnb.4510f1fc1dee50b3e5859aac5469c37c29e427902b24a333a5f9fcb2f0b3ac41.css" />
|
||||
<link rel="stylesheet" type="text/css" href="_static/sphinx-thebe.css?v=4fa983c6" />
|
||||
<link rel="stylesheet" type="text/css" href="_static/sphinx-design.min.css?v=95c83b7e" />
|
||||
|
||||
|
@ -339,7 +339,7 @@ document.write(`
|
|||
<div class="footer-item">
|
||||
|
||||
<p class="component-author">
|
||||
By Sylvain Tricot, Philippe Schieffer & Didier Sébilleau
|
||||
By Sylvain Tricot
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
|
|
@ -0,0 +1,953 @@
|
|||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "7e31b322-df55-44ed-9f29-6f6efa71eafe",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"# Activity 1: Getting started\n",
|
||||
"\n",
|
||||
"MsSpec is a Fortran code with two components: Phagen (Written by R. Natoli) and Spec (written by D. Sébilleau). Phagen computes the phase shifts of the electronic wave propagating in the matter on a spherical harmonics basis. Spec uses those phase shifts to compute the multiple scattering process and simulate the intensity of different electronic spectroscopies.\n",
|
||||
"\n",
|
||||
"In the most recent version of MsSpec, the program is interfaced with python (https://msspec.cnrs.fr/), allowing for much more flexibility and interplay with other simulation techniques.\n",
|
||||
"\n",
|
||||
"## Building atomic systems\n",
|
||||
"\n",
|
||||
"MsSpec works in the *cluster* approach. Building such a cluster for a calculation is a fundamental step.\n",
|
||||
"We use the [python Atomic Simulation Environment (ASE)](https://wiki.fysik.dtu.dk/ase/) for this.\n",
|
||||
"\n",
|
||||
"ASE is a set of tools and Python modules for setting up, manipulating, running, visualizing and analyzing atomistic simulations.\n",
|
||||
"Building atomic systems, structures... is pretty straightforward:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"id": "07a04c8c-a268-481a-8f1b-14878ed771b5",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": [
|
||||
"remove-output"
|
||||
]
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"<Popen: returncode: None args: ['/home/stricot/msspec_py3.11.13/bin/python',...>"
|
||||
]
|
||||
},
|
||||
"execution_count": 1,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"# To build a molecule with ASE\n",
|
||||
"from ase.build import molecule\n",
|
||||
"# To view\n",
|
||||
"from ase.visualize import view\n",
|
||||
"\n",
|
||||
"# Create a water molecule\n",
|
||||
"water = molecule('H2O')\n",
|
||||
"# Display it\n",
|
||||
"view(water)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"id": "e09c7d97-eb35-49a7-b74a-9fb21a9a3aaf",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": [
|
||||
"remove-input"
|
||||
]
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"<html>\n",
|
||||
" <head>\n",
|
||||
" <title>ASE atomic visualization</title>\n",
|
||||
" <link rel=\"stylesheet\" type=\"text/css\" href=\"https://www.x3dom.org/release/x3dom.css\"></link>\n",
|
||||
" <script type=\"text/javascript\" src=\"https://www.x3dom.org/release/x3dom.js\"></script>\n",
|
||||
" </head>\n",
|
||||
" <body>\n",
|
||||
" <X3D width=\"400px\"; height=\"300px\";>\n",
|
||||
"\n",
|
||||
"<!--Inserting Generated X3D Scene-->\n",
|
||||
"<scene>\n",
|
||||
" <viewpoint position=\"0 0 3.052956\">\n",
|
||||
" <group/>\n",
|
||||
" </viewpoint>\n",
|
||||
" <transform translation=\"-0.0 -0.0 -0.0\">\n",
|
||||
" <group>\n",
|
||||
" <group>\n",
|
||||
" <transform translation=\"0 0 0\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0 0 0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <lineset vertexCount=\"5\">\n",
|
||||
" <coordinate point=\"0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0\"/>\n",
|
||||
" </lineset>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"0.0 0.0 0.0\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0 0 0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <lineset vertexCount=\"5\">\n",
|
||||
" <coordinate point=\"0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0\"/>\n",
|
||||
" </lineset>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"0 0 0\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0 0 0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <lineset vertexCount=\"5\">\n",
|
||||
" <coordinate point=\"0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0\"/>\n",
|
||||
" </lineset>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"0.0 0.0 0.0\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0 0 0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <lineset vertexCount=\"5\">\n",
|
||||
" <coordinate point=\"0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0\"/>\n",
|
||||
" </lineset>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" </group>\n",
|
||||
" <group>\n",
|
||||
" <transform translation=\"0.0 0.0 0.119262\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"1.0 0.051 0.051\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"0.66\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"0.0 0.763239 -0.477047\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"1.0 1.0 1.0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"0.31\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"0.0 -0.763239 -0.477047\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"1.0 1.0 1.0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"0.31\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" </group>\n",
|
||||
" </group>\n",
|
||||
" </transform>\n",
|
||||
"</scene>\n",
|
||||
"<!--End of Inserted Scene-->\n",
|
||||
"\n",
|
||||
" </X3D>\n",
|
||||
" </body>\n",
|
||||
"</html>\n",
|
||||
"\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<IPython.core.display.HTML object>"
|
||||
]
|
||||
},
|
||||
"execution_count": 2,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"view(water, viewer='x3d')"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "94b690a2-52f0-43e4-953d-6e7519ac4e9c",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"## Barebone script for MsSpec\n",
|
||||
"\n",
|
||||
"MsSpec can simulate different electronic spectroscopies like PED, AED, LEED, EXAFS, APECS and more will be included in the forthcoming version. However, it is really well-suited for PhotoElectron Diffraction simulation, and the python interface is only fully available for it at the moment. Since PED covers all the MsSpec features and concepts, we will focus on this technique.\n",
|
||||
"\n",
|
||||
"There are typically 3 steps to follow to get a result with MsSpec:\n",
|
||||
"\n",
|
||||
"1. Create a *cluster*\n",
|
||||
"2. Create an ASE *calculator*\n",
|
||||
"3. Run the simulation\n",
|
||||
"\n",
|
||||
"### PED polar scan for Cu(001)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "da96a735-a028-4fe8-89ac-96f707323ae9",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"```{literalinclude} cu.py\n",
|
||||
":end-before: The \"emitter\"\n",
|
||||
":linenos:\n",
|
||||
"```"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"id": "6ddd72a9-8f32-484f-9a3e-9ab3a85945a4",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"scrolled": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": [
|
||||
"remove-input"
|
||||
]
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"<html>\n",
|
||||
" <head>\n",
|
||||
" <title>ASE atomic visualization</title>\n",
|
||||
" <link rel=\"stylesheet\" type=\"text/css\" href=\"https://www.x3dom.org/release/x3dom.css\"></link>\n",
|
||||
" <script type=\"text/javascript\" src=\"https://www.x3dom.org/release/x3dom.js\"></script>\n",
|
||||
" </head>\n",
|
||||
" <body>\n",
|
||||
" <X3D width=\"400px\"; height=\"300px\";>\n",
|
||||
"\n",
|
||||
"<!--Inserting Generated X3D Scene-->\n",
|
||||
"<scene>\n",
|
||||
" <viewpoint position=\"0 0 28.8\">\n",
|
||||
" <group/>\n",
|
||||
" </viewpoint>\n",
|
||||
" <transform translation=\"-7.2 -7.2 -3.6\">\n",
|
||||
" <group>\n",
|
||||
" <group>\n",
|
||||
" <transform translation=\"0 0 0\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0 0 0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <lineset vertexCount=\"5\">\n",
|
||||
" <coordinate point=\"0 0 0 14.4 0.0 0.0 14.4 14.4 0.0 0.0 14.4 0.0 0 0 0\"/>\n",
|
||||
" </lineset>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"0.0 0.0 7.2\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0 0 0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <lineset vertexCount=\"5\">\n",
|
||||
" <coordinate point=\"0 0 0 14.4 0.0 0.0 14.4 14.4 0.0 0.0 14.4 0.0 0 0 0\"/>\n",
|
||||
" </lineset>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"0 0 0\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0 0 0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <lineset vertexCount=\"5\">\n",
|
||||
" <coordinate point=\"0 0 0 14.4 0.0 0.0 14.4 0.0 7.2 0.0 0.0 7.2 0 0 0\"/>\n",
|
||||
" </lineset>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"0.0 14.4 0.0\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0 0 0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <lineset vertexCount=\"5\">\n",
|
||||
" <coordinate point=\"0 0 0 14.4 0.0 0.0 14.4 0.0 7.2 0.0 0.0 7.2 0 0 0\"/>\n",
|
||||
" </lineset>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" </group>\n",
|
||||
" <group>\n",
|
||||
" <transform translation=\"3.6 7.2 2.700000000000001\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.784 0.502 0.2\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.32\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"3.6 7.2 6.300000000000001\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.784 0.502 0.2\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.32\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"5.400000000000002 5.400000000000002 2.700000000000001\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.784 0.502 0.2\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.32\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"7.2 3.5999999999999988 2.700000000000001\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.784 0.502 0.2\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.32\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"7.2 5.400000000000002 0.8999999999999997\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.784 0.502 0.2\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.32\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"5.400000000000002 5.400000000000002 6.300000000000001\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.784 0.502 0.2\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.32\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"7.2 3.5999999999999988 6.300000000000001\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.784 0.502 0.2\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.32\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"7.2 5.400000000000002 4.5\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.784 0.502 0.2\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.32\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"5.400000000000002 7.2 0.8999999999999997\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.784 0.502 0.2\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.32\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"5.400000000000002 8.999999999999998 2.700000000000001\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.784 0.502 0.2\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.32\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"7.2 7.2 2.700000000000001\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.784 0.502 0.2\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.32\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"7.2 8.999999999999998 0.8999999999999997\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.784 0.502 0.2\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.32\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"5.400000000000002 7.2 4.5\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.784 0.502 0.2\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.32\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"5.400000000000002 8.999999999999998 6.300000000000001\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.784 0.502 0.2\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.32\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"7.2 7.2 6.300000000000001\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.784 0.502 0.2\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.32\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"7.2 8.999999999999998 4.5\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.784 0.502 0.2\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.32\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"7.2 10.800000000000004 2.700000000000001\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.784 0.502 0.2\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.32\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"7.2 10.800000000000004 6.300000000000001\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.784 0.502 0.2\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.32\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"8.999999999999998 5.400000000000002 2.700000000000001\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.784 0.502 0.2\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.32\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"8.999999999999998 5.400000000000002 6.300000000000001\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.784 0.502 0.2\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.32\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"8.999999999999998 7.2 0.8999999999999997\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.784 0.502 0.2\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.32\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"8.999999999999998 8.999999999999998 2.700000000000001\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.784 0.502 0.2\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.32\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"10.800000000000004 7.2 2.700000000000001\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.784 0.502 0.2\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.32\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"8.999999999999998 7.2 4.5\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.784 0.502 0.2\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.32\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"8.999999999999998 8.999999999999998 6.300000000000001\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.784 0.502 0.2\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.32\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"10.800000000000004 7.2 6.300000000000001\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.784 0.502 0.2\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.32\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" </group>\n",
|
||||
" </group>\n",
|
||||
" </transform>\n",
|
||||
"</scene>\n",
|
||||
"<!--End of Inserted Scene-->\n",
|
||||
"\n",
|
||||
" </X3D>\n",
|
||||
" </body>\n",
|
||||
"</html>\n",
|
||||
"\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<IPython.core.display.HTML object>"
|
||||
]
|
||||
},
|
||||
"execution_count": 3,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"from ase.io import read\n",
|
||||
"from ase.visualize import view\n",
|
||||
"from msspec.calculator import MSSPEC\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"cluster = read('copper.cif')\n",
|
||||
"# view the cluster\n",
|
||||
"view(cluster, viewer='x3d')"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "a51b9284-ce53-48e2-bd4b-65fe3998cc33",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"```{literalinclude} cu.py\n",
|
||||
":start-at: The \"emitter\"\n",
|
||||
":lineno-match:\n",
|
||||
"```\n",
|
||||
":::{figure-md} Cu-XPD\n",
|
||||
"<img src=\"fig1.png\" width=\"600px\" align=\"center\">\n",
|
||||
"\n",
|
||||
"Cu(2p) polar scan for the copper cluster above\n",
|
||||
":::"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "85c7dcac-9f0e-4a56-8077-c96f89865dcb",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"## Shaping a cluster"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "ff63b7cb-5e31-44f8-b81b-d05bf0c775c0",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"::::{tab-set}\n",
|
||||
"\n",
|
||||
":::{tab-item} <i class=\"fa-solid fa-circle-question\"></i> Quiz\n",
|
||||
"Based on the previous *.cif file, create a new cluster without the deepest plane and run the same calculation for the same emitter\n",
|
||||
"\n",
|
||||
"```{note}\n",
|
||||
"As the cluster will contain fewer atoms, the emitter index will be different\n",
|
||||
"```\n",
|
||||
"\n",
|
||||
"What do you conclude ?\n",
|
||||
":::\n",
|
||||
"\n",
|
||||
"::::"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "1590cc49-8788-4a7b-a051-74ce1168e744",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"```{toggle}\n",
|
||||
"\n",
|
||||
":::{figure-md} Cu-4planes3planes\n",
|
||||
"<img src=\"fig2.png\" width=\"600px\" align=\"center\">\n",
|
||||
"\n",
|
||||
"Comparison between 4 and 3 planes for an emitter in the 3{sup}`rd` plane.\n",
|
||||
":::\n",
|
||||
"\n",
|
||||
"Not all atoms contribute equally to the total signal. Some of them can be removed to save computation time and memory.\n",
|
||||
"```"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "102bfad0-f8ed-44ab-990f-9fb2eb5662b0",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"scrolled": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": [
|
||||
"hide-input"
|
||||
]
|
||||
},
|
||||
"source": [
|
||||
"The number of atoms used for the calculation greatly impact the calculation time and memory. Most of the time, a cluster is shaped as an hemisphere to minimize the number of atoms to take into account"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 4,
|
||||
"id": "f7ecc1d0-097d-4199-822a-c564e9e94337",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": [
|
||||
"remove-output"
|
||||
]
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"<Popen: returncode: None args: ['/home/stricot/msspec_py3.11.13/bin/python',...>"
|
||||
]
|
||||
},
|
||||
"execution_count": 4,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"from msspec.calculator import MSSPEC\n",
|
||||
"from msspec.utils import hemispherical_cluster, get_atom_index\n",
|
||||
"from ase.build import bulk\n",
|
||||
"from ase.visualize import view\n",
|
||||
"\n",
|
||||
"copper = bulk('Cu', cubic=True)\n",
|
||||
"cluster = hemispherical_cluster(copper, planes=3, emitter_plane=2)\n",
|
||||
"cluster.emitter = get_atom_index(cluster, 0,0,0)\n",
|
||||
"\n",
|
||||
"view(cluster)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 5,
|
||||
"id": "076f617d-599f-483d-b22c-38cebf41b28a",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": [
|
||||
"remove-input"
|
||||
]
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"<html>\n",
|
||||
" <head>\n",
|
||||
" <title>ASE atomic visualization</title>\n",
|
||||
" <link rel=\"stylesheet\" type=\"text/css\" href=\"https://www.x3dom.org/release/x3dom.css\"></link>\n",
|
||||
" <script type=\"text/javascript\" src=\"https://www.x3dom.org/release/x3dom.js\"></script>\n",
|
||||
" </head>\n",
|
||||
" <body>\n",
|
||||
" <X3D width=\"400px\"; height=\"300px\";>\n",
|
||||
"\n",
|
||||
"<!--Inserting Generated X3D Scene-->\n",
|
||||
"<scene>\n",
|
||||
" <viewpoint position=\"0 0 14.440000000000001\">\n",
|
||||
" <group/>\n",
|
||||
" </viewpoint>\n",
|
||||
" <transform translation=\"-1.805 -1.805 -1.805\">\n",
|
||||
" <group>\n",
|
||||
" <group>\n",
|
||||
" <transform translation=\"0 0 0\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0 0 0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <lineset vertexCount=\"5\">\n",
|
||||
" <coordinate point=\"0 0 0 3.61 0.0 0.0 3.61 3.61 0.0 0.0 3.61 0.0 0 0 0\"/>\n",
|
||||
" </lineset>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"0.0 0.0 3.61\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0 0 0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <lineset vertexCount=\"5\">\n",
|
||||
" <coordinate point=\"0 0 0 3.61 0.0 0.0 3.61 3.61 0.0 0.0 3.61 0.0 0 0 0\"/>\n",
|
||||
" </lineset>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"0 0 0\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0 0 0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <lineset vertexCount=\"5\">\n",
|
||||
" <coordinate point=\"0 0 0 3.61 0.0 0.0 3.61 0.0 3.61 0.0 0.0 3.61 0 0 0\"/>\n",
|
||||
" </lineset>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"0.0 3.61 0.0\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0 0 0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <lineset vertexCount=\"5\">\n",
|
||||
" <coordinate point=\"0 0 0 3.61 0.0 0.0 3.61 0.0 3.61 0.0 0.0 3.61 0 0 0\"/>\n",
|
||||
" </lineset>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" </group>\n",
|
||||
" <group>\n",
|
||||
" <transform translation=\"-3.610000000000001 0.0 3.61\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.784 0.502 0.2\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.32\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"-1.8049999999999997 -1.8049999999999997 3.61\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.784 0.502 0.2\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.32\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"-1.8049999999999997 0.0 1.8050000000000002\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.784 0.502 0.2\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.32\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"-1.8049999999999997 1.8049999999999997 3.61\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.784 0.502 0.2\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.32\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"0.0 -3.6099999999999994 3.61\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.784 0.502 0.2\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.32\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"0.0 0.0 4.440892098500626e-16\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.784 0.502 0.2\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.32\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"0.0 -1.8049999999999997 1.8050000000000002\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.784 0.502 0.2\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.32\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"0.0 0.0 3.61\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.784 0.502 0.2\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.32\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"1.8049999999999997 -1.8049999999999997 3.61\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.784 0.502 0.2\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.32\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"1.8049999999999997 0.0 1.8050000000000002\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.784 0.502 0.2\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.32\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"0.0 1.8049999999999997 1.8050000000000002\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.784 0.502 0.2\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.32\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"0.0 3.6099999999999994 3.61\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.784 0.502 0.2\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.32\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"1.8049999999999997 1.8049999999999997 3.61\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.784 0.502 0.2\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.32\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"3.6099999999999994 0.0 3.61\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.784 0.502 0.2\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.32\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" </group>\n",
|
||||
" </group>\n",
|
||||
" </transform>\n",
|
||||
"</scene>\n",
|
||||
"<!--End of Inserted Scene-->\n",
|
||||
"\n",
|
||||
" </X3D>\n",
|
||||
" </body>\n",
|
||||
"</html>\n",
|
||||
"\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<IPython.core.display.HTML object>"
|
||||
]
|
||||
},
|
||||
"execution_count": 5,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"view(cluster, viewer='x3d')"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "4a71c734-8c73-49a2-9f27-12157841405c",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
":::{figure-md} Cu-hemi\n",
|
||||
"<img src=\"fig3.png\" width=\"600px\" align=\"center\">\n",
|
||||
"\n",
|
||||
"Cu(2p) polar scan for the hemispherical cluster.\n",
|
||||
":::"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "e86ab1b3-fcf3-46e7-9cc7-f5e80becea9d",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3 (ipykernel)",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 3
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.11.13"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 5
|
||||
}
|
|
@ -0,0 +1,416 @@
|
|||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "2aebc88d-0bb4-4d56-b7f6-977a66814229",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"# Activity 3: Adsorbates and the single scattering approach\n",
|
||||
"\n",
|
||||
"Photoelectron diffraction is widely used to study the adsorption of atoms or molecules on a crystalline surface. Photoelectrons from adsorbates are scattered by the underlying surface, carrying information about the adsorption site, bond length and/or molecule orientation…. Thanks to a simulation, such information becomes quantitative with a high degree of accuracy.\n",
|
||||
"\n",
|
||||
"Calculations of the multiple scattering using matrix inversion have the great advantage of being exact, including all scattering paths. On the other hand, memory consumption soon becomes a problem as the kinetic energy and number of atoms to be considered increase. As an approximation, it is possible to only consider a single scattering from the emitter to any atom in the cluster. This approximation is extremely computationally fast and can give satisfactory results for adsorbates. We’ll see later that this approach is rather too simplistic for most cases.\n",
|
||||
"\n",
|
||||
"## Oxygen on Rh(001)\n",
|
||||
"In a paper published in 1998, T. Gerber *et al.* used the quite high backscattering factor of Rhodium atoms to probe the distance of Oxygen atoms adsorbed on a Rhodium surface. Some electrons coming from Oxygen atoms are ejected toward the Rhodium surface. They are then backscattered and interfere with the direct signal comming from Oxygen atoms (see the figure below). They demonstrated both experimentally and numerically with a sinle scattering computation that this lead to a very accurate probe of adsorbed species that can be sensitive to bond length changes of the order of {math}`\\pm 0.02 \\mathring{A}`.\n",
|
||||
"\n",
|
||||
":::{seealso}\n",
|
||||
"based on this paper from T. Greber *et al.* [Phys. Rev. Lett. **81**(8) p1654 (1998)](https://doi.org/10.1103/PhysRevLett.81.1654)\n",
|
||||
":::"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "a4cd32cd-b480-44b5-af38-b38e5979ce00",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
":::{figure-md} RhO-fig\n",
|
||||
"<img src=\"RhO_fig0.jpg\" alt=\"RhO\" width=\"300px\" align=\"center\">\n",
|
||||
"\n",
|
||||
"Interferences produced by the backscattering effect\n",
|
||||
":::"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "4f6bcc08-a54c-424a-a20c-cbdd0ce13ae2",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"### Computing the scattering factor\n",
|
||||
"\n",
|
||||
"To illustrate that photoelectrons emitted by Oxygen adsorbates towards the Rhodium surface can be backscattered, we will start by computing the scattering factor for both O and Rh atoms.\n",
|
||||
"\n",
|
||||
"::::{tab-set}\n",
|
||||
"\n",
|
||||
":::{tab-item} <i class=\"fa-solid fa-circle-question\"></i> Quiz\n",
|
||||
"By using the `Atoms` class of the `ase` package, try to build a O-Rh chain where atoms are 4 Å apart. Here is the begining of the script. Try to complete the line of code and view your two-atoms chain.\n",
|
||||
"\n",
|
||||
"```python\n",
|
||||
"from ase import Atoms\n",
|
||||
"from ase.visualize import view\n",
|
||||
"\n",
|
||||
"# Create an atomic chain O-Rh\n",
|
||||
"cluster = Atoms(... # Fill this line\n",
|
||||
"```\n",
|
||||
":::\n",
|
||||
"\n",
|
||||
"::::"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"id": "55929980-7394-4a60-b554-376adce57dbf",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": [
|
||||
"hide-cell"
|
||||
]
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"from ase import Atoms\n",
|
||||
"from ase.visualize import view\n",
|
||||
"\n",
|
||||
"# Create an atomic chain O-Rh\n",
|
||||
"cluster = Atoms(['O', 'Rh'], positions = [(0,0,0), (0,0,4.)])"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"id": "2f296e2c-2a34-4266-98a8-362ede072659",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": [
|
||||
"remove-input"
|
||||
]
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"<html>\n",
|
||||
" <head>\n",
|
||||
" <title>ASE atomic visualization</title>\n",
|
||||
" <link rel=\"stylesheet\" type=\"text/css\" href=\"https://www.x3dom.org/release/x3dom.css\"></link>\n",
|
||||
" <script type=\"text/javascript\" src=\"https://www.x3dom.org/release/x3dom.js\"></script>\n",
|
||||
" </head>\n",
|
||||
" <body>\n",
|
||||
" <X3D width=\"400px\"; height=\"300px\";>\n",
|
||||
"\n",
|
||||
"<!--Inserting Generated X3D Scene-->\n",
|
||||
"<scene>\n",
|
||||
" <viewpoint position=\"0 0 8.0\">\n",
|
||||
" <group/>\n",
|
||||
" </viewpoint>\n",
|
||||
" <transform translation=\"-0.0 -0.0 -0.0\">\n",
|
||||
" <group>\n",
|
||||
" <group>\n",
|
||||
" <transform translation=\"0 0 0\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0 0 0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <lineset vertexCount=\"5\">\n",
|
||||
" <coordinate point=\"0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0\"/>\n",
|
||||
" </lineset>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"0.0 0.0 0.0\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0 0 0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <lineset vertexCount=\"5\">\n",
|
||||
" <coordinate point=\"0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0\"/>\n",
|
||||
" </lineset>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"0 0 0\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0 0 0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <lineset vertexCount=\"5\">\n",
|
||||
" <coordinate point=\"0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0\"/>\n",
|
||||
" </lineset>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"0.0 0.0 0.0\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0 0 0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <lineset vertexCount=\"5\">\n",
|
||||
" <coordinate point=\"0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0\"/>\n",
|
||||
" </lineset>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" </group>\n",
|
||||
" <group>\n",
|
||||
" <transform translation=\"0.0 0.0 0.0\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"1.0 0.051 0.051\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"0.66\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"0.0 0.0 4.0\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.039 0.49 0.549\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.42\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" </group>\n",
|
||||
" </group>\n",
|
||||
" </transform>\n",
|
||||
"</scene>\n",
|
||||
"<!--End of Inserted Scene-->\n",
|
||||
"\n",
|
||||
" </X3D>\n",
|
||||
" </body>\n",
|
||||
"</html>\n",
|
||||
"\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<IPython.core.display.HTML object>"
|
||||
]
|
||||
},
|
||||
"execution_count": 2,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"view(cluster, viewer='x3d')"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "736d6d08-930e-4b4f-a3fd-599ef8463035",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"As previously, we create a calculator, we attach our 2 atoms cluster to this calculator and we define the first atom in the chain as the emitter\n",
|
||||
"\n",
|
||||
":::{literalinclude} RhO_sf.py\n",
|
||||
":start-at: calc =\n",
|
||||
":end-at: emitter =\n",
|
||||
":::"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "21763c63-9bd1-4e80-944a-9cf313894b89",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"::::{tab-set}\n",
|
||||
"\n",
|
||||
":::{tab-item} <i class=\"fa-solid fa-circle-question\"></i> Quiz\n",
|
||||
"We use the `get_scattering_factors` method [(see its documentation)](https://msspec.cnrs.fr/modules/calculator.html#calculator._PED.get_scattering_factors) to compute the scattering factors at 723 eV.\n",
|
||||
"\n",
|
||||
"How large is the backscattering factor of Rhodium with respect to that of Oxygen ?\n",
|
||||
":::\n",
|
||||
"\n",
|
||||
"::::"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "14d39e21-eee0-411b-8347-25e932075c83",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"```{toggle}\n",
|
||||
"\n",
|
||||
":::{literalinclude} RhO_sf.py\n",
|
||||
":start-at: Compute\n",
|
||||
":::\n",
|
||||
"\n",
|
||||
":::{figure-md} SF-fig\n",
|
||||
"<img src=\"RhO_fig1.jpg\" alt=\"Scattering factors\" width=\"600px\" align=\"center\">\n",
|
||||
"\n",
|
||||
"Polar representation of the scattering factor\n",
|
||||
":::\n",
|
||||
"\n",
|
||||
"```"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "e7da60a3-b4e3-45ec-9d0e-62cb592f0687",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"### Interferences due to backscattering\n",
|
||||
"\n",
|
||||
"Let an Oxygen atom (in red) being adsorbed at a distance $z_0$ of an *fcc* site of the Rh(111) surface."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "68048f33-318d-400e-a815-769660f2b6c5",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": [
|
||||
"remove-input"
|
||||
]
|
||||
},
|
||||
"source": [
|
||||
":::{figure-md} Rho-fig2a\n",
|
||||
"<img src=\"RhO_fig2a.jpg\" width=\"600px\" align=\"center\">\n",
|
||||
"\n",
|
||||
"Small cluster used for the calculation.\n",
|
||||
":::"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "d6145250-5548-49a6-8b50-0bb7c5b454da",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"We will compute for different values of the adsorption height $z_0$.\n",
|
||||
"\n",
|
||||
"::::{tab-set}\n",
|
||||
"\n",
|
||||
":::{tab-item} <i class=\"fa-solid fa-circle-question\"></i> Quiz\n",
|
||||
"Complete the script below to compute the ($\\theta,\\phi$) scan of the photodiffraction of O(1s) adsorbed on a *fcc* site on Rh(111) surface.\n",
|
||||
"\n",
|
||||
"```{literalinclude} RhO_tofill.py\n",
|
||||
":lineno-match:\n",
|
||||
":emphasize-lines: 6,8,12,13\n",
|
||||
"```\n",
|
||||
"\n",
|
||||
"As proposed in the comments, add a loop to vary the adsorption height of Oxygen between 1.10 and 1.65 Å.\n",
|
||||
"What is the bond length difference between to intensity maxima ?\n",
|
||||
":::\n",
|
||||
"\n",
|
||||
"::::"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "4ff0c14f-b2f6-47c6-91f4-9edc7ee7260d",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"```{toggle}\n",
|
||||
"\n",
|
||||
":::{literalinclude} RhO_completed.py\n",
|
||||
":lineno-match:\n",
|
||||
":emphasize-lines: 6,8,12,13\n",
|
||||
":::\n",
|
||||
"\n",
|
||||
":::{figure-md} stereo-fig\n",
|
||||
"<img src=\"RhO_fig2b.gif\" alt=\"Scattering factors\" width=\"600px\" align=\"center\">\n",
|
||||
"\n",
|
||||
"Stereographic projections of O(1s) emission at {math}`E_0` = 723 eV for an oxygen atom \n",
|
||||
"on top of a fcc site of 3 Rh atoms at various altitudes {math}`z_0`\n",
|
||||
":::\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"You can see on the stereographic projection 3 bright circles representing fringes of constructive interference between the direct O(1s) photoelectron wave and that backscattered by the Rhodium atoms. The center of these annular shapes changes from bright to dark due to the variation of the Oxygen atom height above the surface which changes the path difference.\n",
|
||||
"\n",
|
||||
"```"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "3621c545-3e3a-439c-ab91-a76202cf2644",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3 (ipykernel)",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 3
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.11.13"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 5
|
||||
}
|
|
@ -0,0 +1,92 @@
|
|||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "d053c16f-22ca-44ce-a58d-03e73c1a5554",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"# Activity 4: From single scattering to multiple scattering"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "12b10290-0b9b-497a-baba-e7ecb6543788",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
":::{figure-md} Ni-fig1\n",
|
||||
"<img src=\"Ni_fig1.png\" alt=\"Ni chain\" width=\"600px\" align=\"center\">\n",
|
||||
"\n",
|
||||
"Polar scan of a Ni chain of 2-5 atoms for single and mutliple (5{sup}`th` order) scattering.\n",
|
||||
":::"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "4988e7d3-2ba3-470f-9676-8116348c30a1",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
":::{seealso}\n",
|
||||
"based on this paper from M.-L. Xu *et al.*\n",
|
||||
"[Phys. Rev. B **39** p8275 (1989)](https://doi.org/10.1103/PhysRevB.39.8275) \n",
|
||||
":::"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "b2aa92f1-3170-47f6-87c2-e7abffcbdb12",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
":::{literalinclude} Ni_chain.py\n",
|
||||
":lineno-match:\n",
|
||||
":::"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "bbd682d1-d142-4ac5-872d-0b57f3deecb9",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"::::{tab-set}\n",
|
||||
"\n",
|
||||
":::{tab-item} <i class=\"fa-solid fa-circle-question\"></i> Quiz\n",
|
||||
"Some questions to answer\n",
|
||||
":::\n",
|
||||
"\n",
|
||||
"::::"
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3 (ipykernel)",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 3
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.11.13"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 5
|
||||
}
|
|
@ -0,0 +1,885 @@
|
|||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "ff0fc2d9-b53e-4d29-883b-6d6303d76eb2",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"# Activity 5: Multiple scattering in the forward scattering regime"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "7f10b898-4fc8-40fd-a477-05e736a5a255",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"In photoelectron diffraction, it is well known that for high photoelectron kinetic energy (typically > 900 eV), the scattering factor is strongly peaked in the forward direction. It means that photoelectrons are almost not deviated after a scattering event.\n",
|
||||
"\n",
|
||||
"Peaks of intentisity are then usually observed for dense atomic directions of the sample. This is the **forward scattering approximation**.\n",
|
||||
"\n",
|
||||
"For such high kinetic energy, multiple scattering is needed to accurately describe the measured intensity, but the matrix inversion algorithm cannot be used since the memory needed for storing the matrix itself would be generally too large. The matrix will contain\n",
|
||||
"$(N \\times (L_{max}+1)^2)^2$ elements of complex type with double precision (64 bits) where $N$ is the number of atoms and $L_{max}$ is the number of spherical harmonics used to expand the electron wave around each atomic center. As the kinetic energy increases, the mean free path (MFP) of the photoelectron is larger and the number of atoms in the cluster has to be greater. Lmax also increases with the kinetic energy."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "cc78443a-1d06-408a-91eb-33a56fe25ba3",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"::::{tab-set}\n",
|
||||
"\n",
|
||||
":::{tab-item} <i class=\"fa-solid fa-circle-question\"></i> Quiz\n",
|
||||
"Try to evaluate how much memory you would need for this matrix for a hemispherical cluster of copper 15 angströms thick (1 MFP) for $L_{max} = 25$ ?\n",
|
||||
":::\n",
|
||||
"\n",
|
||||
"::::"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"id": "e6f5b739-bcbf-4a2f-9c51-5e409079392a",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": [
|
||||
"hide-cell"
|
||||
]
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"606 atoms, 2.685 TB\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"import numpy as np\n",
|
||||
"\n",
|
||||
"# lattice constant of fcc copper\n",
|
||||
"a = 3.6\n",
|
||||
"# radius of the cluster\n",
|
||||
"r = 15\n",
|
||||
"# volume of the cluster\n",
|
||||
"V = .5 * (4/3) * np.pi * r**3\n",
|
||||
"# volume of the cell\n",
|
||||
"v = a**3\n",
|
||||
"# number of atoms in the unit cell\n",
|
||||
"n = 4\n",
|
||||
"# number of atoms in the cluster\n",
|
||||
"N = int(V/v * n)\n",
|
||||
"\n",
|
||||
"Lmax = 25\n",
|
||||
"M = (N * (Lmax+1)**2 )**2 * 2 * 64 / 8\n",
|
||||
"print(f\"{N:d} atoms, {M/1e12:.3f} TB\")"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "f53ecd7a-9202-40ec-a472-c5a2146587c9",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"This is too much memory. We will use another algorithm available in MsSpec: The *Rehr-Albers series expansion*. We already used that algorithm in activity 3 for the single scattering approach. But this time, we will explore a bit more the effect of the scattering order > 1"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "f7e215cd-3468-4316-901d-27731ec3e61d",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"## PED of the 1T-TiSe<sub>2</sub> surface"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "ed46b9b8-cd37-4531-9686-5c1d804e868e",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"Let us try to model the Ti2p XPD pattern of the transition metal dichalcogenide 1T-TiSe<sub>2</sub>.\n",
|
||||
"\n",
|
||||
":::{seealso}\n",
|
||||
"based on this paper from M.V. Kuznetsov *et al.*\n",
|
||||
"[Surf. Sci. **606** p1760–70 (2012)](https://doi.org/10.1016/j.susc.2012.06.008)\n",
|
||||
":::\n",
|
||||
"\n",
|
||||
"### Creating the TiSe{sub}`2` cluster\n",
|
||||
"\n",
|
||||
"Start by creating a small cluster of 1T-TiSe<sub>2</sub> using the `mx2` function of `ase.build` and the `hemispherical_cluster` function of `msspec.utils`."
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"id": "65562913-1336-476c-8dd7-0ade7a8a1b8b",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
":::{figure-md} TiSe2-fig\n",
|
||||
"<img src=\"TiSe2_cell.jpg\" alt=\"TiSe2\" width=\"300px\" align=\"center\">\n",
|
||||
"\n",
|
||||
"Structure of 1T-TiSe<sub>2</sub> ($a_0=b_0=3.535$ Å, $c_0=6.004$ Å, $d=3.450$ Å, $D=2.554$ Å)\n",
|
||||
":::"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "849041c9-513f-4593-a4dd-fb3a495094fa",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"::::{tab-set}\n",
|
||||
"\n",
|
||||
":::{tab-item} <i class=\"fa-solid fa-circle-question\"></i> Quiz\n",
|
||||
"Complete the code snipet provided below to create a small TiSe{sub}`2` cluster with Ti emitter in the 2{sup}`nd` plane:\n",
|
||||
"\n",
|
||||
"```{literalinclude} TiSe2_1_tofill.py\n",
|
||||
":start-at: from\n",
|
||||
":end-before: Create a calculator\n",
|
||||
":lineno-match:\n",
|
||||
"```\n",
|
||||
"\n",
|
||||
":::\n",
|
||||
"\n",
|
||||
"::::"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"id": "b65b569e-242b-4fe9-9c87-ea90d80d9b44",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": [
|
||||
"hide-cell"
|
||||
]
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"from ase.build import mx2\n",
|
||||
"from ase.visualize import view\n",
|
||||
"from msspec.calculator import MSSPEC\n",
|
||||
"from msspec.utils import hemispherical_cluster, get_atom_index\n",
|
||||
"\n",
|
||||
"# Some usefull constants (a, c, d, D) for defining the structure\n",
|
||||
"a=3.535;c=6.004;d=3.450;D=2.554\n",
|
||||
"\n",
|
||||
"# Create the TiSe2 trilayer\n",
|
||||
"# use ase help for this function\n",
|
||||
"TiSe2 = mx2(formula='TiSe2', kind='1T', a=a, thickness=d, size=(1, 1, 1), vacuum=None)\n",
|
||||
"\n",
|
||||
"# The preious cell is 2D, let's define the c-axis to take into account \n",
|
||||
"# the Van der Waals gap between trilayers\n",
|
||||
"TiSe2.cell[2] = [0, 0, c]\n",
|
||||
"\n",
|
||||
"# To be aligned like in the paper\n",
|
||||
"TiSe2.rotate(60, 'z', rotate_cell=True)\n",
|
||||
"\n",
|
||||
"# Since the material is multi-elements, \"tag\" each inequivalent atom \n",
|
||||
"# of the unit cell with a number. The \"Ti\" atom is tagged 0 and \"Se\" \n",
|
||||
"# atoms are 1 and 2.\n",
|
||||
"for i in range(3): \n",
|
||||
" TiSe2[i].tag = i\n",
|
||||
"\n",
|
||||
"cluster = hemispherical_cluster(TiSe2, emitter_tag=0, emitter_plane=1, planes=5)\n",
|
||||
"cluster.emitter = get_atom_index(cluster, 0, 0, 0)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"id": "515064d0-3751-4fae-af0c-c4b15ea221b3",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": [
|
||||
"remove-input"
|
||||
]
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"<html>\n",
|
||||
" <head>\n",
|
||||
" <title>ASE atomic visualization</title>\n",
|
||||
" <link rel=\"stylesheet\" type=\"text/css\" href=\"https://www.x3dom.org/release/x3dom.css\"></link>\n",
|
||||
" <script type=\"text/javascript\" src=\"https://www.x3dom.org/release/x3dom.js\"></script>\n",
|
||||
" </head>\n",
|
||||
" <body>\n",
|
||||
" <X3D width=\"400px\"; height=\"300px\";>\n",
|
||||
"\n",
|
||||
"<!--Inserting Generated X3D Scene-->\n",
|
||||
"<scene>\n",
|
||||
" <viewpoint position=\"0 0 28.28\">\n",
|
||||
" <group/>\n",
|
||||
" </viewpoint>\n",
|
||||
" <transform translation=\"-0.8837500000000003 -2.220446049250313e-16 -3.002\">\n",
|
||||
" <group>\n",
|
||||
" <group>\n",
|
||||
" <transform translation=\"0 0 0\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0 0 0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <lineset vertexCount=\"5\">\n",
|
||||
" <coordinate point=\"0 0 0 1.7675000000000005 3.0613998023779905 0.0 -1.7674999999999996 3.061399802377991 0.0 -3.535 4.440892098500626e-16 0.0 0 0 0\"/>\n",
|
||||
" </lineset>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"0.0 0.0 6.004\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0 0 0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <lineset vertexCount=\"5\">\n",
|
||||
" <coordinate point=\"0 0 0 1.7675000000000005 3.0613998023779905 0.0 -1.7674999999999996 3.061399802377991 0.0 -3.535 4.440892098500626e-16 0.0 0 0 0\"/>\n",
|
||||
" </lineset>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"0 0 0\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0 0 0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <lineset vertexCount=\"5\">\n",
|
||||
" <coordinate point=\"0 0 0 1.7675000000000005 3.0613998023779905 0.0 1.7675000000000005 3.0613998023779905 6.004 0.0 0.0 6.004 0 0 0\"/>\n",
|
||||
" </lineset>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"-3.535 4.440892098500626e-16 0.0\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0 0 0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <lineset vertexCount=\"5\">\n",
|
||||
" <coordinate point=\"0 0 0 1.7675000000000005 3.0613998023779905 0.0 1.7675000000000005 3.0613998023779905 6.004 0.0 0.0 6.004 0 0 0\"/>\n",
|
||||
" </lineset>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" </group>\n",
|
||||
" <group>\n",
|
||||
" <transform translation=\"1.767499999999984 -7.143266205548649 1.724999999999999\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"1.0 0.631 0.0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.2\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"-1.7675000000000125 -7.143266205548649 1.724999999999999\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"1.0 0.631 0.0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.2\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"3.5349999999999966 -6.122799604755983 4.6629367034256575e-15\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.749 0.761 0.78\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.6\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"3.5349999999999966 -4.0818664031706575 1.724999999999999\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"1.0 0.631 0.0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.2\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"1.767499999999984 -5.102333003963317 -1.7249999999999894\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"1.0 0.631 0.0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.2\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"0.0 -4.0818664031706575 -4.279000000000005\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"1.0 0.631 0.0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.2\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"0.0 -6.122799604755983 4.6629367034256575e-15\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.749 0.761 0.78\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.6\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"0.0 -4.0818664031706575 1.724999999999999\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"1.0 0.631 0.0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.2\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"-1.7675000000000125 -5.102333003963317 -1.7249999999999894\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"1.0 0.631 0.0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.2\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"-3.5349999999999966 -6.122799604755983 4.6629367034256575e-15\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.749 0.761 0.78\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.6\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"-3.5349999999999966 -4.0818664031706575 1.724999999999999\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"1.0 0.631 0.0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.2\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"5.302499999999995 -3.0613998023779914 4.6629367034256575e-15\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.749 0.761 0.78\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.6\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"5.302499999999995 -1.0204666007926662 1.724999999999999\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"1.0 0.631 0.0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.2\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"3.5349999999999966 -2.040933201585325 -1.7249999999999894\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"1.0 0.631 0.0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.2\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"1.767499999999984 -1.0204666007926662 -4.279000000000005\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"1.0 0.631 0.0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.2\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"1.767499999999984 -3.0613998023779914 4.6629367034256575e-15\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.749 0.761 0.78\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.6\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"1.767499999999984 -1.0204666007926662 1.724999999999999\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"1.0 0.631 0.0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.2\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"0.0 -2.040933201585325 -1.7249999999999894\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"1.0 0.631 0.0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.2\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"-1.7675000000000125 -1.0204666007926662 -4.279000000000005\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"1.0 0.631 0.0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.2\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"-1.7675000000000125 -3.0613998023779914 4.6629367034256575e-15\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.749 0.761 0.78\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.6\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"-1.7675000000000125 -1.0204666007926662 1.724999999999999\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"1.0 0.631 0.0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.2\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"-3.5349999999999966 -2.040933201585325 -1.7249999999999894\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"1.0 0.631 0.0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.2\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"-5.302500000000009 -3.0613998023779914 4.6629367034256575e-15\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.749 0.761 0.78\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.6\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"-5.302500000000009 -1.0204666007926662 1.724999999999999\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"1.0 0.631 0.0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.2\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"7.069999999999993 0.0 4.6629367034256575e-15\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.749 0.761 0.78\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.6\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"7.069999999999993 2.040933201585325 1.724999999999999\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"1.0 0.631 0.0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.2\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"5.302499999999995 1.020466600792666 -1.7249999999999894\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"1.0 0.631 0.0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.2\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"3.5349999999999966 2.040933201585325 -4.279000000000005\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"1.0 0.631 0.0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.2\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"3.5349999999999966 0.0 4.6629367034256575e-15\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.749 0.761 0.78\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.6\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"3.5349999999999966 2.040933201585325 1.724999999999999\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"1.0 0.631 0.0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.2\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"1.767499999999984 1.020466600792666 -1.7249999999999894\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"1.0 0.631 0.0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.2\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"0.0 0.0 -6.004\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.749 0.761 0.78\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.6\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"0.0 2.040933201585325 -4.279000000000005\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"1.0 0.631 0.0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.2\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"0.0 0.0 4.6629367034256575e-15\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.749 0.761 0.78\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.6\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"0.0 2.040933201585325 1.724999999999999\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"1.0 0.631 0.0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.2\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"-1.7675000000000125 1.020466600792666 -1.7249999999999894\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"1.0 0.631 0.0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.2\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"-3.5349999999999966 2.040933201585325 -4.279000000000005\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"1.0 0.631 0.0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.2\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"-3.5349999999999966 0.0 4.6629367034256575e-15\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.749 0.761 0.78\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.6\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"-3.5349999999999966 2.040933201585325 1.724999999999999\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"1.0 0.631 0.0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.2\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"-5.302500000000009 1.020466600792666 -1.7249999999999894\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"1.0 0.631 0.0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.2\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"-7.070000000000007 0.0 4.6629367034256575e-15\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.749 0.761 0.78\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.6\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"-7.070000000000007 2.040933201585325 1.724999999999999\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"1.0 0.631 0.0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.2\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"5.302499999999995 3.0613998023779985 4.6629367034256575e-15\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.749 0.761 0.78\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.6\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"5.302499999999995 5.102333003963331 1.724999999999999\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"1.0 0.631 0.0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.2\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"3.5349999999999966 4.0818664031706575 -1.7249999999999894\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"1.0 0.631 0.0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.2\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"1.7674999999999983 3.0613998023779985 4.6629367034256575e-15\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.749 0.761 0.78\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.6\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"1.7674999999999983 5.102333003963331 1.724999999999999\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"1.0 0.631 0.0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.2\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"0.0 4.0818664031706575 -1.7249999999999894\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"1.0 0.631 0.0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.2\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"-1.7675000000000125 3.0613998023779985 4.6629367034256575e-15\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.749 0.761 0.78\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.6\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"-1.7675000000000125 5.102333003963331 1.724999999999999\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"1.0 0.631 0.0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.2\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"-3.5349999999999966 4.0818664031706575 -1.7249999999999894\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"1.0 0.631 0.0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.2\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"-5.302500000000009 3.0613998023779985 4.6629367034256575e-15\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.749 0.761 0.78\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.6\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"-5.302500000000009 5.102333003963331 1.724999999999999\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"1.0 0.631 0.0\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.2\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"3.5349999999999966 6.12279960475599 4.6629367034256575e-15\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.749 0.761 0.78\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.6\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"0.0 6.12279960475599 4.6629367034256575e-15\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.749 0.761 0.78\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.6\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" <transform translation=\"-3.5349999999999966 6.12279960475599 4.6629367034256575e-15\">\n",
|
||||
" <shape>\n",
|
||||
" <appearance>\n",
|
||||
" <material diffuseColor=\"0.749 0.761 0.78\"/>\n",
|
||||
" </appearance>\n",
|
||||
" <sphere radius=\"1.6\"/>\n",
|
||||
" </shape>\n",
|
||||
" </transform>\n",
|
||||
" </group>\n",
|
||||
" </group>\n",
|
||||
" </transform>\n",
|
||||
"</scene>\n",
|
||||
"<!--End of Inserted Scene-->\n",
|
||||
"\n",
|
||||
" </X3D>\n",
|
||||
" </body>\n",
|
||||
"</html>\n",
|
||||
"\n"
|
||||
],
|
||||
"text/plain": [
|
||||
"<IPython.core.display.HTML object>"
|
||||
]
|
||||
},
|
||||
"execution_count": 3,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"view(cluster, viewer='x3d')"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "3b029e1b-6871-42ac-9cdd-65c583404e3d",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"### Effect of the scattering order\n",
|
||||
"\n",
|
||||
"Use the line belows to create a calculator and compute a $\\theta$-$\\phi$ scan of the Ti(2p)\n",
|
||||
"\n",
|
||||
"```{literalinclude} TiSe2_1_tofill.py\n",
|
||||
" :start-at: Create a\n",
|
||||
"```"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "8169ad09-36b4-4f0a-b737-378e2f78b3df",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"::::{tab-set}\n",
|
||||
"\n",
|
||||
":::{tab-item} <i class=\"fa-solid fa-circle-question\"></i> Quiz\n",
|
||||
"Compute a scan for an emitter in the first trilayer and in the second trilayer for scattering orders from 1 (single scattering) to 3 in order to complete the figure below.\n",
|
||||
"What do you conclude about the value of the `calc.calculation_parameters.scattering_order` ?\n",
|
||||
"\n",
|
||||
"```{figure-md} results-fig\n",
|
||||
"<img src=\"results.jpg\" width=\"400px\" align=\"center\">\n",
|
||||
"\n",
|
||||
"$\\theta$-$\\phi$ scan of Ti(2p) at 1030 eV kinetic energy for an emitter in the first trilayer (left column) and in the second trilayer (right column). Each row correspond to a growing value for the `calc.calculation_parameters.scattering_order` parameter (from 1 to 5).\n",
|
||||
"```\n",
|
||||
"\n",
|
||||
":::\n",
|
||||
"\n",
|
||||
"::::"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "4fb402ae-e094-4d6c-833f-5f106fd72035",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": [
|
||||
"hide-cell"
|
||||
]
|
||||
},
|
||||
"source": [
|
||||
"```{toggle}\n",
|
||||
"\n",
|
||||
":::{figure-md} results-completed-fig\n",
|
||||
"<img src=\"results_completed.jpg\" width=\"400px\" align=\"center\">\n",
|
||||
"\n",
|
||||
"$\\theta$-$\\phi$ scan of Ti(2p) at 1030 eV kinetic energy for an emitter in the first trilayer (left column) and in the second trilayer (right column). Each row correspond to a growing value for the `calc.calculation_parameters.scattering_order` parameter (from 1 to 5).\n",
|
||||
":::\n",
|
||||
"\n",
|
||||
"The deeper the emitter, the greater the scattering order should be for the intensity to converge.\n",
|
||||
"Typically, in the forward scattering regime, the scattering order corresponds to the number of planes above the emitter.\n",
|
||||
"\n",
|
||||
"```"
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3 (ipykernel)",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 3
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.11.13"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 5
|
||||
}
|
|
@ -0,0 +1,141 @@
|
|||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "c0a860db-0f72-4785-81f4-831e48b3a49f",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Activity 6: Effect of the temperature\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"## Surface and bulk effects of the temperature\n",
|
||||
"\n",
|
||||
"In this example, we will look at the effects of the temperature on the X-Ray photoelectron diffraction from a copper substrate. We will base our python script on a paper published in 1986 by R. Trehan and S. Fadley. In their work, they performed azimutal scans of a copper(001) surface at 2 different polar angles: one at grazing incidence and one at 45° for incresing temperatures from 298K to roughly 1000K.\n",
|
||||
"\n",
|
||||
"For each azimutal scan, they looked at the anisotropy of the signal, that is:\n",
|
||||
"\n",
|
||||
"```{math}\n",
|
||||
":label: eq-anisotropy\n",
|
||||
"\\frac{I_{max} - I_{min}}{I_{max}}=\\frac{\\Delta I}{I_{max}}\n",
|
||||
"```\n",
|
||||
"\n",
|
||||
"This value is representative of how clear are the *modulations* of the signal. They also proposed single scattering calculations that reproduced well these results.\n",
|
||||
"\n",
|
||||
"We will reproduce this kind of calculations to introduce the parameters that control the vibrational damping.\n",
|
||||
"\n",
|
||||
"(msd-paper)=\n",
|
||||
":::{seealso}\n",
|
||||
"based on this paper from R. Trehan and C.S. Fadley\n",
|
||||
"[Phys. Rev. B **34** p6784–98 (2012)](https://doi.org/10.1103/PhysRevB.34.6784)\n",
|
||||
":::\n",
|
||||
"\n",
|
||||
"### The script\n",
|
||||
"\n",
|
||||
"Since we want to distinguish between bulk (low polar angles, $\\theta = 45°$ in the paper) and surface effects (large polar angles, $\\theta = 83°$ in the paper), we need to compute scans for different emitters and different depths in the cluster.\n",
|
||||
"\n",
|
||||
"The script contains 3 functions:\n",
|
||||
"1. The `create_clusters` function will build clusters with increasing number of planes, with the emitter being in the deepest plane for each cluster.\n",
|
||||
"2. The function `compute` will compute the azimuthal scan for a given cluster.\n",
|
||||
"3. The `analysis` function will sum the intensity from each plane for a given temperature. This will be the *substrate total signal* (more on this in the {ref}`path-filtering` section). The function will also compute the anisotropy (equation {eq}`eq-anisotropy`).\n",
|
||||
"\n",
|
||||
"MsSpec can introduce temperature effects in two ways: either by using the Debye Waller model or by doing an average over the phase shifts. We will explore the latter in this example.\n",
|
||||
"\n",
|
||||
"Regardless of the option chosen to model temperature effects, we need to define mean square displacement (MSD) values of the atoms in our cluster. We will use the Debye model for this. The MSD is defined as follows:\n",
|
||||
"\n",
|
||||
":::{math}\n",
|
||||
":label: eq-debye\n",
|
||||
"<U_j^2(T)> = \\frac{3\\hbar^2 T}{M K_B \\Theta_D^2}\n",
|
||||
":::\n",
|
||||
"\n",
|
||||
"where $\\hbar$ is the reduce Planck's constant, $T$ is the temperature, $M$ is the mass of the atom, $k_B$ is the Boltzmann's constant and $\\Theta_D$ is the Debye temperature of the sample.\n",
|
||||
"\n",
|
||||
"To get an idea of the typical order of magnitude for MSD, the figure below plots the values of MSD for copper for temperatures ranging from 300 K to 1000 K.\n",
|
||||
"\n",
|
||||
":::{figure-md} msd-fig\n",
|
||||
"<img src=\"msd.jpg\" alt=\"Cu MSD\" width=\"600px\" align=\"center\">\n",
|
||||
"\n",
|
||||
"Variation of MSD for copper versus temperature using equation {eq}`eq-debye`\n",
|
||||
":::"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "69b8c17d-ab66-4092-a492-005f05d80495",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"::::{tab-set}\n",
|
||||
"\n",
|
||||
":::{tab-item} <i class=\"fa-solid fa-circle-question\"></i> Quiz\n",
|
||||
"With the help of the [MsSpec documentation](https://msspec.cnrs.fr/parameters.html) and the second paragraph p6791 of the [article cited above](#msd-paper),\n",
|
||||
"complete the hilighted lines in the following script to compute the anisotropy of Cu(2p) $\\phi$-scans for polar angle $\\theta$=45° and 83°.\n",
|
||||
"\n",
|
||||
"How is varying the anisotropy versus the temperature. How can you qualitatively explain this variation ?\n",
|
||||
"\n",
|
||||
"```{literalinclude} Cu_temperature.py\n",
|
||||
":lineno-match:\n",
|
||||
":emphasize-lines: 40-41,44-48\n",
|
||||
"```\n",
|
||||
"\n",
|
||||
":::\n",
|
||||
"\n",
|
||||
"::::"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "8dbafb54-cdb8-43fb-ba9e-ec1696e39731",
|
||||
"metadata": {
|
||||
"editable": true,
|
||||
"slideshow": {
|
||||
"slide_type": ""
|
||||
},
|
||||
"tags": []
|
||||
},
|
||||
"source": [
|
||||
"```{toggle}\n",
|
||||
"\n",
|
||||
":::{literalinclude} Cu_temperature_completed.py\n",
|
||||
":lineno-match:\n",
|
||||
":emphasize-lines: 40-41,44-48\n",
|
||||
":::\n",
|
||||
"\n",
|
||||
":::{figure-md} anisotropy-fig\n",
|
||||
"<img src=\"anisotropies.png\" alt=\"anisotropies\" width=\"600px\" align=\"center\">\n",
|
||||
"\n",
|
||||
"Variation of anisotropy as a function of temperature and polar angle for Cu(2p).\n",
|
||||
":::\n",
|
||||
"\n",
|
||||
"The anisotropy decreases when the temperature is increased due to the increased disorder in the structure coming from thermal agitation. This variation in anisotropy is more pronounced for grazing incidence angles since surface atoms are expected to vibrate more than bulk ones and the expected mean depth of no-loss emission is $\\sim 1$ atomic layer at $\\theta = 83°$ and 3-4 layers at $\\theta = 45°$ as estimated by $\\Lambda_e\\sin\\theta$ (where $\\Lambda_e$ is the photoelectron mean free path at 560 eV).\n",
|
||||
"\n",
|
||||
"```"
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3 (ipykernel)",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 3
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.11.13"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 5
|
||||
}
|
|
@ -0,0 +1,42 @@
|
|||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "42cfa8b1-20d2-47e4-a1f0-161c4517df2c",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"(path-filtering)=\n",
|
||||
"# Activity 7: Large clusters and path filtering"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "e0df9191-52b9-4a42-9232-7fed2b63cc3a",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3 (ipykernel)",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 3
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.11.13"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 5
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "2ff5929f-c066-496f-b078-0bbc2ab49428",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Activity 8: Inequivalent emitters and the XPD of a substrate"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "1df76138-c957-4da2-bcc8-ec977c209b81",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3 (ipykernel)",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 3
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.11.13"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 5
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "aa43e0e7-0c18-4750-9e2b-3a48f106d2ca",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Activity 9: Comparing simulation and experiment with R-factors"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "b9b32bbf-7635-4e14-b246-468f2e74bb17",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3 (ipykernel)",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 3
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.11.13"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 5
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "38d3e621-e866-43e1-9c92-f473d1e755c0",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Activity 10: Auger Electron Diffraction"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "526d98f6-5a18-4ed9-9870-29b08b54e073",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3 (ipykernel)",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 3
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.11.13"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 5
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "140adc62-2a15-4806-b6e1-1a0a0b7054e2",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Activity 11: Spectral radius and convergence"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "8adb2f68-32bc-4e45-95b6-bd9fb7f96439",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3 (ipykernel)",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 3
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.11.13"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 5
|
||||
}
|