Skip to content

Commit

Permalink
Updated based on Editor comments in during review process: openjourna…
Browse files Browse the repository at this point in the history
  • Loading branch information
FrederikLizakJohansen authored Feb 20, 2024
1 parent c028dfd commit 4ae06f1
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion paper/paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ I(Q) = \sum_{\nu=1}^{N} \sum_{\mu=1}^{N} b_{\nu} b_{\mu} \frac{\sin(Qr_{\nu\mu})
In this equation $Q$ is the momentum transfer of the scattered radiation, $N$ is the number of atoms in the structure, and $r_{\nu\mu}$ is the distance between atoms $\nu$ and $\mu$. For X-ray radiation, the atomic form factor, $b$, depends strongly on $Q$ and is usually denoted as $f(Q)$, but for neutrons, $b$ is independent of $Q$ and referred to as the scattering length.
The Debye scattering equation can be used to compute the scattering pattern of any atomic structure and is commonly used to study both crystalline and non-crystalline materials with a range of scattering techniques like powder diffraction (PD), total scattering (TS) with pair distribution function (PDF) analysis, and small-angle scattering (SAS) [@scardi:2016]. Although the Debye scattering equation is extremely versatile, the computation of the double sum, which scales $O(N^{2})$, has limited the practical use of the equation.

With the advancement in computer hardware [@schaller1997moore], analysis of larger structures is now feasible using the Debye scattering equation. Modern central processing units (CPUs), ranging from tens to hundreds of cores offer an opportunity to parallelise computations, significantly enhancing compute efficiency. The same goes for graphics processing units (GPUs), which are designed with multiple cores acting as individual accelerated processing units that can work on different tasks simultaneously. In contrast, CPUs usually have fewer cores optimised for more general-purpose computing. This means that a GPU can execute multiple simple instructions in parallel, while a CPU might handle fewer parallel tasks [@garland2008parallel]. Therefore, GPUs are better suited for calculations such as the Debye scattering equation, where many computations can be performed simultaneously. Taking advantage of such GPU acceleration could yield computational speeds that surpass those of even the most advanced multi-core CPUs; by orders of magnitude. We introduce a GPU-accelerated open-source Python package, named `DebyeCalculator`, for rapid calculation of the Debye scattering equation from chemical structures represented as .xyz or .cif files. The xyz-format is commonly used in materials chemistry for the description of discrete particles and simply consists of a list of atomic identities and their respective Cartesian coordinates (x, y, and z). `DebyeCalculator` can take a crystallographic information file (CIF) and a user-defined spherical radius as input to generate an .xyz file from which a scattering pattern is calculated. We further calculate the PDF as described by Egami and Billinge [@egami2003underneath]. We show that our software can simulate PD, TS, SAS, and PDF data orders of magnitudes faster than DiffPy-CMI [@juhas2015complex]. `DebyeCalculator` is an open-source project that is readily available through [GitHub](https://github.com/FrederikLizakJohansen/DebyeCalculator) and [PyPI](https://pypi.org/project/DebyeCalculator/).
With the advancement in computer hardware [@schaller1997moore], analysis of larger structures is now feasible using the Debye scattering equation. Modern central processing units (CPUs), ranging from tens to hundreds of cores offer an opportunity to parallelise computations, significantly enhancing compute efficiency. The same goes for graphics processing units (GPUs), which are designed with multiple cores acting as individual accelerated processing units that can work on different tasks simultaneously. In contrast, CPUs usually have fewer cores optimised for more general-purpose computing. This means that a GPU can execute multiple simple instructions in parallel, while a CPU might handle fewer parallel tasks [@garland2008parallel]. Therefore, GPUs are better suited for calculations such as the Debye scattering equation, where many computations can be performed simultaneously. Taking advantage of such GPU acceleration could yield computational speeds that surpass those of even the most advanced multi-core CPUs; by orders of magnitude. We introduce a GPU-accelerated open-source Python package, named `DebyeCalculator`, for rapid calculation of the Debye scattering equation from chemical structures represented as `.xyz` or `.cif` files. The xyz-format is commonly used in materials chemistry for the description of discrete particles and simply consists of a list of atomic identities and their respective Cartesian coordinates (x, y, and z). `DebyeCalculator` can take a crystallographic information file (CIF) and a user-defined spherical radius as input to generate an `.xyz` file from which a scattering pattern is calculated. We further calculate the PDF as described by Egami and Billinge [@egami2003underneath]. We show that our software can simulate PD, TS, SAS, and PDF data orders of magnitudes faster than DiffPy-CMI [@juhas2015complex]. `DebyeCalculator` is an open-source project that is readily available through [GitHub](https://github.com/FrederikLizakJohansen/DebyeCalculator) and [PyPI](https://pypi.org/project/DebyeCalculator/).

Here, we present a high-level overview of the `DebyeCalculator` class. The GitHub repository provides more details as well as annotated source code.
```plaintext
Expand Down

0 comments on commit 4ae06f1

Please sign in to comment.