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. ...
http://wiki.fysik.dtu.dk/gpaw/
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'
http://aimsclub.fhi-berlin.mpg.de/
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_vector
s (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.