Cálculo rápido de patrones de dispersión utilizando algoritmos de funciones hipergeométricas
HogarHogar > Blog > Cálculo rápido de patrones de dispersión utilizando algoritmos de funciones hipergeométricas

Cálculo rápido de patrones de dispersión utilizando algoritmos de funciones hipergeométricas

Jun 11, 2024

Scientific Reports volumen 13, número de artículo: 780 (2023) Citar este artículo

1588 Accesos

3 altmétrico

Detalles de métricas

La dispersión de luz, rayos X, electrones o neutrones por la materia se utiliza ampliamente para la caracterización estructural desde escalas de longitud atómica hasta macroscópica. Con la llegada de fuentes de haz de alto brillo y el rápido desarrollo de detectores pixelados de gran área, los patrones de dispersión ahora se adquieren a velocidades y tamaños de cuadros sin precedentes. El lento análisis de estos patrones de dispersión se ha convertido en un grave cuello de botella que retrasa el conocimiento científico. Aquí presentamos un algoritmo basado en el uso de funciones hipergeométricas que proporcionan ganancias en velocidad computacional de hasta 105 en comparación con los algoritmos de integración numérica actuales. Las funciones hipergeométricas proporcionan descripciones analíticas de formas geométricas, se pueden calcular rápidamente como series y expansiones asintóticas y se pueden implementar de manera eficiente en GPU. El algoritmo proporciona la velocidad computacional necesaria para calcular patrones de dispersión en escalas de tiempo necesarias para la retroalimentación de experimentos en tiempo real, el análisis de grandes volúmenes de datos de dispersión y para la generación de conjuntos de datos de entrenamiento para el aprendizaje automático.

La dispersión de luz, rayos X, electrones o neutrones por la materia se utiliza ampliamente para la caracterización de la estructura de materiales desde escalas de longitud atómica hasta macroscópica1,2. Para obtener información estructural a múltiples escalas es necesario que los experimentos de dispersión adquieran patrones de dispersión en grandes áreas de detector. Por lo tanto, los detectores pixelados modernos cubren áreas cada vez más grandes con un número de píxeles correspondiente que ahora supera los 107. Al mismo tiempo, las fuentes de rayos de alta intensidad como láseres, fuentes de sincrotrón de cuarta generación, fuentes de espalación de neutrones, microscopios electrónicos con corrección de aberración y fuentes de rayos X de chorro metálico se han vuelto ampliamente utilizados. disponible. La combinación de haces de alta intensidad con detectores rápidos de gran área ahora permite experimentos in situ y operativos que aclaran cambios estructurales rápidos y complejos, obteniendo así información clave sobre la evolución, la función y el rendimiento estructural de los materiales. Los materiales y dispositivos comúnmente investigados incluyen aleaciones metálicas de alto rendimiento, fibras, baterías, pilas de combustible y células solares, nanomateriales, compuestos, polímeros, coloides, membranas, así como implantes, formulaciones de administración de fármacos y tejidos biológicos.

Esta evolución ha llevado a un aumento sin precedentes en la tasa de adquisición y el volumen de datos de dispersión 1D y 2D, de modo que el tiempo necesario para el análisis de datos se ha convertido en un cuello de botella importante en el proceso para obtener información sobre los materiales. Por lo tanto, el software para la reducción y el análisis de datos dispersos se mejora continuamente mediante la introducción de canales de análisis de datos más eficientes3, mediante la aceleración de GPU4 y el uso de algoritmos de aprendizaje automático5. Sin embargo, la velocidad computacional para el análisis de datos no ha aumentado a un ritmo comparable al aumento de las tasas actuales de adquisición de datos.

El análisis a escala de múltiples longitudes de datos de dispersión de materiales generalmente procede modelando subestructuras con objetos geométricos, que están vinculados y ensamblados en objetos compuestos que están distribuidos espacialmente con un grado de orden posicional y orientativo. Los objetos geométricos comunes incluyen esferas, elipsoides, paralelepípedos, cilindros, discos, poliedros o tubos o membranas flexibles cuyas superficies pueden describirse matemáticamente en formas analíticas cerradas. Este enfoque geométrico para modelar estructuras complejas también se usa comúnmente en simulaciones por computadora y en algoritmos de gráficos de trazado de rayos.

El cálculo de los patrones de dispersión implica el cálculo de la transformada de Fourier de la estructura del objeto ensamblado y el posterior promedio de las distribuciones de tamaño, orientación y posición de los objetos que caracterizan el material real bajo investigación6. El cálculo requiere varias integraciones numéricas para calcular las transformadas de Fourier y promediar las funciones de distribución. Este cálculo requiere mucho tiempo y constituye el cuello de botella del paso de análisis de datos. Por lo tanto, ha habido una larga historia de nuevos métodos matemáticos importantes para el cálculo y análisis eficiente de funciones de dispersión7,8,9,10,11.

Para reducir el tiempo de cálculo, siempre que sea posible, los conjuntos de datos 2D se promedian azimutalmente para obtener conjuntos de datos 1D con el número \(N\) de puntos de datos reducidos a \(\sqrt{N}\). Sin embargo, para el análisis de grandes conjuntos de datos o para la generación de conjuntos de datos sintéticos para entrenar redes neuronales, los algoritmos actuales son prohibitivamente lentos12. Además, se requiere el análisis del patrón de dispersión 2D completo para una gran clase de materiales sintéticos y biológicos que consisten en estructuras anisotrópicas o películas delgadas. El cálculo rápido de los datos de dispersión para todos estos casos está más allá del alcance de los algoritmos y paquetes de software actuales.

Aquí presentamos un algoritmo que se basa en el uso de funciones hipergeométricas para calcular rápidamente datos de dispersión 1D y 2D. Las funciones hipergeométricas proporcionan una descripción matemática simple de objetos geométricos, tienen transformadas analíticas de Fourier y pueden calcularse rápidamente mediante series y expansiones asintóticas con coeficientes recursivos. En comparación con los esquemas de integración numérica, observamos ganancias en la velocidad de cálculo de > 105. El algoritmo se puede paralelizar e implementar de manera eficiente en GPU para una mayor aceleración. Esto permite el cálculo de patrones de dispersión 2D a > 1 fps incluso para los detectores de píxeles actuales de 4k.

