Hartree potential that may serve as an input for the PPM can be produced by various DFT codes. A slab calculations are necessary for a creation of the Hartree potential. The calculated system should be in the lower part of the unit cell, but z coordinates of the top-most layer has to be above zero! At least 10 Ǎ of vacuum above a slab geometry has to be used. 15-20 Ă of Vacuum are recommended. Here we show examples how to produce a hartree potential, for couple of DFT codes:

Fireball

A fireball.in for creation of an fftpot.xsf file with Hartree potential with using a McWEDA functional should look like:

&OPTION
basisfile =     'answer.bas'
lvsfile =       'input.lvs'
kptpreference = 'input.kpts'
nstepf     = 1
icluster   = 0
itdse      = 0
iqout      = 1
ifixcharge = 1     ! 0 if you don't have pre-calculated atomic charges in CHARGES
iquench    = -1
&END

&OUTPUT
iwrtxsf = 1   ! print the important file
iwrtden = 1   ! print the important file
&END

&MESH
ifixg0 = 1            ! 
g0     = 0.0,0.0,0.0  ! do not shift the position of atoms in fftpot.xsf with respect to the answer.bas
Ecut = 300.0d0        ! not really necessary, but gives grid sampling approximately 100 pm.
&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
itdse      = 0
iqout      = 1
ifixcharge = 0
dt         = 0.5
iquench    = -1
iks        = 1
imcweda    = 0
idogs      = 0
bmix       = 0.05
&END

&OUTPUT
iwrtxsf = 1   ! print the important file
iwrtden = 1   ! print the important file
&END

&MESH
ifixg0 = 1            ! 
g0     = 0.0,0.0,0.0  ! do not shift the position of atoms in fftpot.xsf with respect to the answer.bas
Ecut = 300.0d0        ! not really necessary, but gives grid sampling approximately 100 pm.
&END
VASP

http://www.vasp.at/

A LOCPOT file containing the Hartree potential is produced during standart VASP run. One just have to care about a dipole correction (if necessary). The LOCPOT file has to be convert into an *.xsf file, eg. via http://theory.chm.tu-dresden.de/~jk/software.html

FHI-AIMS

http://aimsclub.fhi-berlin.mpg.de/

Add following sequention into your control.in file:

output cube hartree_potential
  cube origin lx ly lz

where lx, ly & lz are shifting the output cube file so the written grid would be at the beginning of the Cartesian system. PPM can now read geometry from a cube file created by FHI-AIMS and shift it according to the shift of the cube cell; however for good run of the PPM calculation at least lz has to be properly specified. l = length of lattice vector / 2 - 0.05; But proper shift is used only, when the lattice vector follows some Cartesian direction.