File:Reciprocal monoclinic lattice.png
Reciprocal_monoclinic_lattice.png (516 × 318 píxels, mida del fitxer: 126 Ko, tipus MIME: image/png)
Llegendes
Resum
[modifica]DescripcióReciprocal monoclinic lattice.png |
English: The Fourier transform of a monoclinic lattice with real-space vectors a = (1, 0, 0), b = (0, 1, 0), c = (0.5, 0, 0.8). (These vectors are arbitrary.) A 12×12×12 lattice of delta functions was used. The reciprocal lattice vectors are marked on in black. |
Data | |
Font | Treball propi |
Autor | GKFX |
Generating code
[modifica]Data points for this file were created with the following code:
#include <complex.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
typedef struct {
double x, y, z;
} vector;
static inline vector mult_sv(double scalar, vector vec) {
vector r = { scalar * vec.x, scalar * vec.y, scalar * vec.z };
return r;
}
static inline vector add_vvv(vector v1, vector v2, vector v3) {
vector r = {
v1.x + v2.x + v3.x,
v1.y + v2.y + v3.y,
v1.z + v2.z + v3.z };
return r;
}
static inline double dot_vv(vector v1, vector v2) {
return v1.x*v2.x + v1.y*v2.y + v1.z*v2.z;
}
static inline int cube(int n) { return n*n*n; }
vector a = {1.0, 0.0, 0.0};
vector b = {0.0, 1.0, 0.0};
vector c = {0.5, 0.0, 0.8};
double meshStepLen = 10.0/64.0;
int nPerSide = 12;
int meshSideN = 100;
/*
* The Fourier transform of δ(x - a, y - b, z - c) is
* exp(i(aX + bY + cZ))
* --------------------
* (2√2)(√π)³
* using Mathematica's default definition of FT.
*/
double complex FTDD(vector realDDPos, vector reciprPos) {
return cexp(I * dot_vv(realDDPos, reciprPos)) /
(M_SQRT2 * M_2_SQRTPI * M_PI * M_PI);
}
int main() {
// Make progress bar work.
setvbuf (stdout, NULL, _IONBF, BUFSIZ);
vector *directLattice = (vector*) malloc(cube(nPerSide)*sizeof(vector));
{
vector *directLatticeTmp = directLattice;
for (int i = 0; i < nPerSide; i++) {
for (int j = 0; j < nPerSide; j++) {
for (int k = 0; k < nPerSide; k++) {
directLatticeTmp[0] = add_vvv(mult_sv(i, a), mult_sv(j, b), mult_sv(k, c));
directLatticeTmp++;
}
}
}
}
double complex *reciprocalLattice = (double complex*) malloc(cube(meshSideN)*sizeof(double complex));
for (int i = 0; i < cube(meshSideN); i++) {
reciprocalLattice[i] = 0.0;
}
{
double complex *reciprocalLatticeTmp = reciprocalLattice;
for (int i = 0; i < meshSideN; i++) {
putchar('.');
for (int j = 0; j < meshSideN; j++) {
for (int k = 0; k < meshSideN; k++) {
vector imagPoint = { i*meshStepLen, j*meshStepLen, k*meshStepLen };
for (int l = 0; l < cube(nPerSide); l++) {
reciprocalLatticeTmp[0] += FTDD(directLattice[l], imagPoint);
}
reciprocalLatticeTmp++;
}
}
}
}
printf(" Created complex lattice\n");
double *magData = (double*) malloc(cube(meshSideN)*sizeof(double));
for (int i = 0; i < cube(meshSideN); i++) {
magData[i] = cabs(reciprocalLattice[i]);
}
FILE *datafile = fopen("rlattice.bin", "wb");
if (!datafile) {
perror(0);
goto free_rlattice;
}
fwrite(magData, sizeof(double)*cube(meshSideN), 1, datafile);
fclose(datafile);
printf("\nDone.\n");
free_rlattice:
free(reciprocalLattice);
free(directLattice);
return 0;
}
It was then plotted in Mathematica.
Llicència
[modifica]L'ús d'aquest fitxer és regulat sota les condicions de Creative Commons de CC0 1.0 lliurament al domini públic universal. | |
La persona que ha associat un treball amb aquest document ha dedicat l'obra domini públic, renunciant en tot el món a tots els seus drets de d'autor i a tots els drets legals relacionats que tenia en l'obra, en la mesura permesa per la llei. Podeu copiar, modificar, distribuir i modificar l'obra, fins i tot amb fins comercials, tot sense demanar permís.
http://creativecommons.org/publicdomain/zero/1.0/deed.enCC0Creative Commons Zero, Public Domain Dedicationfalsefalse |
Historial del fitxer
Cliqueu una data/hora per veure el fitxer tal com era aleshores.
Data/hora | Miniatura | Dimensions | Usuari/a | Comentari | |
---|---|---|---|---|---|
actual | 23:11, 31 oct 2019 | 516 × 318 (126 Ko) | GKFX (discussió | contribucions) | {{Information |description ={{en|1=The Fourier transform of a monoclinic lattice with real-space vectors '''a''' = (1, 0, 0), '''b''' = (0, 1, 0), '''c''' = (0.5, 0, 0.8). (These vectors are arbitrary.) A 12×12×12 lattice of delta functions was used.}} |date =2019-10-31 |source ={{own}} |author =User:GKFX }} Category:Reciprocal lattice Category:X-ray diffraction |
No podeu sobreescriure aquest fitxer.
Ús del fitxer
No hi ha pàgines que utilitzin aquest fitxer.
Ús global del fitxer
Utilització d'aquest fitxer en altres wikis:
- Utilització a ar.wikipedia.org
- Utilització a ca.wikipedia.org
- Utilització a en.wikipedia.org
- Utilització a fa.wikipedia.org
- Utilització a tr.wikipedia.org
- Utilització a uk.wikipedia.org
Metadades
Aquest fitxer conté informació addicional, probablement afegida per la càmera digital o l'escàner utilitzat per a crear-lo o digitalitzar-lo. Si s'ha modificat posteriorment, alguns detalls poden no reflectir les dades reals del fitxer modificat.
Resolució horitzontal | 28,35 ppc |
---|---|
Resolució vertical | 28,35 ppc |
Programari utilitzat | |
Dia i hora de digitalització |
|