Estoy tratando de escribir un fragmento de código que calcula un patrón de difracción similar a un experimento de rayos X mediante una FFT.
Desde mi conocimiento, el patrón de difracción por punto, las partículas pueden ser calculados a partir de la siguiente fórmula:
$$ S(\mathbf{k}) = \left| \int_V d\mathbf{r}\rho(\mathbf{r})e^{-i\mathbf{k}\cdot\mathbf{r}} \right|^2 $$
que es, básicamente, el factor de estructura y $\rho(\mathbf{r})$ es la función de densidad.
Mi tiro sobre esta fue la primera discretise la fórmula anterior utilizando una caja de lado a $r_{max}$: $$ S(\mathbf{k}) = \frac{r_{max}}{M} \sum_{lmn}^M \rho_{lmn} e^{-i\frac{r_{max}}{M}\left( k_x l + k_y m +k_z n \right)} $$ Ahora, no estoy seguro de cómo discretise la wavevector y cómo esta discretización se corresponden a las motoneuronas inferiores a los índices de la FFT: $$ A_{lmn} = \sum_{ijk}^M a_{ijk} e^{-i2\pi\frac{1}{M}\left( l i + mj +nk \right)} $$
Otro detalle estoy seguro de cuál es la forma de obtener una imagen 2D correspondiente al patrón de difracción. Lo que yo, sin embargo, fue que el $\mathbf{k} = \mathbf{k}_S - \mathbf{k}_I$, donde S es la de la luz dispersa y yo por el incidente y puedo establecer $\mathbf{k}_I = (\frac{2\pi}{\lambda},0,0)$. En la aproximación, la dispersos y de incidencia de las ondas tienen la misma magnitud $\frac{2\pi}{\lambda}$, por lo que para un píxel de la pantalla (que tiene una distancia d de la muestra) con coordenadas $x,y$, tengo: $$ \mathbf{k}_S = \frac{2\pi}{\lambda} \frac{(d, x, y)}{\sqrt{d^2 + x^2 + y^2}} $$ y, en consecuencia, puedo calcular una dispersión vector de onda para cada píxel.
Como ya he mencionado que no estoy tan seguro de cómo discretise mi dispersión de vector de onda y cómo esto corresponde a la FFT de la onda-vectores, y en el último paso de encontrar la correcta onda-vectores para cada píxel. Podría tal vez me ayude a salir?