Skip to content

Commit

Permalink
build based on 8df8e3f
Browse files Browse the repository at this point in the history
  • Loading branch information
Documenter.jl committed Nov 2, 2023
1 parent 754b668 commit 7cb9b84
Show file tree
Hide file tree
Showing 45 changed files with 37 additions and 37 deletions.
2 changes: 1 addition & 1 deletion dev/.documenter-siteinfo.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"documenter":{"julia_version":"1.9.3","generation_timestamp":"2023-11-01T23:49:32","documenter_version":"1.1.2"}}
{"documenter":{"julia_version":"1.9.3","generation_timestamp":"2023-11-02T01:09:16","documenter_version":"1.1.2"}}
4 changes: 2 additions & 2 deletions dev/examples/01_LSWT_SU3_FeI2.html
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@
0.0 J′2apm 0.0;
0.0 0.0 J′2azz], Bond(1,1,[1,2,1]))</code></pre><p>The function <a href="../library.html#Sunny.set_onsite_coupling!-Tuple{System, Any, Int64}"><code>set_onsite_coupling!</code></a> assigns a single-ion anisotropy. The argument can be constructed using <a href="../library.html#Sunny.spin_matrices-Tuple{Any}"><code>spin_matrices</code></a> or <a href="../library.html#Sunny.stevens_matrices-Tuple{Any}"><code>stevens_matrices</code></a>. Here we use Julia&#39;s anonymous function syntax to assign an easy-axis anisotropy along the direction <span>$\hat{z}$</span>.</p><pre><code class="language-julia hljs">D = 2.165
set_onsite_coupling!(sys, S -&gt; -D*S[3]^2, 1)</code></pre><h1 id="Calculating-structure-factor-intensities"><a class="docs-heading-anchor" href="#Calculating-structure-factor-intensities">Calculating structure factor intensities</a><a id="Calculating-structure-factor-intensities-1"></a><a class="docs-heading-anchor-permalink" href="#Calculating-structure-factor-intensities" title="Permalink"></a></h1><p>In the remainder of this tutorial, we will examine Sunny&#39;s tools for calculating the dynamical structure factor using a <a href="https://arxiv.org/abs/1307.7731">multi-boson generalization</a> of linear spin wave theory (LSWT). This theory describes non-interacting quasi-particle excitations that hybridize dipolar and quadrupolar modes.</p><h2 id="Finding-the-ground-state"><a class="docs-heading-anchor" href="#Finding-the-ground-state">Finding the ground state</a><a id="Finding-the-ground-state-1"></a><a class="docs-heading-anchor-permalink" href="#Finding-the-ground-state" title="Permalink"></a></h2><p>Begin with a random configuration and use <a href="../library.html#Sunny.minimize_energy!-Union{Tuple{System{N}}, Tuple{N}} where N"><code>minimize_energy!</code></a> to find a configuration of the SU(3) coherent states (i.e. spin dipoles and quadrupoles) that locally minimizes energy.</p><pre><code class="language-julia hljs">randomize_spins!(sys)
minimize_energy!(sys)</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">49</code></pre><p>A positive number above indicates that the procedure has converged to a local energy minimum. The configuration, however, may still have defects. This can be checked by visualizing the spins, colored according to their <span>$z$</span>-components.</p><pre><code class="language-julia hljs">plot_spins(sys; color=[s[3] for s in sys.dipoles])</code></pre><img src="01_LSWT_SU3_FeI2-c72e43fa.png" alt="Example block output"/><p>A different understanding of the magnetic ordering can be obtained by moving to Fourier space. The &#39;instant&#39; structure factor <span>$𝒮(𝐪)$</span> is an experimental observable. To investigate <span>$𝒮(𝐪)$</span> as true 3D data, Sunny provides <a href="../library.html#Sunny.instant_correlations-Tuple{System}"><code>instant_correlations</code></a> and related functions. Here, however, we will use <a href="../library.html#Sunny.print_wrapped_intensities-Union{Tuple{System{N}}, Tuple{N}} where N"><code>print_wrapped_intensities</code></a>, which gives average intensities for the individual Bravais sublattices (in effect, all wavevectors are wrapped to the first Brillouin zone).</p><pre><code class="language-julia hljs">print_wrapped_intensities(sys)</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">Dominant wavevectors for spin sublattices:
minimize_energy!(sys)</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">50</code></pre><p>A positive number above indicates that the procedure has converged to a local energy minimum. The configuration, however, may still have defects. This can be checked by visualizing the spins, colored according to their <span>$z$</span>-components.</p><pre><code class="language-julia hljs">plot_spins(sys; color=[s[3] for s in sys.dipoles])</code></pre><img src="01_LSWT_SU3_FeI2-c72e43fa.png" alt="Example block output"/><p>A different understanding of the magnetic ordering can be obtained by moving to Fourier space. The &#39;instant&#39; structure factor <span>$𝒮(𝐪)$</span> is an experimental observable. To investigate <span>$𝒮(𝐪)$</span> as true 3D data, Sunny provides <a href="../library.html#Sunny.instant_correlations-Tuple{System}"><code>instant_correlations</code></a> and related functions. Here, however, we will use <a href="../library.html#Sunny.print_wrapped_intensities-Union{Tuple{System{N}}, Tuple{N}} where N"><code>print_wrapped_intensities</code></a>, which gives average intensities for the individual Bravais sublattices (in effect, all wavevectors are wrapped to the first Brillouin zone).</p><pre><code class="language-julia hljs">print_wrapped_intensities(sys)</code></pre><pre class="documenter-example-output"><code class="nohighlight hljs ansi">Dominant wavevectors for spin sublattices:

