====== 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.__ * FIXME 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