El cálculo de los patrones de dispersión en detectores de píxeles requiere el cálculo de la intensidad de dispersión \(I({{\varvec{q}}}_{{\varvec{i}}{\varvec{j}}})\) para cada píxel. Los detectores 4k modernos tienen más de 16 millones de píxeles. La Figura 1 ilustra esquemáticamente una matriz de píxeles \((i,j)\), para cada uno de los cuales es necesario calcular la intensidad de dispersión. Matemáticamente, la posición \(({x}_{ij},{y}_{ij})\) de cada píxel corresponde a ciertos componentes del vector de dispersión \({{\varvec{q}}}_{{ \varvec{i}}{\varvec{j}}}\), que está relacionado con parámetros experimentales que incluyen la longitud de onda \(\lambda\) del haz entrante, la distancia muestra-detector \({d}_{det }\), y el ángulo \({\vartheta }_{ij}\) encerrado por el haz disperso y el haz entrante. El vector de dispersión \({{\varvec{q}}}_{{\varvec{i}}{\varvec{j}}}\) viene dado por

Matriz de píxeles con filas i y columnas j, y la intensidad de dispersión \(I({{\varvec{q}}}_{{\varvec{i}}{\varvec{j}}})\). Los detectores modernos de 4.000 píxeles tienen más de 16 millones de píxeles cuyas intensidades de dispersión deben calcularse y compararse con datos experimentales. Es un desafío computacional considerable para los algoritmos de integración numérica actuales.

La aproximación del lado derecho es la base para experimentos de dispersión de ángulo pequeño.

Para materiales que consisten o modelan con conjuntos de objetos geométricos, el cálculo de la intensidad dispersa \(I({{\varvec{q}}}_{{\varvec{i}}{\varvec{j}}})\ ) procede mediante el cálculo de su transformada de Fourier o amplitud de dispersión \(F({{\varvec{q}}}_{{\varvec{i}}{\varvec{j}}})\), el factor de forma \( P({{\varvec{q}}}_{{\varvec{i}}{\varvec{j}}})\), y el factor de red \(Z({{\varvec{q}}}_ {{\varvec{i}}{\varvec{j}}})\) describiendo su ensamblaje espacial. \(F({{\varvec{q}}}_{{\varvec{i}}{\varvec{j}}})\) se obtiene integrando la densidad del objeto, \(\rho \left( {\varvec{r}}\right)\), multiplicado por el factor de fase \({e}^{i{{\varvec{q}}}_{{\varvec{i}}{\varvec{j} }}{\varvec{r}}}\) sobre el volumen V del objeto

Posteriormente, el factor de forma \(P({{\varvec{q}}}_{{\varvec{i}}{\varvec{j}}})\) se obtiene como el cuadrado absoluto de la amplitud de dispersión \(F ({{\varvec{q}}}_{{\varvec{i}}{\varvec{j}}})\). En un tercer paso, el factor de forma se promedia sobre la distribución de tamaño \(h(R)\) y la distribución de orientación \(h(\vartheta ,\varphi )\) del conjunto de objetos.

Si los objetos se caracterizan por más de una dimensión característica, por ejemplo, para objetos anisométricos como elipsoides, cilindros o paralelepípedos, es necesario tener en cuenta la distribución de tamaño para cada dimensión adicional. Para formas de partículas comunes, el número de integraciones numéricas requeridas para calcular \(\langle P({{\varvec{q}}}_{{\varvec{i}}{\varvec{j}}})\rangle\) aumentos de esferas (1), elipsoides biaxiales (3), cubos (3), cilindros (3), discos (3), superelipsoides (4), elipsoides triaxiales (5), paralelepípedos (5), octaedros (5) a superbolas (5-7). Esto hace que los cálculos de patrones de dispersión para los modernos detectores de píxeles de gran área sean prohibitivamente lentos. Además, el ensamblaje tridimensional de estos objetos representado por el factor de red \(Z({{\varvec{q}}}_{{\varvec{i}}{\varvec{j}}})\) necesita incluirse, al menos al nivel de la aproximación de desacoplamiento13,14.

donde \(\Delta b\) es un factor de contraste específico de la muestra, \({\rho }_{N}\) la densidad del número de partículas y \(G(q)\) el factor de Debye-Waller, lo que requiere el cálculo de un gran número de posiciones del pico Bragg.

Los principales desafíos para el cálculo y análisis de grandes patrones de dispersión 2D y conjuntos de datos 1D derivados son, por lo tanto, (i) la gran cantidad de integraciones numéricas para calcular \(\langle P({{\varvec{q}}}_{{ \varvec{i}}{\varvec{j}}})\rangle\), y (ii) el gran esfuerzo computacional para calcular \(\langle Z({{\varvec{q}}}_{{\varvec {i}}{\varvec{j}}})\rangle\). El objetivo del algoritmo presentado es.

desarrollar un método para resolver analíticamente tantas integraciones como sea posible para realizar el cálculo de \(I({{\varvec{q}}}_{{\varvec{i}}{\varvec{j}}})\) en funciones simples y

para factorizar \(\langle P({{\varvec{q}}}_{{\varvec{i}}{\varvec{j}}})\rangle\) y \(\langle Z({{\varvec {q}}}_{{\varvec{i}}{\varvec{j}}})\rangle\) en q partes independientes con coeficientes \({c}_{n}\) que son iguales para cada píxel, y una parte q dependiente restante \({f}_{n}(q)\) que es simple y puede calcularse rápidamente en cada píxel multiplicando con el conjunto precalculado \({c}_{ n}\), permitiendo además una implementación eficiente en GPU y algoritmos de computación paralela.

Mostramos que el uso de funciones hipergeométricas proporciona la metodología necesaria. Las funciones hipergeométricas se utilizan generalmente para calcular funciones especiales y hasta ahora solo se han considerado para el cálculo de la transformada de Fourier de estructuras de núcleo/capa de polímeros específicas, porque proporcionaron una solución analítica cerrada para capas con perfiles de densidad algebraicos15. Aún no se ha considerado el beneficio en el cálculo y uso de sus coeficientes de series independientes de q para el cálculo rápido de patrones de dispersión.

