At the moment the PP-STM code can read inputs from following DFT codes:
Official version of FireballTG can write out input files now.
A working executable for creation of necessary input files is also at: /storage/praha1/home/krejcio/bin_fireball_stable/fireball.x
Input files can computed with McWEDA functional as well as with computing XC on a grid. Cluster systems as well as systems with Periodic Boundary Conditions (PBC) can be computed. A fireball.in file for calculations with McWEDA:
&OPTION basisfile = 'answer.bas' lvsfile = 'input.lvs' kptpreference = 'input.kpts' ! only gamma point-calculations work at the moment nstepf = 1 icluster = 0 ! 0 for PBC / 1 for cluster calculation itdse = 0 iqout = 1 ifixcharge = 1 ! 0 if you don't have pre-calculated atomic charges in CHARGES iquench = -1 &END &OUTPUT iwrtcdcoefs = -2 ! print the important files &END
A fireball.in file for calculations with XC on a grid computations:
&OPTION basisfile = 'answer.bas' lvsfile = 'input.lvs' kptpreference = 'samplek.kpts' nstepf = 1 icluster = 0 ! 0 for PBC / 1 for cluster calculation itdse = 0 iqout = 1 ifixcharge = 0 dt = 0.5 iquench = -1 iks = 1 imcweda = 0 idogs = 0 bmix = 0.05 &END &OUTPUT iwrtcdcoefs = -2 &END
In case of PBC calculations phik_0001_s.dat, phik_0001_py.dat, … files are produced by the Fireball. In case of cluster calculations phik_s.dat, phik_py.dat, … are outputs of the Fireball calculations. They serve as inputs for the PP-STM calculations. Inside they look like:
38 280 -5.37896401 Number of atoms Number of states (Molecular orbitals) The Fermi Level -27.58251 -0.00004 0.00000 -0.00006 0.00000 0.00002 0.00000 ... Eigen-energy of the 1st state Real & Imaginary part for the LCAO coeficient for 1st state 1st atom for (s, py ... depending on the name of file) etc. -27.58139 0.02716 0.00000 0.04766 0.00000 0.00660 0.00000 ... eigen-energy of the 2nd state Real & Imaginary part for the LCAO coeficient for 2nd state 1st atom for (s, py ... depending on the name of file) etc. ...
Even though the GPAW is mainly used for representing the wave-function on a grid it can work in LCAO mode as well. For the purpose of making inputs for the PP-STM calculations the LCAO mode is necessary. Both - default or double-zeta (basis='dzp'; for more information look at the GPAW web page http://wiki.fysik.dtu.dk/gpaw/) - basis sets can be used. The PP-STM code reads the stored *.gpw binary produced by the GPAW calculations. Here is an example of some GPAW script for the calculations of the input:
from ase import * from ase.visualize import * from ase.io import* from gpaw import * import numpy as npy mol = read('input.xyz') # xyz geometry of the sample cell = npy.loadtxt('input.lvs') # cell in which a sample is mol.set_cell(cell) mol.set_pbc(False) # cluster calculation, but PBC can be used as well: mol.set_pbc(True) mol.center() xc='LDA' # other XC like PBE, RPBE, PW91, BLYP can be used, too. calc = GPAW(txt='out_LCAO.txt',xc=xc,mode='lcao',basis='dzp') mol.set_calculator(calc) en = mol.get_potential_energy() print en calc.write('out_LCAO_'+xc+'.gpw',mode='all') # saves the calculation into binary 'out_LCAO_LDA.gpw' file
The results of the GPAW calculations is stored in binary file 'out_LCAO_LDA.gpw'
Works for PBC calculations, just add:
output eigenvectors output band 0 0 0 0.5 0.5 0.0 2 G K
into control.in. In the case of hybrid functionals (B3LYP, PBE0, HSE) add also:
exx_band_structure_version 1 ## for hybrid functionals only; both options 1 and 2 are working (1 takes more memory) ##
into your control.in file.
The calculations produces: KS_eigenvectors.band_1.kpt_1.out for spin-restricted calculations or KS_eigenvectors_dn.band_1.kpt_1.out & KS_eigenvectors_up.band_1.kpt_1.out in the case of spin-polarized calculations.
Note: For cluster calculations Mathematica scripts have to be used for creating PP-STM inputs.
into your input file YOUR_INPUT_FILE.inp into FORCE_EVAL → DFT → PRINT section add:
&MO ON EIGVECS CARTESIAN FILENAME cartesian-mos &EACH QS_SCF 0 &END EACH &END MO
Examples of input (and output) files can be found in the code in examples/ 4N-coronene/ CuPc/ and TOAT/ .
Note: CP2K reading procedure was mainly written by Ole Schütt, those days working at EMPA, Switzerland.