What This Page Is
This page collects supplementary material: backend provenance, scattering-table families, reproducibility notes, and citation-oriented context.
Backend Stack
- WebGPU-FFT — Maksim Eremenko's WebGPU FFT library used by the WebGPU execution path.
- WebGPU-NUFFT — type-3 NUFFT implementation and WebGPU bridge. In the UI this appears as
Type-3 + webgpufft (WebGPU),type3NufftCpu (CPU FFT), andtype3NufftCpuDirect. - Plotly.js — interactive 3D rendering for slice-plane and isosurface views.
Precision Note
The bundled WebGPU FFT/NUFFT stack and the CPU FFT path use single-precision (fp32) arithmetic. They do not provide fp64 execution. For demanding cases this can introduce small numerical differences, rounding-sensitive behavior, or precision-related artifacts.
- large reciprocal-space grids
- strong dynamic range between Bragg-like and diffuse intensity
- subtraction- or cancellation-sensitive features
- backend-to-backend comparisons
For important scientific checks, compare against type3NufftCpuDirect and verify that the qualitative interpretation is stable with respect to backend and grid settings.
Scattering Table Families
- Neutron: embedded neutron scattering lengths with fallback value
10.0for unknown elements. - X-ray: Waasmaier, Lobato, Peng 0.4, Doyle, Weickenmeier, Kirkland.
- Electron: Lobato, Peng 0.4, Doyle, Weickenmeier, Kirkland, plus ion-mode Peng support.
The coefficient database records its generated source paths as helper_info/xray_scattering_factor_constants.f90 and helper_info/scattering_coefficients.f90.
When publishing, retain the exact family name shown in the UI in figure captions and methods text. Formal references for each family are collected in Bibliography.
Reproducibility Notes
For scientific comparison or publication, record:
- backend
- scattering type
- exact table/model name
- reciprocal-space grid range and step
- normalization and slice-mode choices relevant to the figure
Advanced Scattering Modes
Grouped exact (neutron)
Grouped exact evaluates grouped element contributions explicitly instead of using the lightweight fast neutron path. It is more explicit about per-element weighting and can be slower than Fast (neutron).
Ion (Peng)
Ion (Peng) is the electron-ion mode. It uses Peng ion coefficients together with the Ion valence mapping entered in the UI, for example Fe:2,O:-2. If an element/valence pair is unsupported by the embedded coefficient set, the calculator reports that explicitly.