mirror of https://gitlab.com/QEF/q-e.git
78 lines
3.5 KiB
Plaintext
78 lines
3.5 KiB
Plaintext
This example shows how to calculate the initial state core level shift
|
|
using the core-excited pseudo-potential technique. Defining the normal
|
|
PP as V and the core-excited PP as V*, initial_state.x will calculate for
|
|
each atom the expectation value defined by <Psi| (V-V*) |Psi> with Psi
|
|
the ground state wave function (in DFT this is implemented with several
|
|
integrals concerning both the pseudo and the GS charge distribution).
|
|
|
|
The example calculates the IS contribution in a rhodium [011] slab
|
|
composed of 5 layer. What is necessary are
|
|
|
|
- a normal PP for rhodium
|
|
- a core-excited PP for rhodium
|
|
|
|
The two potentials have to be consistent with each other (functional,
|
|
parameters, ecc..), being the core-excited one a PP for the same atomic
|
|
type with a different, core-excited, electronic configuration.
|
|
|
|
The calculation proceeds as follows:
|
|
|
|
1) make a self-consistent calculation for Rh [011] slab adding the
|
|
core-excited PP in the ATOMIC_SPECIES. All the atomic positions will
|
|
be defined by the normal PP, the addition of the excited PP in the list
|
|
is needed for the next step. Notice that in &system the ntyp variable
|
|
counts also the core-excited PP.
|
|
|
|
(input=rh011slab.scf.in, output=rh011slab.scf.out)
|
|
|
|
2) make the initial state calculation. In this step it is necessary to
|
|
define which PP is the excited version of the normal one. As explained
|
|
below (see "Several PP case") in the ATOMIC_SPECIES a long list of pseudo
|
|
for other atoms in the calculation can appear and the PPs are defined
|
|
in initial_state.x with numbers, starting from 1 up to the last pseudo.
|
|
|
|
In the example are used only two PPs. The first one is the regular PP used
|
|
to define the atoms in ATOMIC_POSITIONS. The second is the core-excited
|
|
PP, which appear only in the ATOMIC_SPECIES card. Then the way to specify
|
|
that atomic type 1 is excited to atomic type 2 is "excite(1)=2".
|
|
|
|
(input=rh011slab.istate.in, output=rh011slab.istate.out).
|
|
|
|
|
|
The output will show the IS contributions, the full result first and
|
|
its decomposition in each part after (ionic contribution, non local
|
|
contribution, ecc...). As usual, taking an atom as the reference the
|
|
differences of the IS contributions are the IS core-level shift.
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
NOTE: Case with several PP
|
|
|
|
In bigger calculations with several atomic species the strategy will be identical.
|
|
|
|
- First make a SCF calculation with the regular PP and adding all the
|
|
different core-excited versions one wants to check.
|
|
|
|
ATOMIC_SPECIES
|
|
Rh 1.0 Rh.pbe-rrkjus_lb.UPF (used)
|
|
O 1.0 O.pbe-rrkjus.UPF (used)
|
|
Rhs 1.0 Rhs.pbe-rrkjus_lb.UPF (core-ex. [s], NOT USED in ATOMIC_POSITIONS)
|
|
Rhp 1.0 Rhs.pbe-rrkjus_lb.UPF (core-ex. [p], NOT USED in ATOMIC_POSITIONS)
|
|
Os 1.0 Rhs.pbe-rrkjus_lb.UPF (core-ex. NOT USED in ATOMIC_POSITIONS)
|
|
|
|
- Once the SCF is finished it is possible to define several different
|
|
initial_state runs, each testing a different IS contribution. In every
|
|
run one has to defined just ONE core-excited configuration per atomic
|
|
type while excitations of different atomic types can be defined in a
|
|
single run.
|
|
|
|
- Run only for rhodium (s)
|
|
excite(1)=3 (IS contribution for Rh atoms with [s]PP)
|
|
|
|
- Run only for rhodium (p)
|
|
excite(1)=4 (IS contribution for Rh atoms with [p]PP)
|
|
|
|
- Run for rhodium AND oxygen in ONE run
|
|
excite(1)=3 (IS contribution only for Rh atoms with [s]PP)
|
|
excite(2)=5 (IS contribution only for Ox atoms)
|