Equilibriom Kpoins
melo by to fungovat, skousel jsem 1D H chain, H111 bulk, a Si100 bulk, vsude to fungovalo pro vice k-bodu.
Chyba vznikala pri jednom k-bodu, protoze se v tom pripade pouzivala na inverovani GF lapack subrutina pro symetricke matice
Predelal sem to aby se vzdy pouzivala subrutina pro obecne matice
Voltage se aplykuje v diag_k_NET_eq.f90 na diagonalu hamiltonianu.
DEV NOTES
v Smeagolu neni zadne jine misto (if statement) ktere by zalezelo na poctu k-bodu. Nepouziva se tam ani nikde jinde symetricky solver (krome invert.f ktera se ale podle vseho nepouziva vubec).
Nonequlibrim Khon-Sham
Aktualne to konverguje (pri vysoke teplote tempfe=1000) a dava “nejakou” vodivost. Ale vysledny potencial (fftpot.xsf) nevypada vubec smysluplne - je symetricky.
To Do
Problemy
Hlavni problem ze potencial pro nenulovy VBias nekonverguje k smysluplnemu reseni (asymetricky prohnute rampe), ale k necemu kde jsou LEADy +/- symetricky posunute oproti scattenring regionu.
Smeagol z nejakeho duvodu nezintegruje spravne hustotu stavu leadu. To se pokousi resit workarround v kspace_NET_KS.f90 v sekci CORRECTION TO EDGE, ale nejsem si jisty jetli by to tak melo byt, asi ne.
zda se mi ze to nenacita/neuklada sprave denmat.dat. protoze kdyz spustim smeagol znovu, jen s trochu pozmenenym napetim, tak je dost velika sigma=1E-1. ⇒ Podivat se jak se nacita a uklada s denmat.
denmat se ve smeaglu nacita/uklada spatne,
kdyz spustim 2x beh programu (1x uz zkonvergovany) je stejne v prvnim kromu sigma=1E-1
Kosmeticke vady
Jednotkova konvecne je chaoticka, nektere veci se konvertuji do Hratree untis uvnitr smeagol (HL0,HR0 unvitr negf() ) jine uvnitr fireball (V_bias)
celkove je kod chaoticky - rozstrkany po ruznych subrutinach fireballu a podadresarich (GRID, LOOPS, MODULES, SOLVESH_DIAG, UTILS, SM_INTERFACE, SM_NETRANSPORT )
FAQ
denmat.dat se nacita. Vypise to “Read denmat.dat”. deje se to v initbasics.f90 → initdenmat.f90. ale funguje to nejak spatne asi, nechapu zatim proc, ale nevypada to ze by uz jednou zkonvergovany vypocet konvergoval vyrazne rychleji.
“tempfe” ovlivnuje “Tf” ktera se pouziva v negfk.F a selfenergy.F/CHARGEBIAS_EQ, prenasobi se kB=6.33363D-6 [Ry/K]
Delta resp Sigma (proste imaginarni cast, rozsireni peaku stavu) se nastavuje podle teploty - zavisi na tempfe
Je lepsi pouzivat fermi level ze smeagol-SCF nez z LEADu. S Ef z LEADu to nekonverguje vubec. Mozna by si mel smeagol urcit fermi-level sam pomoci integrace?????
Zmene soubory od puvodniho fireballu
New files:
/SM_INTERFACE/read_LRE.f90 read electrode rho, H, S matrices for each k (if ismeagol = 1)
/UTIL/writeout_H2Sm.f90 write out electrode rho, H, S matrices (if iwrtHSrho = 1) from "bulk" calculation for "smeagol" calculation
/SOLVESH_DIAG/kspace_NET.f90 solve in each k-point using smeagol
/SOLVESH_DIAG/diag_k_NET.f90 allcocate and read ELECTRODE files, call read_LRE, call kspace_NET
/SOLVESH_DIAG/get_Sp12k.f90 get S matrix^(1/2) for lowdin transform from smeagol density
/LOOPS/main_loop_NET.f90 just call scf_loop_NET
/LOOPS/scf_loop_NET.f90
/MODULES/smeagol.f90 definition of all smeagol global variables
Modified files:
/MODULES/options.f90 integer ismeagol
/MODULES/outputs.f90 integer iwrtHSrho
/INITIALIZERS/initbasics.f90 call readbias, allocate_bias (if ismeagol = 1)
/LOOPS/main_loop.f90
/READFILES/readparam.f90
/UTIL/postscf.f90