mirror of https://gitlab.com/QEF/q-e.git
![]() officially deprecated but there were several tests and examples using them |
||
---|---|---|
.. | ||
reference | ||
README | ||
run_example |
README
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)