EVO: cvičení 6 - Simulace Isingova modelu magnetismu s využitím Metropolisova algoritmu


  1. Stáhněte si archív se zdrojovými kódy k dnešní úloze:
  2. Po rozbalení najdete v kořenovém adresáři soubor v jazyce Python, který obsahuje simulační model:
  3. Dále zde najdete dva různé skripty pro spouštění simulačního modelu:


Program cvičení

Řada reálných složitých systémů vykazuje chování, které je důsledkem emergentních jevů vycházejících z interakcí mezi elementárními částmi systému. Typicky je takový systém složen řádově (minimálně) z mnoha miliard komponent, jejichž vlastnosti na této elementární úrovni určují celkovou povahu systému. Procesy tohoto typu, pozorovatelné v přírodě, se v oblasti fyziky nejčastěji modelují pomocí různých částicových systémů, kde elementárními prvky jsou např. zrnka písku, prachové částice, molekuly, atomy nebo subatomární částice - např. elektrony nebo fotony. Ačkoliv současná věda zná dobře vlastnosti takových částic a většinou je dokáže i matematicky popsat, chování systému jako celku přímo matematicky vyjádřit nelze a to právě z důvodu enormního počtu jeho elementů a ještě mnohem většího počtu možných stavů systému. Dokonce ani nemůžeme analyticky předpovědět chování určité konkrétní instance takového systému v čase, jelikož se obvykle jedná o systémy stochastické.

Při znalosti matematického modelu příslušných částic a jejích vztahů (interakcí) však takové systémy můžeme na počítači simulovat pomocí náhoodných procesů. Takové simulace nám již dokáží poskytnout výsledky, z nichž lze usuzovat na celkové rysy systému s určitou pravděpodobností či přesností. Vykonáním velkého množství simulací pro různé instance daného systému (typicky určené v podobě vhodných počátečních podmínek) pak získáme data, která je možno zpracovat statisticky. Výsledky statistického zpracování nám umožní odkrýt neznámé vztahy a veličiny systému bez nutnosti řešit jeho celkový analytický model (jenž je stejně zatím i pomocí současných technologií prakticky neřešitelný). Aplikací statistických metod pro studium komplexních fyzikálních systémů se zabývá obor zvaný statistická fyzika.

Jedním z prostředků statistické fyziky pro simulaci přírodních procesů jsou metody Monte Carlo. Chceme-li je využít např. k simulaci vývoje určitého systému v čase, bývají aplikovány tzv. Markov Chain Monte Carlo metody (MCMC), které využívají pro přechody mezi jednotlivými stavy systému Markovovy řetězce a zkoumáním vlastností dvou následných stavů simulovaného systému volí (s určitou pravděpodobností) konkrétní stav systému pro další simulační krok. Jedná se zejména o Metropolisův algoritmus a různé techniky simulovaného žíhání. V této úloze využijeme Metropolisův algoritmus pro simulaci vývoje Isingova modelu, což je jeden z nejjednodušších přístupů umožňujících simulovat vlastnosti magnetických materiálů ve statistické fyzice.


  1. Seznamte se se základními technikami modelování feromagnetismu. Výklad k tomu poskytne v úvodu cvičení vyučující. Nahlédněte např. do následujících článků:
  2. Stáhněte si příslušný zdrojový kód, seznamte se s jeho strukturou a klíčovými funkcemi. Vyzkoušejte základní simulaci Isingova modelu pro vybrané konfigurace. Zaměřte se zejména na parametry explicitně specifikované ve skriptu 1-Ising-simul.sh a spouštěním tohoto skriptu sledujte vývoj modelu pro nastavenou konfiguraci. Experimentujte s různými hodnotami velikosti pole, interakcí a teplot. Ověřte např. chování modelu pro hodnoty --interaction -1.0, 0.0, 1.0 a --temp od 0.02 pro postupně vyšší hodnoty (až do cca 12.0). Po identifikaci a ověření nastavení pro typické případy (feromagnetický materiál, antiferomagnetický materiál a "něco mezi", vliv teploty) spusťte simulaci pro větší hodnoty --shape (např. 100 až 200 částic). Spolu s dostatečným časem výpočtu (--iters) nám větší velikost pole dokáže poskytnout přesnější výsledky, což uvidíme hlavně v úkolu č. 3. Výsledky pozorování srovnejte s teoretickými předpoklady uvedenými v literatuře.

  3. Odvození fázového diagramu energie systému v závislosti na teplotě: pro zjištění této závislosti je nutné provést více (alespoň 20) simulací Isingova modelu z náhodné počáteční konfigurace spinů, přičemž nás zajímá energie systému po ukončení každé simulace. Podle fyzikálních zákonů má systém tendenci dospět do rovnovážného stavu, vykazujícího nejnižší energii. Tato energie je však závislá na hodnotě teploty (--temp). Pro základní ověření sposťte skript 2-Ising-analysis.sh, v němž je nastavena konfigurace parametrů umožňujících relativně rychý výpočet fázového diagramu. Jeho konstrukci lze průběžně sledovat po dokoončení každého simulačního běhu (stav výpočtu je zobrazován v záhlaví okna). Naším cílem zde je odvodit fázový diagram s rozumnou přesností, která je dosažitelná pro větší rozměry pole a poskytnutím dostatečného času každé simulaci. Hodnoty k experimentování (opět si dle potřeby upravte, ale počítejte s tím, že výpočet zde může trvat i hodiny...): --shape 100 --iters 50000. Ostatní můžene ponechat beze změny. Při tomto nastavení je časová náročnost výpočtu cca 20 minut.

  4. Další úlohy - pro zájemce, možno něco z toho zpracovat v rámci cvičení, např. při čekání na dokončení výpočtu z bodu 3:


Pro vážné zájemce o tuto problematiku je možné vypsat téma DP (po dohodě s M. Bidlem, bidlom@fit.vutbr.cz; vypsání a nezávazné přihlášení tématu lze provést i v předstihu ještě v tomto ak. roce - doporučeno). Jedním z možných směrů výzkumu je např. aplikace konceptu přibližného počítání pro zefektivnění simulací se zachováním rozumné přesnosti výsledků. Předmětem by byly různé vybrané (i pokročilejší) modely statistické fyziky.