El algoritmo correspondiente se muestra en la Fig. 2. Con los parámetros de entrada que describen los objetos y su ensamblaje espacial, se obtienen los coeficientes necesarios para los vectores espaciales recíprocos \({{\varvec{q}}}_{hkl}^{*} \) junto con los coeficientes q-independientes \({c}_{n}\) se calculan. Las intensidades de píxeles \(I({{\varvec{q}}}_{{\varvec{i}}{\varvec{j}}})\) se calculan dentro del bucle (i,j) sobre todo el detector. filas y columnas de píxeles como en la Fig. 1. Para datos 1D, el bucle i para calcular \(I({q}_{i})\) se divide en j bloques.

Algoritmo para calcular patrones de dispersión 2D. Utilizando los parámetros de entrada proporcionados, el algoritmo precalcula los coeficientes para los vectores espaciales recíprocos \({{\varvec{q}}}_{hkl}^{*}\) y los coeficientes \({c}_{n }\). Dentro del bucle \((i,j)\) para todos los píxeles, el vector de dispersión \({{\varvec{q}}}_{ij}\), y a partir de este, la amplitud de dispersión \(F({{\ varvec{q}}}_{ij})\) y el factor de forma \(P({{\varvec{q}}}_{ij})\) se calculan utilizando los coeficientes precalculados \({c}_ {norte}\). Posteriormente, los coeficientes precalculados para los vectores espaciales recíprocos se utilizan para calcular el factor de red \(Z({{\varvec{q}}}_{ij})\) para finalmente obtener la intensidad dispersa \(I({ {\varvec{q}}}_{ij})\). Dado que los cálculos en el bucle \((i,j)\) son mutuamente independientes, se pueden paralelizar eficientemente empleando GPU. El patrón de dispersión resultante se puede complicar con la función de dispersión de haz o punto (PSF) para obtener \(J({{\varvec{q}}}_{ij})\) para compararlo directamente con los experimentos. Para datos 1D, el bucle i para calcular \(I({q}_{i})\) se divide en j bloques.

El algoritmo requiere el cálculo previo de los coeficientes \({c}_{n}\) de la serie y las expansiones asintóticas, lo cual no es necesario para los esquemas de integración numérica. Encontramos que el costo computacional de los cálculos previos es muy pequeño. Está sobrecompensado por un factor de aceleración de hasta 5,105 para calcular el patrón de dispersión en el bucle (i,j) posterior.

Las funciones hipergeométricas tienen propiedades ideales para el algoritmo requerido. La integral para el cálculo de la transformada de Fourier (Ec. (2)) se puede expresar en términos de la función hipergeométrica \({}_{0}{F}_{1}\left(z\right)\) as15

con el volumen \(V={\int }_{0}^{R}\frac{2{\pi }^\frac{d}{2}{r}^{2}}{\Gamma \left[ \frac{d}{2}\right]}{r}^{d-1}dr\). R es el tamaño, r la distancia radial yd la dimensionalidad del objeto. La ecuación (5) se aplica a objetos que son rotacionalmente simétricos en tres dimensiones (\(d=3\), esferas), en dos dimensiones (\(d=2\), cilindros) y formalmente en una dimensión (\(d= 1\), plaquetas, laminillas). Al reescalar, estos casos se pueden ampliar para incluir elipsoides biaxiales y triaxiales, octaedros y superbolas (\(d=3)\), superelipsoides, pesas y lentes (\(d=2)\), cubos y paralelepípedos (\(d =\mathrm{1,2},3)\) así como cadenas de polímeros y tubos flexibles (\(d=1-2)\). Así, la ecuación. (5) se aplica a una gran clase de objetos que son relevantes para el modelado de estructuras de materiales. La integral se puede extender sobre el volumen de objetos compuestos, de modo que se pueda describir analíticamente una gran clase de estructuras de objetos más complejas.

Las funciones hipergeométricas se pueden calcular mediante series y expansiones asintóticas16,17. En la Información de respaldo (SI Sección 1) se describe una derivación detallada de las amplitudes de dispersión y los factores de forma. A continuación presentamos los dos resultados principales:

Para argumentos pequeños z, las funciones hipergeométricas se pueden calcular mediante una expansión en serie, que para el caso de \({}_{0}{F}_{1}\left(z\right)\) viene dada por

donde \({\left(u\right)}_{n}=\frac{\Gamma \left[u+n\right]}{\Gamma \left[i\right]}\) es el factorial de Pochhammer.

Para argumentos grandes \(z\), las funciones hipergeométricas se pueden calcular mediante una expansión asintótica

con \(\nu =-\frac{d+2}{2}+\frac{1}{2}\). Para obtener la precisión numérica requerida, basta con utilizar sólo los dos primeros términos del desarrollo (7). Al elegir distribuciones log-normales comunes, los promedios sobre los términos de las expansiones en serie \(\langle {z}^{2n}\rangle\) (Ec. 6) y las expansiones asintóticas \(\langle \frac{\mathrm{ cos}(z)}{{z}^{k}}\rangle\) (Ec. 7) son funciones lineales y trigonométricas simples. Estos se resumen en la Información de respaldo (SI Sección 2). La expansión en serie Ec. (6) y la expansión asintótica Ec. (7) se superponen y son la base para el cálculo de los coeficientes q-independientes \({c}_{n}\).

Aquí ilustramos la derivación de los coeficientes \({c}_{n}\) con el ejemplo simple de un objeto esférico. En la información de respaldo proporcionamos los coeficientes para una colección completa de objetos geométricos que incluyen elipsoides biaxiales, elipsoides triaxiales, cilindros con secciones transversales circulares y elípticas, discos, cubos, paralelepípedos, superbolas, superelipsoides, mancuernas, lentes y polímeros de volumen excluidos. cadenas (SI Sección 4) para una amplia gama de aplicaciones.

Para esferas (\(d=3\)), el factor de forma se obtiene de \(P(q)={F}^{2}(q)\) como

En la información de respaldo (Ec. S.1.3.2) mostramos que para todas las dimensiones d la suma doble se puede convertir en una suma única, lo que acelera significativamente el cálculo.

