User Tools

Site Tools


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 file for calculations with McWEDA:

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

iwrtcdcoefs = -2   ! print the important files

A file for calculations with XC on a grid computations:

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

iwrtcdcoefs =  -2

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 - 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 import*
from gpaw import *
import numpy as npy

mol = read('')                                       # xyz geometry of the sample
cell = npy.loadtxt('input.lvs')                               # cell in which a sample is
mol.set_pbc(False)                                            # cluster calculation, but PBC can be used as well: mol.set_pbc(True)
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')
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

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 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 in the same directory. All of these files are supposed to be easily read by the script or within

Note: Under normal conditions, please use PBC calculations, Just adjust the 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
      FILENAME cartesian-mos
        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.

creating_inputs.txt · Last modified: 2021/09/30 13:06 by krejcio