Note: If you work with the flexible-tip=PP-AFM adjust the geometry into the necessary box for the force-field calculations. Don't forget to put the top-most atoms above
0.0, but lower part of the box in the z direction.
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 serial or parallel (mpi.scalapack) version. Ideally with the final geometry run a single point calculation with the following outputs added to your control.in:
output eigenvectors output band 0 0 0 0.5 0.5 0.0 2 G K KS_method lapack_fast # for mpi-version (mpi.scalapack): The error message with HDF5 is not true in the aims output; use this keywords instead of recompilation #
See the CuPc example
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. You will also need geometry.in in the same directory. All of these files are supposed to be easily read by the PPSTM_simple.py script or within GUI.py.
Note: Under normal conditions, please use PBC calculations, Just adjust the geometry.in with a suitable
lattice_vectors (for small molecules
30.0 30.0 30.0 box is enough). There is a possibility to run strict cluster calculations, but additional parsing through Mathematica scripts (and some additional outputs) 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.