El promedio de la distribución de tamaños, caracterizado por un parámetro de polidispersidad z, produce la serie

Los coeficientes \({c}_{n}\) se pueden calcular eficientemente mediante relaciones recursivas para las potencias, factoriales, funciones gamma, factoriales de Pochhammer y coeficientes binomiales, como se resume en la Información de respaldo (SI Sección 10). Debido a las relaciones de recursividad, el cálculo de los coeficientes es rápido, se puede codificar con unas pocas líneas de código fuente y sin la necesidad de calcular funciones especiales como las funciones de Bessel y Gamma o los factoriales de Pochhammer.

La expansión en serie (Ec. (6)) converge para valores de \(qR<1-10\) (Régimen I), dependiendo de la polidispersidad z. Para \(qR>1\) (Régimen II) usamos la expansión asintótica (Ec. (7)) para esferas (\(d=3\)) que es

Los promedios de las funciones trigonométricas se dan en términos de funciones coseno y arctan simples y se resumen en la Información de respaldo (SI Sección 2).

Para \(qR\gg 1\) (Régimen III) solo necesitamos usar el término coseno principal de la expansión asintótica para derivar la parte no oscilante de la asíntota, que es idéntica a la de Porod-\({q}^ {-4}\)-asíntota

Estos tres regímenes también se indican en la descripción esquemática del algoritmo (RI, RII, RIII) en la Fig. 2.

La consideración de distribuciones de tamaño tiene dos ventajas: (i) proporciona una descripción realista de las estructuras de los materiales, y (ii) al mismo tiempo conduce matemáticamente a asíntotas de un solo término no oscilantes del factor de forma \(P\left(q\ derecha)\) en el rango hiqh-q (régimen III), que puede representar una parte significativa de los patrones de dispersión registrados por detectores de áreas grandes. El cálculo de las asíntotas de Porod de objetos anisométricos18,19,20 rara vez se ha considerado en la literatura, pero es importante para el algoritmo y, por lo tanto, se describe en la Información de respaldo (SI Sección 5).

