Az egyik (50 %-os véletlen ötvözet) szimuláció forráskódja: verlet-crystal.ver03.phonons.c
Általános
Az egész szimulációt egy for-ciklusba foglaljuk; ez a ciklus fogja a k hullámszámot végigléptetni a beprogramozott
vonalon a reciprok térben.
Az origóban lévő atom pozícióját Δt = 1-enként mintavételezzük, és csak ezeket az értékeket másoljuk be
a Fourier-transzformálandó adatokat tároló fftdata
tömbbe. (Beégetett érték – nem a legszebb megoldás...)
Minden egyes k-pont szimulációja után az elmentett időfüggvényre meghívjuk az FFT-t, és a spektrumot (+1 üres elválasztó sort)
kiírjuk a dispersion.dat
adatfájlba.
Sakktábla mintázatú rács
A legbelső ciklus (amely az atomokon lépked végig a diff.egy. megoldása során) elejére beírjuk a
// Problem 2: sublattice: |
if ((i+j)%2) m = 14.0/12.0; else m = 1.0; |
Véletlen ötvözet
Az alábbi sort kell ugyanoda beszúrni:
// problem 3: 50-50% alloy: |
if (gsl_rng_uniform_int(rng, 2)) m = 1.0; else m = 14.0/12.0; |
Ábrázolás
A 3 szakaszból álló Γ → X → M → Γ vonal mindegyik egyenes szakaszát egy-egy futtatás számolta ki.
(Így volt könnyű beprogramozni a ciklusokat.)
Egy apró módosításra volt szükség: a hullámszám kiíratásánál (1. oszlop) hozzá kellett adni a korábbi futások által már
kiszámolt vonalszakaszok hosszait.
Ezután az eredményeket egymás után egy fájllá összemásolva ábrázolható az eredmény.
Gnuplot szkript: dispersion.gnuplot.
1. feladat: Egyszerű négyzetrács.
2. feladat: Sakktábla-mintázatű rács
Itt a rács elemi cellája tulajdonképp megváltozik, √2-szeresére nő a rácsállandó,
45 fokkal elfordul a négyzetrács, és 2-atomos lesz az elemi cella.
Az új (helyes) Brillouin-zóna Γ pontja a régi (ld.: az ábrán) Brillouin-zóna M pontjába kerül. Azaz ott látható az optikai fononág.
Az akusztikus és az optikai ágak kereszteződése épp jó helyre, az új Brillouin-zóna határára esik.
3. feladat: 50-50%-os véletlen ötvözet két különböző konfigurációja.