[-1/4, 1/4, 1/4] 37.33% weight
[1/4, -1/4, -1/4] 37.33%
Expand Down Expand Up @@ -156,4 +156,4 @@
fig = Figure()
ax = Axis(fig[1,1]; xlabel=&quot;Momentum (r.l.u.)&quot;, ylabel=&quot;Energy (meV)&quot;, xticks, xticklabelrotation=π/6)
heatmap!(ax, 1:size(is_averaged, 1), energies, is_averaged)
fig</code></pre><img src="01_LSWT_SU3_FeI2-1fdd91bd.png" alt="Example block output"/><p>This result can be directly compared to experimental neutron scattering data from <a href="https://doi.org/10.1038/s41567-020-01110-1">Bai et al.</a></p><img src="https://raw.githubusercontent.com/SunnySuite/Sunny.jl/main/docs/src/assets/FeI2_intensity.jpg"><p>(The publication figure accidentally used a non-standard coordinate system to label the wave vectors.)</p><p>To get this agreement, the use of SU(3) coherent states is essential. In other words, we needed a theory of multi-flavored bosons. The lower band has large quadrupolar character, and arises from the strong easy-axis anisotropy of FeI₂. By setting <code>mode = :SUN</code>, the calculation captures this coupled dipole-quadrupole dynamics.</p><p>An interesting exercise is to repeat the same study, but using <code>mode = :dipole</code> instead of <code>:SUN</code>. That alternative choice would constrain the coherent state dynamics to the space of dipoles only.</p><p>The full dynamical spin structure factor (DSSF) can be retrieved as a <span>$3×3$</span> matrix with the <a href="../library.html#Sunny.dssf-Tuple{SpinWaveTheory, Any}"><code>dssf</code></a> function, for a given path of <span>$𝐪$</span>-vectors.</p><pre><code class="language-julia hljs">disp, is = dssf(swt, path);</code></pre><p>The first output <code>disp</code> is identical to that obtained from <code>dispersion</code>. The second output <code>is</code> contains a list of <span>$3×3$</span> matrix of intensities. For example, <code>is[q,n][2,3]</code> yields the <span>$(ŷ,ẑ)$</span> component of the structure factor intensity for <code>nth</code> mode at the <code>q</code>th wavevector in the <code>path</code>.</p><h2 id="What&#39;s-next?"><a class="docs-heading-anchor" href="#What&#39;s-next?">What&#39;s next?</a><a id="What&#39;s-next?-1"></a><a class="docs-heading-anchor-permalink" href="#What&#39;s-next?" title="Permalink"></a></h2><p>The multi-boson linear spin wave theory, applied above, can be understood as the quantization of a certain generalization of the Landau-Lifshitz spin dynamics. Rather than dipoles, this dynamics takes places on the space of <a href="https://arxiv.org/abs/2106.14125">SU(<em>N</em>) coherent states</a>.</p><p>The full SU(<em>N</em>) coherent state dynamics, with appropriate quantum correction factors, can be useful to model finite temperature scattering data. In particular, it captures certain anharmonic effects due to thermal fluctuations. See our <a href="04_GSD_FeI2.html#.-Generalized-spin-dynamics-of-FeI-at-finite-*T*">generalized spin dynamics tutorial</a>.</p><p>The classical dynamics is also a good starting point to study non-equilibrium phenomena. Empirical noise and damping terms can be used to model <a href="https://arxiv.org/abs/2209.01265">coupling to a thermal bath</a>. This yields a Langevin dynamics of SU(<em>N</em>) coherent states. Our <a href="06_CP2_Skyrmions.html#.-Dynamical-quench-into-CP-skyrmion-liquid">dynamical SU(<em>N</em>) quench</a> tutorial illustrates how a temperature quench can give rise to novel liquid phase of CP² skyrmions.</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../index.html">« Overview</a><a class="docs-footer-nextpage" href="02_LSWT_CoRh2O4.html">2. Spin wave simulations of CoRh₂O₄ »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="auto">Automatic (OS)</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.1.2 on <span class="colophon-date" title="Wednesday 1 November 2023 23:49">Wednesday 1 November 2023</span>. Using Julia version 1.9.3.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
fig</code></pre><img src="01_LSWT_SU3_FeI2-1fdd91bd.png" alt="Example block output"/><p>This result can be directly compared to experimental neutron scattering data from <a href="https://doi.org/10.1038/s41567-020-01110-1">Bai et al.</a></p><img src="https://raw.githubusercontent.com/SunnySuite/Sunny.jl/main/docs/src/assets/FeI2_intensity.jpg"><p>(The publication figure accidentally used a non-standard coordinate system to label the wave vectors.)</p><p>To get this agreement, the use of SU(3) coherent states is essential. In other words, we needed a theory of multi-flavored bosons. The lower band has large quadrupolar character, and arises from the strong easy-axis anisotropy of FeI₂. By setting <code>mode = :SUN</code>, the calculation captures this coupled dipole-quadrupole dynamics.</p><p>An interesting exercise is to repeat the same study, but using <code>mode = :dipole</code> instead of <code>:SUN</code>. That alternative choice would constrain the coherent state dynamics to the space of dipoles only.</p><p>The full dynamical spin structure factor (DSSF) can be retrieved as a <span>$3×3$</span> matrix with the <a href="../library.html#Sunny.dssf-Tuple{SpinWaveTheory, Any}"><code>dssf</code></a> function, for a given path of <span>$𝐪$</span>-vectors.</p><pre><code class="language-julia hljs">disp, is = dssf(swt, path);</code></pre><p>The first output <code>disp</code> is identical to that obtained from <code>dispersion</code>. The second output <code>is</code> contains a list of <span>$3×3$</span> matrix of intensities. For example, <code>is[q,n][2,3]</code> yields the <span>$(ŷ,ẑ)$</span> component of the structure factor intensity for <code>nth</code> mode at the <code>q</code>th wavevector in the <code>path</code>.</p><h2 id="What&#39;s-next?"><a class="docs-heading-anchor" href="#What&#39;s-next?">What&#39;s next?</a><a id="What&#39;s-next?-1"></a><a class="docs-heading-anchor-permalink" href="#What&#39;s-next?" title="Permalink"></a></h2><p>The multi-boson linear spin wave theory, applied above, can be understood as the quantization of a certain generalization of the Landau-Lifshitz spin dynamics. Rather than dipoles, this dynamics takes places on the space of <a href="https://arxiv.org/abs/2106.14125">SU(<em>N</em>) coherent states</a>.</p><p>The full SU(<em>N</em>) coherent state dynamics, with appropriate quantum correction factors, can be useful to model finite temperature scattering data. In particular, it captures certain anharmonic effects due to thermal fluctuations. See our <a href="04_GSD_FeI2.html#.-Generalized-spin-dynamics-of-FeI-at-finite-*T*">generalized spin dynamics tutorial</a>.</p><p>The classical dynamics is also a good starting point to study non-equilibrium phenomena. Empirical noise and damping terms can be used to model <a href="https://arxiv.org/abs/2209.01265">coupling to a thermal bath</a>. This yields a Langevin dynamics of SU(<em>N</em>) coherent states. Our <a href="06_CP2_Skyrmions.html#.-Dynamical-quench-into-CP-skyrmion-liquid">dynamical SU(<em>N</em>) quench</a> tutorial illustrates how a temperature quench can give rise to novel liquid phase of CP² skyrmions.</p></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../index.html">« Overview</a><a class="docs-footer-nextpage" href="02_LSWT_CoRh2O4.html">2. Spin wave simulations of CoRh₂O₄ »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="auto">Automatic (OS)</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.1.2 on <span class="colophon-date" title="Thursday 2 November 2023 01:09">Thursday 2 November 2023</span>. Using Julia version 1.9.3.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
2 changes: 1 addition & 1 deletion dev/examples/02_LSWT_CoRh2O4.html
Original file line number Diff line number Diff line change
Expand Up @@ -57,4 +57,4 @@
fig = Figure()
ax = Axis(fig[1,1]; xlabel=&quot;Q (Å⁻¹)&quot;, ylabel=&quot;ω (meV)&quot;)
heatmap!(ax, radii, energies, output, colormap=:gnuplot2)
fig</code></pre><img src="02_LSWT_CoRh2O4-822521c1.png" alt="Example block output"/><p>This result can be compared to experimental neutron scattering data from Fig. 5 of <a href="https://doi.org/10.1103/PhysRevB.96.064413">Ge et al.</a></p><img width="95%" src="https://raw.githubusercontent.com/SunnySuite/Sunny.jl/main/docs/src/assets/CoRh2O4_intensity.jpg"></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="01_LSWT_SU3_FeI2.html">« 1. Multi-flavor spin wave simulations of FeI₂ (Showcase)</a><a class="docs-footer-nextpage" href="03_LLD_CoRh2O4.html">3. Landau-Lifshitz dynamics of CoRh₂O₄ at finite <em>T</em> »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="auto">Automatic (OS)</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.1.2 on <span class="colophon-date" title="Wednesday 1 November 2023 23:49">Wednesday 1 November 2023</span>. Using Julia version 1.9.3.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
fig</code></pre><img src="02_LSWT_CoRh2O4-822521c1.png" alt="Example block output"/><p>This result can be compared to experimental neutron scattering data from Fig. 5 of <a href="https://doi.org/10.1103/PhysRevB.96.064413">Ge et al.</a></p><img width="95%" src="https://raw.githubusercontent.com/SunnySuite/Sunny.jl/main/docs/src/assets/CoRh2O4_intensity.jpg"></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="01_LSWT_SU3_FeI2.html">« 1. Multi-flavor spin wave simulations of FeI₂ (Showcase)</a><a class="docs-footer-nextpage" href="03_LLD_CoRh2O4.html">3. Landau-Lifshitz dynamics of CoRh₂O₄ at finite <em>T</em> »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="auto">Automatic (OS)</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.1.2 on <span class="colophon-date" title="Thursday 2 November 2023 01:09">Thursday 2 November 2023</span>. Using Julia version 1.9.3.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
Binary file removed dev/examples/03_LLD_CoRh2O4-143cf2d7.png
Binary file not shown.
Binary file removed dev/examples/03_LLD_CoRh2O4-30fb550a.png
Binary file not shown.
Binary file removed dev/examples/03_LLD_CoRh2O4-5d37d1e4.png
Binary file not shown.
Binary file added dev/examples/03_LLD_CoRh2O4-72a89b73.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added dev/examples/03_LLD_CoRh2O4-a68963a3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added dev/examples/03_LLD_CoRh2O4-c312572a.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed dev/examples/03_LLD_CoRh2O4-ce111d6a.png
Binary file not shown.
Binary file removed dev/examples/03_LLD_CoRh2O4-df23408a.png
Binary file not shown.
Binary file added dev/examples/03_LLD_CoRh2O4-f34a0a7e.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added dev/examples/03_LLD_CoRh2O4-fdd61b59.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 7cb9b84

Please sign in to comment.