Los patrones de dispersión calculados en la Fig. 3 muestran la superposición perfecta de las expansiones en serie (Régimen I), las expansiones asintóticas (Régimen II) y el Régimen de Porod (Régimen III), de modo que los factores de forma se pueden calcular rápidamente en todo el rango q. . Los valores q para las transiciones I-II y II-III se pueden precalcular durante los cálculos de los coeficientes de la serie \({c}_{n}\) (consulte la Información de respaldo (SI Sección 3).

Gráficos de factores de forma calculados de objetos geométricos polidispersos para mostrar la superposición perfecta para los cálculos en los tres regímenes I, II, III para esferas ((A) R = 3 nm) y elipsoides triaxiales ((B) a = 2 nm, b = 4 nm, c = 6 nm), y superposición directa de los regímenes I y III para superelipsoides ((C) R = 3 nm, L = 5 nm, k = 3,4) y superbolas ((D) a = 2 nm, b = 2,5 nm, c = 3 nm, k = 5,5). Los dos últimos han sido elegidos para demostrar el cálculo rápido del factor de forma de objetos de formas complejas. La desviación estándar relativa de los tamaños de partículas es σ = 0,08 en todos los casos. Los tiempos de CPU se proporcionan y comparan en la Fig. 6.

Una ventaja adicional de los cálculos rápidos que utilizan series y expansiones asintóticas es su aplicación para calcular los patrones de dispersión de conjuntos orientados de objetos isométricos y anisométricos. Esto requiere un promedio orientativo, generalmente realizado mediante dos integraciones numéricas adicionales, lo cual requiere mucho tiempo y, por lo tanto, rara vez se realiza.

Para el caso orientado necesitamos especificar el eje principal L del objeto con respecto a un director D. Las partículas pueden tener un ángulo de desviación \(\delta\) con respecto al director D, con una función de distribución \(h( \delta )\). Obtenemos expresiones simples para las fases qL, que pueden implementarse directamente en las series derivadas y expansiones asintóticas para cálculos rápidos. Todos los detalles de la derivación se proporcionan en la Información de respaldo (SI Sección 7).

A modo de ilustración, consideremos el caso de un conjunto de objetos cilíndricos orientados a lo largo del eje x con un ángulo de desviación \(\delta\). Para la fase \({\varvec{q}}{\varvec{L}}\) obtenemos la expresión

donde \(\chi\) es el ángulo azimutal en un cono con ángulo de apertura \(\delta\). Para las series y las expansiones asintóticas, necesitamos el término de fase promediado que se obtiene como

con

Las integrales \({H}_{2l,2n-2l}\) deben integrarse numéricamente sobre la función de distribución orientacional \(h\left(\delta \right)\), pero son q-independientes y por lo tanto parte de los coeficientes \({c}_{n}\). La integral sobre \(\frac{3{\mathrm{cos}}^{2}\left(\delta \right)-1}{2}\) proporciona directamente el parámetro de orden de orientación S.

El término de fase se puede insertar en la expansión de la serie del factor de forma del cilindro como

Para cálculos rápidos, los coeficientes independientes de q \({a}_{n}\) y \({b}_{l,n}\) se calculan previamente, de modo que la serie se pueda evaluar rápidamente para cada píxel ( \({q}_{x},{q}_{y})\)

De manera similar, el término de fase \(\langle {\left({\varvec{q}}{\varvec{L}}\right)}^{2n}\rangle\) se puede insertar en las expansiones asintóticas en el Régimen II y III (SI Art. 7). El ejemplo de la Fig. 4 demuestra la superposición perfecta de las series y las expansiones asintóticas en el caso anisotrópico bidimensional para cilindros con orden de orientación alto (A) a bajo (F).

Patrones de dispersión 2D calculados de cilindros polidispersos orientados alineados paralelos al eje x con una distribución orientativa que varía entre alineación uniforme con parámetro de orden S = 1,0 (A), S = 0,96 (B), S = 0,83 (C), S = 0,58 (D), S = 0,15 (E) a una distribución orientacional isotrópica con S = 0 (F) usando las ecuaciones. (14-16).

Se pueden derivar expresiones similares para distribuciones orientacionales uniaxiales para discos, paralelepípedos, elipsoides biaxiales y triaxiales y se proporcionan en la Información de respaldo (SI Sección 7).

La mayoría de los materiales sintéticos y biológicos consisten en partículas u objetos que se ensamblan con distintos grados de orden. Por tanto, es importante incluir cálculos cristalográficos en el algoritmo. Mostraremos que también estas contribuciones se pueden factorizar en una parte q-independiente que se puede precalcular y proporcionar al bucle (i,j), donde se multiplica por una parte q-dependiente. Para conjuntos 1D, 2D y 3D, los cálculos requieren evaluar sumas simples, dobles o triples sobre todos los índices de Miller distintos de cero (hkl), de modo que los esquemas de cálculo previo son muy efectivos.

Para los cálculos, necesitamos especificar la dirección (uvw) dentro de la celda unitaria, que es paralela a la dirección del haz de la sonda, es decir,\({{\varvec{r}}}_{{\varvec{u}}{ \varvec{v}}{\varvec{w}}}\boldsymbol{ }||\boldsymbol{ }{\varvec{n}}\). La celda unitaria está definida por las tres longitudes de los bordes y los ángulos cerrados (a,b,c; α, β, γ). Entonces el vector dirección viene dado como \({{\varvec{r}}}_{{\varvec{u}}{\varvec{v}}{\varvec{w}}}=u{{\varvec{a }}}_{{\varvec{A}}}+v{{\varvec{b}}}_{{\varvec{A}}}+w{{\varvec{c}}}_{{\varvec {A}}}\) en el sistema de coordenadas de celda unitaria \({\varvec{A}}\)21. Necesitamos transformar los vectores base de celda unitaria \({({\varvec{a}}}_{{\varvec{A}}},{{\varvec{b}}}_{{\varvec{A}} },{{\varvec{c}}}_{{\varvec{A}}})\) al sistema de coordenadas de base de laboratorio cartesiano ortonormal \({\varvec{E}}\) para obtener el conjunto de bases vectores \({({\varvec{a}}}_{{\varvec{E}}},{{\varvec{b}}}_{{\varvec{E}}},{{\varvec{c }}}_{{\varvec{E}}})\) usando una matriz de transformación E. Estos vectores base luego se rotan para alinearse con la dirección (uvw) paralela al haz de la sonda, es decir, \({{\varvec {r}}}_{{\varvec{u}}{\varvec{v}}{\varvec{w}}}\boldsymbol{ }||\boldsymbol{ }{\varvec{n}}\), usando una matriz de rotación \({\varvec{R}}\) para obtener los vectores base rotados \({({\varvec{a}}}_{{\varvec{E}}{\varvec{r}}}, {{\varvec{b}}}_{{\varvec{E}}{\varvec{r}}},{{\varvec{c}}}_{{\varvec{E}}{\varvec{r }}})\). Estos vectores se transforman posteriormente en vectores espaciales recíprocos \(({{\varvec{a}}}^{*},{{\varvec{b}}}^{*},{{\varvec{c}}} ^{*})\) usando la matriz métrica \({\varvec{G}}\). Estas tres transformaciones se pueden expresar de forma compacta como

tal que en el bucle (i,j) y las sumas (h,k,l) ​​los respectivos vectores espaciales recíprocos \({{\varvec{q}}}_{hkl}^{*}\) pueden ser calculado a partir de los vectores espaciales recíprocos precalculados como \({{\varvec{q}}}_{hkl}^{*}=h{{\varvec{a}}}^{\boldsymbol{*}}+k{{ \varvec{b}}}^{\boldsymbol{*}}+l{{\varvec{c}}}^{\boldsymbol{*}}\).

Las matrices \({\varvec{M}},\boldsymbol{ }{\varvec{R}},\boldsymbol{ }{\varvec{G}}\) se derivan y se proporcionan en la Información de respaldo (SI Sección 8). ). Con el vector \({{\varvec{q}}}_{hkl}^{*}\) y los parámetros de forma de pico predefinidos, la función de forma de pico \(L\left({\varvec{q}},{{ \varvec{q}}}_{hkl}^{*}\right)\) se puede calcular. Entonces el factor reticular de la ecuación. (4) se puede calcular sumando todos los conjuntos (hkl) de índices de Miller donde \({f}_{hkl}\ne 0\)

Para materiales macroscópicamente isotrópicos, donde se observan anillos de Debye-Scherrer (Fig. 5c), el promedio azimutal de \(Z\left({\varvec{q}}\right)\) se puede obtener en forma analítica cerrada, con q -coeficientes independientes que pueden precalcularse como se indica en la Fig. 2 y usarse para el cálculo rápido de datos 1D22.

(A – C) Patrones de dispersión 2D calculados con 4,106 píxeles (2k × 2k) para esferas (R = 14 nm, σ = 0,08) ordenadas en una red FCC (a = 35 nm) con alto orden de orientación (A), con orden de orientación intermedio (B) y con distribución de orientación isotrópica que muestra picos de Debye-Scherrer (C). El tiempo de cálculo para un patrón de dispersión es de 480 ms utilizando una tarjeta gráfica de consumo estándar (SI, Sección 10.2). (D) Patrón GISAS calculado para esferas (R = 10, σ = 0,08) ordenadas en una red BCC (a = 22 nm). Los picos se calculan asumiendo que la dirección del haz es paralela a la dirección (001), lo que da como resultado un patrón de fibra (hk0) de la red BCC, que normalmente se observa en conjuntos de nanopartículas25.

La dispersión y difracción de ángulo pequeño con incidencia rasante (GISAS, GIXD) son técnicas de dispersión que utilizan rayos X o neutrones para estudiar superficies nanoestructuradas y películas delgadas23,24. Para ampliar el algoritmo para incluir esta importante clase de experimentos de dispersión es necesario incluir los coeficientes de transmisión y reflexión de Fresnel desde la superficie de la película y las interfaces.

