Table of Contents
Fetching ...

NuMagSANS: a GPU-accelerated open-source software package for the generic computation of nuclear and magnetic small-angle neutron scattering observables of complex systems

Michael P. Adams, Andreas Michels

TL;DR

NuMagSANS, a GPU-accelerated software package for calculating nuclear and magnetic small-angle neutron scattering (SANS) cross sections and correlation functions, includes a versatile library of approximately 100 response functions that encompass two-dimensional SANS cross sections, correlation functions, and azimuthally averaged quantities.

Abstract

We present NuMagSANS, a GPU-accelerated software package for calculating nuclear and magnetic small-angle neutron scattering (SANS) cross sections and correlation functions. The program allows users to import position-dependent nuclear density and magnetization data, providing a large flexibility for analyzing the scattering signatures of complex systems, particularly magnetic materials. Full rotational control of the sample is supported, allowing a comprehensive exploration of angular-dependent scattering features. NuMagSANS includes a versatile library of approximately 100 response functions that encompass two-dimensional SANS cross sections, correlation functions, and azimuthally averaged quantities. These capabilities allow users to gain detailed insight into the structural and magnetic characteristics of their samples. GPU acceleration ensures rapid computations, even for large data sets, making NuMagSANS a powerful and efficient tool for advanced SANS analysis.

NuMagSANS: a GPU-accelerated open-source software package for the generic computation of nuclear and magnetic small-angle neutron scattering observables of complex systems

TL;DR

NuMagSANS, a GPU-accelerated software package for calculating nuclear and magnetic small-angle neutron scattering (SANS) cross sections and correlation functions, includes a versatile library of approximately 100 response functions that encompass two-dimensional SANS cross sections, correlation functions, and azimuthally averaged quantities.

Abstract

We present NuMagSANS, a GPU-accelerated software package for calculating nuclear and magnetic small-angle neutron scattering (SANS) cross sections and correlation functions. The program allows users to import position-dependent nuclear density and magnetization data, providing a large flexibility for analyzing the scattering signatures of complex systems, particularly magnetic materials. Full rotational control of the sample is supported, allowing a comprehensive exploration of angular-dependent scattering features. NuMagSANS includes a versatile library of approximately 100 response functions that encompass two-dimensional SANS cross sections, correlation functions, and azimuthally averaged quantities. These capabilities allow users to gain detailed insight into the structural and magnetic characteristics of their samples. GPU acceleration ensures rapid computations, even for large data sets, making NuMagSANS a powerful and efficient tool for advanced SANS analysis.
Paper Structure (27 sections, 61 equations, 10 figures, 3 tables)

This paper contains 27 sections, 61 equations, 10 figures, 3 tables.

Figures (10)

  • Figure 1: Sketch of the neutron scattering geometry that is implemented in NuMagSANS. The neutron optical elements (polarizer, spin flipper, analyzer) that are required to measure the spin-resolved SANS cross sections are not drawn. The external magnetic field $\mathbf{B}_0 \parallel \mathbf{e}_z$ is here applied perpendicular to the wave vector $\mathbf{k}_0 \parallel \mathbf{e}_x$ of the incident neutron beam ($\mathbf{B}_0 \perp \mathbf{k}_0$). The momentum-transfer or scattering vector $\mathbf{q}$ is defined as the difference between $\mathbf{k}_0$ and $\mathbf{k}_1$, i.e., $\mathbf{q} = \mathbf{k}_0 - \mathbf{k}_1$. Its magnitude for elastic scattering, $q = \frac{4\pi}{\lambda} \sin\psi$, depends on the average neutron wavelength $\lambda$ and on the scattering angle $2\psi$. The angle $\theta = \angle(\mathbf{q}, \mathbf{B}_0)$ is used to describe the angular anisotropy of the scattering pattern on the two-dimensional detector. In small-angle approximation the component of $\mathbf{q}$ along $\mathbf{k}_0$ is small compared to the other two components, so that $\mathbf{q} \cong \{ 0, q_y, q_z \}$.
  • Figure 2: Schematic of the basic workflow of NuMagSANS (see the main text for explanations).
  • Figure 3: Organization of the real-space input data used by NuMagSANS. ($a$) General case in which all input channels are active: nuclear SLD data (NucData), magnetic vector-field data (MagData), and an optional structural description (StructData.csv) defining the spatial arrangement of multiple objects. This setup enables simulations ranging from fully dilute ensembles (no interparticle interference) to ordered or densely packed systems that exhibit structure-factor effects. Users may either represent many individual particles or encode the entire sample in a single object. ($b$) Case with only magnetic data activated, corresponding to Listing \ref{['lst:DataActivation']}. This situation corresponds to a dilute particle system, since no structural data is specified.
  • Figure 4: Directory structure of the NuMagSANS_Output folder generated by NuMagSANS. The file NuMagSANSlog.txt acts as a metadata record of all program steps and the user-defined settings specified in NuMagSANSInput.conf. Depending on how many parameter sets were requested (e.g., applied field values), the output contains several subdirectories SANS_i. Each SANS_i directory includes the two-dimensional SANS cross section (SANS2D.csv); the azimuthally averaged intensity $I(q)$ according to equation \ref{['eq:iqazi']} (SANS1D.csv); the two-dimensional real-space correlation function $C(\rho,\alpha)$ from equation \ref{['eq:crav2d']} (Corr2D.csv); and the one-dimensional correlation and pair-distance distribution functions $c(r)$ and $p(r)$, defined in equations \ref{['eq:crrad']} and \ref{['eq:prrad']} (Corr1D.csv). Furthermore, each directory may contain an AngularSpectrum folder, which stores the modal sine and cosine intensities $I_{k}^{\mathrm{s,c}}(q)$ computed from equation \ref{['eq:CosineSinceIntensities']}, and the corresponding normalized modal amplitudes $A_{k}^{\mathrm{s,c}}$ defined in equation \ref{['eq:ModalAmplitudes']}.
  • Figure 5: Magnetic SANS from a uniformly magnetized nanoparticle. ($a$) Three-dimensional visualization of a spherical nanoparticle with a spatially uniform magnetization pointing along the $z$ direction, cf. equation \ref{['eq:UniformMagnetizationVectorfield']}. Colors indicate the $m_z$ component. ($b$) Magnetization profile along the $x$ axis through the particle center, showing the expected constant values $m_x = 0$, $m_y = 0$, and $m_z = 1$. ($c$) Azimuthally averaged SANS cross sections for the same particle (log-log scale): nuclear scattering $I_{\mathrm{N}}(q)$, unpolarized magnetic scattering $I_{\mathrm{M}}(q)$, and spin-flip scattering $I_{\mathrm{sf}}(q)$, cf. equation \ref{['eq:iqazi']}. The curves exhibit the characteristic form-factor oscillations of a homogeneous sphere. ($d$) Two-dimensional spin-flip SANS cross section $d\Sigma_{\mathrm{sf}}/d\Omega(q_y,q_z)$, cf. equation \ref{['eq:sfdef']}. The intensity shows the expected $\sin^2\theta \cos^2\theta$ angular dependence for a uniform magnetization aligned perpendicular to the neutron-beam direction (here: along the $z$ axis, with the beam along $x$), producing the characteristic four-fold symmetry of the spin-flip scattering pattern.
  • ...and 5 more figures