Mcgen

From Intelligent Materials and Systems Lab

mcgen on Metropolise Monte Carlo algoritmil põhinev programm polümeeriahelate juhuslike konfiguratsioonide genereerimiseks.

Mcgen-dihedral-050525.png

Keskne juurdelisatav üksus on unit, mis koosneb 1. . . N aatomist. uniti iga juurdelisatava aatomi (D joonisel 1) jaoks on vaja teada järgmisi parameetreid:

  • kaugus eelmisest aatomist ([CD]);
  • nurk kahe viimase aatomiga (BCD);
  • dihedraalnurk kolme viimase aatomiga (\phi);
  • kolme viimase aatomi koordinaadid (A, B, C).

Kaugus, nurk ja dihedraalnurk võivad olla fikseeritud, aga neid saab ka juhuslikult etteantud piirides genereerida. Üldjuhul on soovitav lasta vähemasti dihedraalnurk programmil juhuarvude põhjal genereerida.

Juurdelisatava uniti aatomite genereerimisel kontrollitakse esmalt, et genereeritud aatom ei sattuks mõnele teisele aatomile liiga lähedale või isegi kattuks sellega. Kui midagi sellist juhtub, genereeritakse kohe uued koordinaadid ja teostatakse järjekordne kontroll kuni uus aatom on piisavalt kaugel teistest aatomitest.

Kui uniti kõik aatomid on geomeetriliselt genereeritud, siis rakendub Monte Carlo meetod, mis seisneb lühidalt alljärgnevas:

1. arvutatakse saadud uue konfiguratsiooni koguenergia E;

2. saadud koguenergia lahutatakse eelmise konfiguratsiooni koguenergiast E0: \Delta E=E-E0;

3. kui uue konfiguratsiooni energia on madalam eelmise konfiguratsiooni energiast, s.t. \Delta E <= 0, siis aktsepteeritakse saadud konfiguratsioon koheselt ja see saab uue konfiguratsiooni aluseks;

4. kui saadud konfiguratsiooni energia on suurem eelmise konfiguratsiooni energiast, s.t. \Delta E > 0, siis võrreldakse Boltzmanni faktorit exp(-\Delta E/kT) (k - Botzmanni konstant, T - simulatsiooni temperatuur Kelvinites) juhusliku arvuga vahemikus 0. . . 1:

  • kui Boltzmanni faktor on suurem sellest juhuarvust, siis aktsepeeritakse uut konfiguratsiooni, aktsepteeritavuse tingimuseks on rand(0,1) <= exp(-\Delta E/kT);
  • kui Boltzmanni faktor on väiksem sellest juhuarvust, siis uut konfiguratsiooni ei aktsepteerita ja alustataks uuesti uniti genereerimist eelmise konfiguratsiooni alusel.

Et ülalkirjedatud meetodil ei leita mitte kõige madalama energiaga konfiguratsioon, vaid (esimene) lokaalne miinimum, siis teatud tingimustel võib genereerimine joosta ummikusse, s.t. isegi peale suurt proovimiste arvu ei suudeta vajalik hulk unit’eid ära genereerida. Sellise olukorra leevendamiseks rakendatakse tagasivõtmise mehhanismi, mille puhul peale fikseeritud proovide arvu hüljatakse etteantud vahemikus juhuslik arv viimaseid unit’eid ja alustatakse uuesti genereerimist.

mcgen'i manual: mcgen-doc-est-070625-01.pdf

mcgen'i (ehk kompileeruv) sorts: mcgen.tar.gz