Como ejemplo, consideramos una película delgada que contiene un conjunto de objetos, cuya intensidad dispersada \(I({{\varvec{q}}}_{ij})\) está dada por la ecuación. (4). La intensidad dispersada registrada en un experimento GISAS se puede calcular en el marco de la aproximación de ondas nacidas distorsionadas (DWBA)23. Por lo tanto, la intensidad de dispersión GISAS se calcula como una suma de los cuatro términos DWBA que representan los eventos de dispersión/reflexión del conjunto del objeto y la interfaz película/sustrato.

donde \({{\varvec{q}}}_{n,ij}\) son los vectores de dispersión de los cuatro eventos de dispersión/reflexión, y \({T}_{i,f}\) y \ ({R}_{i,f}\) son los coeficientes de transmisión y reflexión de Fresnel, respectivamente. En la Información de respaldo (SI Sección 9) ampliamos el cálculo para incluir la dispersión especular y difusa en el plano incidente. En efecto, multiplicamos la intensidad dispersa ya calculada \(I\left({{\varvec{q}}}_{ij}\right)\) por los coeficientes de transmisión y reflexión de Fresnel, de los cuales \({T}_ {i}\) y \({R}_{i}\) son q-independientes y se pueden precalcular junto con los otros coeficientes.

Para demostrar el potencial del método, mostramos en la Fig. 5D el patrón GISAS calculado de esferas polidispersas ensambladas en una red BCC dentro de una película delgada sobre un sustrato. Como características típicas observamos el pico de Yoneda en el vector de dispersión crítico \({q}_{z,c}=0.23\) nm−1, y la reflexión difusa y especular en el plano incidente. Los picos se calculan asumiendo que la dirección del haz es paralela a la dirección (001), lo que da como resultado un patrón de fibra (hk0) de la red BCC, que normalmente se observa, por ejemplo, en conjuntos de nanopartículas25.

Para realizar evaluaciones comparativas, comparamos los tiempos de cálculo de la CPU entre el algoritmo en serie y los esquemas de integración numérica convencionales. Calculamos patrones de dispersión para las formas de partículas geométricas más comunes que se utilizan para modelar estructuras de materiales: esferas, elipsoides biaxiales, elipsoides triaxiales, cilindros, discos y cubos. Para todos los cálculos se eligió un rango q típico que comprende los regímenes de Guinier de q bajo y Porod de q alto. Se eligieron relaciones axiales moderadas de 3 a 8 para partículas anisométricas y polidispersidades moderadas de σ = 0,1 para una comparación justa de los métodos. Siempre que fue posible, las funciones trigonométricas en los integrandos de las integraciones numéricas se sustituyeron por funciones lineales no oscilatorias para ganar velocidad computacional. Todos los detalles de los cálculos se resumen en la Información de respaldo (SI Sección 11.1). Los cálculos se realizaron para un rango de puntos de datos de 50 a 105. Los números más pequeños son típicos para el análisis de conjuntos de datos 1D y los números más grandes, típicos para conjuntos de datos 2D para detectores de píxeles. Los cálculos se realizaron en un único núcleo de CPU.

La Figura 6 muestra los tiempos de CPU en función del número de puntos de datos para diferentes objetos geométricos y los dos esquemas de cálculo. Descubrimos que incluso en el caso de partículas esféricas simples, para un pequeño número de puntos de datos, las expansiones de las series son más rápidas en un factor de 4 y, por lo tanto, ya tienen un beneficio computacional. Para una gran cantidad de puntos de datos, por ejemplo, para \(N=\) \({10}^{5}\) en la región asintótica \(t\sim {N}^{1}\), las expansiones en serie porque las esferas son más rápidas en un factor de 40 (ver SI Sección 11). Para objetos anisométricos, el algoritmo de expansión en serie es más rápido por un factor de hasta 7,101 para elipsoides biaxiales, 3,102 para elipsoides triaxiales, 2,105 para cilindros y 5,105 para discos y cubos. Para los objetos más comunes, el algoritmo en serie permite calcular 106 puntos de datos en <500 ms en una CPU de un solo núcleo. Sólo para el caso de esferas monodispersas con una expresión analítica simple del factor de forma, el algoritmo de la serie es ligeramente más lento, ca. 20% (SI Art. 11.3). Las expansiones e integraciones numéricas se realizan con una precisión relativa de 10−4. En la Información de respaldo (SI Sección 11.2) mostramos que las expansiones convergen rápidamente, de modo que alcanzar precisiones más altas requiere aumentos mucho menores en el tiempo de CPU en comparación con las integraciones numéricas.

Tiempo de CPU para calcular un patrón de dispersión de N puntos de datos mediante integración numérica (símbolos abiertos) y utilizando el algoritmo de serie (símbolos completos). Consideramos los casos de esferas polidispersas (círculo relleno, círculo abierto), elipsoides biaxiales (triángulo relleno del lado derecho, triángulo abierto del lado derecho), elipsoides triaxiales (triángulo relleno, triángulo abierto), cilindros (triángulo relleno del lado inferior, triángulo abierto del lado inferior). ), discos (diamante relleno, diamante abierto), cubos (cuadrado relleno, cuadrado abierto) y superelipsoides (hexágono abierto, hexágono relleno). A modo de comparación, se proporcionan también los tiempos de CPU para los casos analíticos simples de esferas monodispersas (estrella llena, estrella abierta). Para las expansiones en serie, observamos una meseta de N bajo debido al tiempo de cálculo previo para los coeficientes independientes de q. Este coste computacional se compensa en exceso con el cálculo posterior, mucho más rápido, de los patrones de dispersión. Para una gran cantidad de puntos de datos, observamos una ganancia de hasta 5,105. Para los objetos geométricos más comunes, el cálculo de un millón de puntos de datos en < 500 ms es posible en una sola CPU de un solo núcleo.

También consideramos el caso más desafiante de las superbolas polidispersas. Para superbolas con aristas de igual longitud (\(a=b=c\)), donde son necesarias cinco integraciones numéricas, tiempos de CPU de ca. 5 minutos. para 400 puntos de datos se han informado con rutinas de integración numérica optimizadas26. Consideramos el caso más general de superbolas con bordes desiguales (\(a\ne b\ne c\)) como se muestra en la Fig. 6. Aquí, el cálculo previo de los coeficientes es el paso limitante de la velocidad que requiere 2,5 s. que ya es > 100 veces más rápido en comparación con la integración numérica. Si extrapolamos el tiempo de CPU informado a 105 puntos de datos, la ganancia en velocidad computacional es > 107.

