고체의 bonding 특성을 알려줄 수 있는 indicator로 Crystal orbital overlap population (COOP)를 활용할 수 있다. 이것은 Overlap population-weighted density of state 로 Mulliken overlap poputation (2cicjSij) 을 활용한다. COOP는 DOS와 overlap population을 곱함으로써 구할 수 있는데, 이를 통해 bonding (in-phase, positive overlap population)과 antibonding (out-of-phase, negative overlap population) 또한 nonbinding interaction을 구분할 수 있다.
COHP 또한 하나의 a theoretical bond-detecting tool로서, band-structure energy를 orbital-pair interactions으로 partition 한다. 즉 근접한 원자 사이의 “bond-weighted” density-of-states를 계산한다. 핵심은 density matrix (where are the electrons?)와 Hamiltonian matrix (what do they do?) 를 곱하는 것이다. COHP는 tight-binding LMTO 와 SIESTA 에서 이용할 수 있지만, plane-wave methods에서는 wavefunctino의 delocalization nature 때문에 COHP analysis를 할 수 없다. 따라서 wavefunction을 local, auxiliary basis으로 projection하여 chemical information을 추출할 수 있다. COHP에서는 COOP에서와는 반대로 bonding character는 Hamiltonian off-site element (“hopping term”) 의 negative value에서 비롯되고, 반대로 antibonding interactions은 positive value에서 비롯된다. COHP diagram 은 bonding 과 antibonding contributions 을 band-structure energy에 대해 plot 한 것인데, DOS를 적분하면 시스템 내의 전체 전자수를 알 수 있는 것과 마찬가지로, COHP의 에너지를 적분하면 band 에너지의 특정 bond의 기여, bond strength [in eV]를 알 수 있다.
COOP (Chemistry)는 bonding interaction을 positive sign (gain in overlap)으로 기술하고,
COHP (Physics)는 bonding interaction을 negative sign (lowered energy)로 기술한다. - and vice versa for antibonding contributions.
LOBSTER 프로그램으로 이를 계산할 수 있는데, 설치도 필요없는 executable을 다운받아서 쓰면 된다. US-PP 지원하지 않기 때문에 PAW potential을 사용해야하고, gamma-only version VASP도 지원하지 않는다.
- 먼저 해당 구조의 WAVECAR를 얻어야 하는데, Lobster는 k-point symmetry를 고려하지 않기 때문에, symmetry를 끄고 (ISYM = -1) single point calculations을 수행한다.
- 수학적인 이유로, NBAND 는 최소한 orbital 개수 이상은 되어야 한다.
- Spilling이 적을수록 정확한 계산이 된다. 따라서 spilling을 convergence criteria로 삼고 이를 최소한 줄인 상태로 최적화 한 후에 bonding analysis를 진행해야한다. spilling을 막기 위해서는 local basis function을 잘 정의 해줘야 한다 (예: basisfunctions O 2s 2p). default로 써도 되지만 sv potential을 쓸 경우 특히 잘 정의해주어야 한다. POTCAR에 electronic configuration이 나와 있으니 이로부터 시작하는 것이 좋은데, 이를 위해서는 단순하게 userecommendedbasisfunctions 또는 usebasisset pbeVaspFit2015 키워드를 써도 된다. 다만 이 옵션은 최소한의 basis functions을 사용하기 때문에 Charge spilling이 발생할 경우 basis function을 추가해야 한다.
- If no atom pairs at all are specified, you will still get a projected DOS, but nothing beyond that. Chemistry is about chemical interactions between atoms, so you must specify pairs of atoms to arrive at pCOOPs or pCOHPs.
- POTCAR에 SHA256 또는 COPYR과 같은 키워드가 있다면 해당 줄을 삭제하고 실행해야한다. Or “only fulfill orthonormality with an accuracy of xxxx”와 같은 에러가 발생.
인풋 파일(lobsterin)은 (주석은 ! 를 이용)
COHPstartEnergy -10 ! 에너지 범위 정의 relative to Fermi level
COHPendEnergy 5 ! 에너지 범위 정의 relative to Fermi level
! COHPSteps ! The number of energy increments
usebasisset pbeVaspFit2015
! userecommendedbasisfunctions
! basisfunctions Ga 4s 4p ! basis function 정의
! basisfunctions Sr 5s 4s 4p ! Sr_sv potential
cohpGenerator from 1.4 to 1.5 ! COHP pair를 자동으로 생성 (1.4 ~ 1.5 Å)
! cohpGenerator from 1.4 to 1.5 type Ga type Sr ! Case only between the specified elements
! cohpbetween atom 1 atom 10 ! COHP 분석을 위한 pair 정의
! cohpbetween atom 1 atom 2 orbitalwise ! atom-resolved 대신 orbital-resolved COHPs를 분석하고 싶을 경우, like s-s, s-p<sub>x</sub>, ..., p<sub>z</sub>-p<sub>z</sub>
gaussianSmearingWidth ! Gauusian broadening: default = 0.2 eV, equivalent to ISMEAR = 0, smearing을 줄이고 싶으면 k-points를 늘려야 한다.
writeBasisFunctions ! writes basis function in basisFunctions.lobster
DensityOfEnergy ! Generate the density-of-energy (DOE) function. (10.1002/anie.201612121)
skipMadelungEnergy ! skip Madelung Energy calculation which is time consuming
Output files
실행은 매우 간단하다. VASP single point calculations을 수행한 폴더에서 lobsterin 을 만들고 executable을 실행시키면 된다.
(다른 폴더에서 실행할 경우, OUTCAR CONTCAR DOSCAR POTCAR EIGENVAL vasprun.xml KPOINTS IBZKPT and WAVECAR 파일이 필요하다.
total spilling: the average of spillings over all bands (occupied and unoccupied)
charge spilling: over occupied bands only
Hence, a large charge spilling is far more critical than a large total spilling.
Output files
lobsterout: Spilling value 체크
DOSCAR.lobster: The orbital-projected electronic DOS and their sum. The energy has been shifted such that the Fermi level lies at zero eV.
COHPCAR.lobster: pCOHP
COOPCAR.lobster: same as above, just for pCOOP.
ICOHPLIST.lobster: a list of the particular IpCOHP values, integrated up to the Fermi level, for each atom–atom interaction you specified.
ICOOPLIST.lobster: same as above, just for IpCOOP.
CHARGE.lobster: charges from Mulliken and Löwdin popula-tion analyses for every atom and also gives the total charge as a sum over all atomic charges.
GROSSPOP.lobster: the Mulliken (Mulliken GP) and Löwdin gross orbital population (Loewdin GP) for every atom and gives the total atomic gross population as a sum over all gross orbital populations, reflecting the total number of (valence) electrons for that given atom.
DensityOfEnergy.lobster: the density-of-energy, DOE.
For visualization, use wxDragon.