El uso de la centrosimetría de \(I({{\varvec{q}}}_{ij})\) (ley de Friedel) y otras simetrías de partículas y redes conduce a una reducción adicional de al menos el doble de la CPU. -tiempo, lo que permite el cálculo de > 1 fps de patrones de dispersión de detectores de píxeles de 4k de 16 millones de puntos de datos con CPU de un solo núcleo, como se explica en la sección introductoria.

El algoritmo se puede implementar eficientemente en GPU, porque los cálculos de las intensidades de dispersión de píxeles \(I({{\varvec{q}}}_{ij})\) son mutuamente independientes. Demostramos que las tarjetas gráficas de consumo ya simples pueden acelerar el algoritmo en un factor adicional de > 50, lo que permite el ajuste 1D y 2D en menos de un segundo de datos de conjuntos de detectores muy grandes, como se demuestra en la Información de respaldo (SI Sección 12). Como aplicaciones, demostramos en la información de respaldo la simulación de grandes patrones 2D de rayos X de ángulo pequeño (SAXS), neutrones de ángulo pequeño (SANS) y dispersión de luz de ángulo pequeño, así como patrones de difracción de electrones de área seleccionada (SAED) con Detectores de 2k o 4k (SI Sec. 12). Además, mostramos el ajuste 2D acelerado por GPU y ejemplos de conjuntos de datos simulados para el entrenamiento de redes neuronales.

Demostramos un algoritmo basado en el uso de funciones hipergeométricas que calcula datos de dispersión 1D y patrones de dispersión 2D de conjuntos de objetos geométricos hasta un factor de > 105 más rápido que los esquemas de integración numérica convencionales. Esta aceleración es posible porque las funciones hipergeométricas se pueden calcular de manera eficiente mediante series y expansiones asintóticas, los coeficientes de expansión se pueden calcular rápidamente mediante relaciones de recursividad y son q-independientes. Por lo tanto, son los mismos para cada píxel y pueden calcularse previamente y proporcionarse al bucle de cálculo de píxeles (i,j) como se describe en el algoritmo de la Fig. 2. En rangos q grandes, sólo uno o dos términos del La expansión es necesaria para calcular las intensidades de dispersión con suficiente precisión. El algoritmo permite el cálculo rápido de patrones de dispersión de objetos simples y complejos con distribuciones espaciales y orientacionales definidas. Dado que los cálculos de las intensidades de dispersión de píxeles son mutuamente independientes, el cálculo se puede implementar de manera eficiente en algoritmos paralelos para GPU para lograr una aceleración significativa adicional. El algoritmo permite un cálculo rápido de patrones de dispersión 2D de área grande y datos de dispersión 1D, lo que permite un ajuste de alto rendimiento de grandes conjuntos de datos 1D y 2D, análisis de datos sobre la marcha para dirigir experimentos de dispersión y entrenamiento rápido de redes neuronales. . De este modo, ayuda a abordar el cuello de botella del análisis de datos para una aplicación generalizada en el análisis estructural de materiales sintéticos y biológicos mediante experimentos de dispersión y difracción de rayos X, neutrones, luz y electrones. El importante ahorro en tiempo de cálculo de factores de 105 a 107 reduce además considerablemente el consumo de energía del ordenador, relevante para la TI ecológica.

Todos los métodos matemáticos y computacionales se describen en la Información de respaldo. Proporcionamos código fuente de Mathematica y C++ para verificación y descripción de los métodos. Además, proporcionamos el código fuente completo de C++ y un software independiente ejecutable compilado. En https://github.com/neutron-simlab/CrystalScatter.

Todo el código y los resultados presentados en este documento están disponibles de código abierto y de acceso abierto en el repositorio de GitHub asociado en https://github.com/neutron-simlab/CrystalScatter.

Hamley, IW Dispersión de ángulo pequeño: teoría, instrumentación, datos y aplicaciones (Wiley, 2021).

Reservar Google Académico

Jeffries, M. y col. Dispersión de neutrones y rayos X de ángulo pequeño. Nat. Rev. Métodos Prim. https://doi.org/10.1038/s43586-021-00064-9 (2021).

Artículo de Google Scholar

Hura, GL et al. Análisis estructurales de soluciones robustas y de alto rendimiento mediante dispersión de rayos X de ángulo pequeño (SAXS). Nat. Métodos 6, 606 (2009).

Artículo CAS Google Scholar

Página web del software SasView: http://www.sasview.org/.

Do, C., Chen, W.-R. & Lee, S. Análisis de datos de dispersión de ángulos pequeños asistido por métodos de aprendizaje automático. Señora Adv. https://doi.org/10.1557/adv.2020.130 (2020).

Artículo de Google Scholar

Feigin, LA y Svergun, Análisis de estructura DI mediante rayos X de ángulo pequeño y dispersión de neutrones (Plenum Press, 1987).

Reservar Google Académico

Glatter, O. Un nuevo método para la evaluación de datos de dispersión de ángulo pequeño. J. Aplica. Cristal. 10, 415–421 (1977).

Artículo de Google Scholar

Ruland, W. La evaluación de la dispersión de ángulo pequeño de sistemas bifásicos laminares anisotrópicos mediante funciones de distribución de interfaz. Polímero coloide. Ciencia. 256, 932–936 (1978).

Artículo de Google Scholar

Jemian, PR & Allen, AJ El efecto de la función de forma en el análisis de dispersión de ángulo pequeño mediante el método de máxima entropía. J. Aplica. Cristal. 27, 693–702 (1994).

Artículo CAS Google Scholar

Pedersen, JS Análisis de datos de dispersión de ángulo pequeño de coloides y soluciones de polímeros: modelado y ajuste de mínimos cuadrados. Adv. Ciencia de la interfaz coloidal. 70, 171–210 (1997).

Artículo CAS Google Scholar

Li, T., Senesi, AJ y Lee, B. Dispersión de rayos X de ángulo pequeño para la investigación de nanopartículas. Química. Rev. 116, 11128–11180 (2016).

Artículo CAS Google Scholar

Archibald, RK y cols. Clasificación y análisis de datos de dispersión de ángulo pequeño utilizando técnicas de aprendizaje automático de vecinos más cercanos ponderados. J. Aplica. Cristal. 53, 326–334 (2020).

Artículo CAS Google Scholar

Kotlarchyk, M. y Chen, S.-H. Análisis de espectros de dispersión de neutrones de ángulo pequeño de coloides que interactúan polidispersos. J. química. Física. 79, 2461–2469 (1983).

Artículo ADS CAS Google Scholar

Förster, S. y col. Curvas de dispersión de materiales mesoscópicos ordenados. J. Física. Química. B 109, 1347-1360 (2005).

Artículo de Google Scholar

Förster, S. & Burger, C. Funciones de dispersión de estructuras poliméricas de núcleo-cubierta y cadenas de volumen excluidas. Macromoléculas 31, 879–891 (1998).

ADS del artículo Google Scholar

Braaksma, BLJ Expansiones asintóticas y continuaciones analíticas para una clase de integrales de Barnes. Compos. Matemáticas. 15, 239–341 (1962).

MATEMÁTICAS Google Scholar

Biblioteca digital NIST de funciones matemáticas: https://dlmf.nist.gov/15

Porod, G. Dispersión de rayos X de ángulo pequeño de sistemas coloides compactos. Coloide Z. 124, 83-114 (1951).

Artículo CAS Google Scholar

Bose, S. y Bragg, RH Dispersión de rayos X de ángulo pequeño desde huecos elipsoidales orientados en grafito pirolítico. J. Aplica. Física. 49, 2816 (1978).

Artículo de Google Scholar

Hamzeh, FM y Bragg, RH Dispersión de rayos X de ángulo pequeño de grupos de elipsoides de revolución de baja concentración orientados no aleatoriamente. J. Aplica. Física. 45, 3189 (1974).

ADS del artículo Google Scholar

Giacovazzo, C. Fundamentos de Cristalografía (IUCr, 2011).

Reservar Google Académico

Förster, S. y col. Cálculo de patrones de dispersión de materiales ordenados a nanoescala y mesoescala. Adv. Ciencia de la interfaz coloidal. 163, 53–83 (2011).

Artículo de Google Scholar

Sinha, SK, Sirota, EB, Garoff, S. & Stanley, HB Dispersión de rayos X y neutrones desde superficies rugosas. Física. Rev. B 38, 2297 (1988).

Artículo ADS CAS Google Scholar

Hexemer, A. & Müller-Buschbaum, P. Técnicas avanzadas de incidencia rasante para el análisis moderno de materiales blandos. IUCrJ 2, 106–125 (2015).

Artículo CAS Google Scholar

Weidman, MC, Smilgies, D.-M. & Tisdale, WA Cinética del autoensamblaje de superredes de nanocristales medida mediante dispersión de rayos X in situ. Nat. Madre. 15, 775 (2016).

Artículo ADS CAS Google Scholar

Dresen, D. y col. Ni esfera ni cubo: análisis de la forma de las partículas mediante dispersión de ángulo pequeño y el modelo de superbola. J. Física. Química. C 125, 23356–23363 (2021).

Artículo CAS Google Scholar

Descargar referencias

Reconocemos la cortesía de utilizar conjuntos de datos experimentales proporcionados por Baohu Wu, Sascha Ehlert, Artem Feoktystov, Lisa Fruhner, Artur Feld, Agnes Weimer, Stephan Hauschild y Jörg Stellbrink.

Financiamiento de Acceso Abierto habilitado y organizado por Projekt DEAL.

Centro Jülich para la ciencia de neutrones (JCNS-1/IBI-8), Forschungszentrum Jülich, 52425, Jülich, Alemania

Michael Wagener y Stephan Forster

Instituto de Química Física, Universidad RWTH Aachen, 52074, Aquisgrán, Alemania

Stephan Forster

También puedes buscar este autor en PubMed Google Scholar.

También puedes buscar este autor en PubMed Google Scholar.

SF derivó el concepto matemático, desarrolló el algoritmo y escribió el manuscrito. MW codificó el algoritmo para CPU y GPU.

Correspondencia a Stephan Förster.

Los autores declaran no tener conflictos de intereses.

Springer Nature se mantiene neutral con respecto a reclamos jurisdiccionales en mapas publicados y afiliaciones institucionales.

Vídeo complementario 1.

Acceso Abierto Este artículo está bajo una Licencia Internacional Creative Commons Attribution 4.0, que permite el uso, compartir, adaptación, distribución y reproducción en cualquier medio o formato, siempre y cuando se dé el crédito apropiado a los autores originales y a la fuente. proporcione un enlace a la licencia Creative Commons e indique si se realizaron cambios. Las imágenes u otro material de terceros en este artículo están incluidos en la licencia Creative Commons del artículo, a menos que se indique lo contrario en una línea de crédito al material. Si el material no está incluido en la licencia Creative Commons del artículo y su uso previsto no está permitido por la normativa legal o excede el uso permitido, deberá obtener permiso directamente del titular de los derechos de autor. Para ver una copia de esta licencia, visite http://creativecommons.org/licenses/by/4.0/.

Reimpresiones y permisos

Wagener, M., Förster, S. Cálculo rápido de patrones de dispersión utilizando algoritmos de funciones hipergeométricas. Representante científico 13, 780 (2023). https://doi.org/10.1038/s41598-023-27558-8

Descargar cita

Recibido: 22 de junio de 2022

Aceptado: 04 de enero de 2023

Publicado: 15 de enero de 2023

DOI: https://doi.org/10.1038/s41598-023-27558-8

Cualquier persona con la que comparta el siguiente enlace podrá leer este contenido:

Lo sentimos, actualmente no hay un enlace para compartir disponible para este artículo.

Proporcionado por la iniciativa de intercambio de contenidos Springer Nature SharedIt

Al enviar un comentario, acepta cumplir con nuestros Términos y pautas de la comunidad. Si encuentra algo abusivo o que no cumple con nuestros términos o pautas, márquelo como inapropiado.