... | ... | @@ -8,7 +8,7 @@ appropriate energy contour in your calculation of the host system (scf |
|
|
or DOS contour for scf or DOS calculation in impurity case). Then choose
|
|
|
a single iteration (*NSTEPS=1*), set the *RUNOPT KKRFLEX* ((make sure to
|
|
|
include this in the correct format as described in [List of inputcard
|
|
|
keywords](jumu:inputcard_codewords "wikilink"))). Finally you have to
|
|
|
keywords](jumu/inputcard_codewords "wikilink"))). Finally you have to
|
|
|
provide information about the impurity cluster. Here you have to
|
|
|
construct the file called scoef that contains in the first line the
|
|
|
number of sites in the impurity cluster, and in the following lines the
|
... | ... | @@ -32,14 +32,14 @@ kind of impurities lying in a same site.)) |
|
|
|
|
|
` - Converge the host system, in a folder __**sfc**__.On the example below, the test system consists of a thin film (4 layers) of Cu(111).`\
|
|
|
` - Create the folder __**kkrflex**__ and copy on it (from the **__sfc__** folder) the following files: `*`inputcard`*`, `*`shapefun`*`, `*`potential`*`, `*`clusters`*`, `*`kkr.x`*\
|
|
|
` - Write out the Green function and $t$-matrix (`[`kkrflex_*-files`](kkrimp:kkrflex_files "wikilink")`) for scf-contour`\
|
|
|
` - Write out the Green function and $t$-matrix (`[`kkrflex_*-files`](kkrimp/kkrflex_files "wikilink")`) for scf-contour`\
|
|
|
` - Change inputcard`\
|
|
|
` - add the `*`RUNOPT`*` `*`KKRFLEX`*` ((In the case were the self-consistency was done with the `*`RUNOPT`*` `*`LLOYD`*`, this option should be conserved in the following steps. Otherwise the rms-error will be enormous.))`\
|
|
|
` - `*`NSTEPS=1`*\
|
|
|
` - Create `*`scoef`*` file`\
|
|
|
` - Open the cluster file. ((In the new versions, this file is written out automatically during the convergence of the system))`\
|
|
|
` - Select the site on which it is desired to set the impurity. Then select N+1 lines, if N is the number of atoms in your impurity cluster. ((The scattering center at (0.,0.,0.) is the impurity site itself))`\
|
|
|
` - See example below for updated inputcard and the created `[`scoef`](jumu:scoef_file "wikilink")` file. On the example, the selected site is the **3**, and we want __12__ additional atoms in the impurity cluster. So we should copy __13__ lines under '**3** 1' (at line 101) from the cluster file to the scoef file.`\
|
|
|
` - See example below for updated inputcard and the created `[`scoef`](jumu/scoef_file "wikilink")` file. On the example, the selected site is the **3**, and we want __12__ additional atoms in the impurity cluster. So we should copy __13__ lines under '**3** 1' (at line 101) from the cluster file to the scoef file.`\
|
|
|
` - Run one iteration : `*`mpirun`` ``-np`` ``10`` ``kkr.x`*
|
|
|
|
|
|
### Converge the host-in-host system {#converge_the_host_in_host_system}
|
... | ... | @@ -49,25 +49,25 @@ doing so an impurity calculation is performed using the already |
|
|
converged potentials from the host system. Later on some parts of this
|
|
|
setup will be used to set up the real impurity calculations.
|
|
|
|
|
|
` - Create the folder __**host_in_host**__ and copy on it (from the __**kkrflex**__ folder) the following files : `[`kkrflex*`` ``files`](kkrimp:kkrflex_files "wikilink")`, `[`scoef`](jumu:scoef_file "wikilink")`, `*`potential`*`, `*`shapefun`*`, `*`inputcard`*`.((Some ofthese files can be quite big. So creating links might be the better idea: e.g. `*`ln`` ``-s`` ``../kkrflex/kkrflex_*`` ``.`*` However `*`potential`*` and `*`shapefunction`*` files should be copied since they will be overwritten in later steps.))`\
|
|
|
` - Create the folder __**host_in_host**__ and copy on it (from the __**kkrflex**__ folder) the following files : `[`kkrflex*`` ``files`](kkrimp/kkrflex_files "wikilink")`, `[`scoef`](jumu/scoef_file "wikilink")`, `*`potential`*`, `*`shapefun`*`, `*`inputcard`*`.((Some ofthese files can be quite big. So creating links might be the better idea: e.g. `*`ln`` ``-s`` ``../kkrflex/kkrflex_*`` ``.`*` However `*`potential`*` and `*`shapefunction`*` files should be copied since they will be overwritten in later steps.))`\
|
|
|
` - Download the `[`kkrimpurity`` ``code`](https://iffgit.fz-juelich.de/groups/kkr "wikilink")` and after setting the good environment parameters, compile it. A `*`kkrflex.exe`*` file should be written out. Copy this file to __**host_in_host**__.`\
|
|
|
` - Check files by doing host-in-host calculation`\
|
|
|
` - Set up `[`config.cfg`](kkrimp:config_file "wikilink")` and choose the same parameters for solver, accuracy etc. as in host code.`\
|
|
|
` - Create impurity potential and shapefunction using the `[`modify`` ``potential`` ``script`](kkrimp:modifypotential.py "wikilink")`((See below in paragraph "How to use the modifypotential.py")). Don't forget to rename `*`shapefun_new`*` -> `*`shapefun`*` and `*`potential_new`*` -> `*`potential`*`.`\
|
|
|
` - Set up `[`config.cfg`](kkrimp/config_file "wikilink")` and choose the same parameters for solver, accuracy etc. as in host code.`\
|
|
|
` - Create impurity potential and shapefunction using the `[`modify`` ``potential`` ``script`](kkrimp/modifypotential.py "wikilink")`((See below in paragraph "How to use the modifypotential.py")). Don't forget to rename `*`shapefun_new`*` -> `*`shapefun`*` and `*`potential_new`*` -> `*`potential`*`.`\
|
|
|
` - Run a single iteration (e.g. `*`mpirun`` ``-np`` ``10`` ``kkrflex.exe`*`) and check if RMS-error is sufficiently low.`
|
|
|
|
|
|
### Converge the impurity system {#converge_the_impurity_system}
|
|
|
|
|
|
` - Create the folder __**imp**__.`\
|
|
|
` - __Case 1__ (the easiest) : The impurity is an atom from the host system (Intrinsic impurities)`\
|
|
|
` - Construct the impurity potential from the converged system potential and the potential in the __**host_in_host**__ folder. For doing so the `[`modify`` ``potential`` ``script`](kkrimp:modifypotential.py "wikilink")` should be used and some basic unix commands. **In the following steps the original potential files((i.e. scf/potential, host_in_host/potential, ...)) should not be modified**.`\
|
|
|
` - Construct the impurity potential from the converged system potential and the potential in the __**host_in_host**__ folder. For doing so the `[`modify`` ``potential`` ``script`](kkrimp/modifypotential.py "wikilink")` should be used and some basic unix commands. **In the following steps the original potential files((i.e. scf/potential, host_in_host/potential, ...)) should not be modified**.`\
|
|
|
` - From __**sfc**__/`*`potential`*` keep only the potential corresponding to the desired impurity and delete all the others potentials. Rename the output potential pot1.`\
|
|
|
` - From __**host_in_host**__/`*`potential`*` delete the first potential. Rename the output potential `*`pot2`*`.`\
|
|
|
` - Paste __**sfc**__/pot1 in __**host_in_host**__.`\
|
|
|
` - Go to __**host_in_host**__ and execute the command `*`cat`` ``pot1`` ``pot2`` ``>`` ``potential`*`.`\
|
|
|
` - Modify the file `*`kkrflex_atominfo`*`, changing the ZATOM of the first atom with the ZATOM of the desired impurity in the 4th column.`\
|
|
|
` - Do the self-consistency calculation of the impurity:`\
|
|
|
` - Change `[`config.cfg`](kkrimp:config_file "wikilink")` (Don't forget to change the number of steps) ((In the case of magnetic impurities one have to set an "initial" weak magnetic field during the first iterations, in order to enhance the magnetisation. For example we can set `*`HFIELD=**0.020**`` ``__10__`*` which means that a magnetic field of **0.020**, will be set only in the first __10__ iterations, then it will come back to 0))`\
|
|
|
` - Change `[`config.cfg`](kkrimp/config_file "wikilink")` (Don't forget to change the number of steps) ((In the case of magnetic impurities one have to set an "initial" weak magnetic field during the first iterations, in order to enhance the magnetisation. For example we can set `*`HFIELD=**0.020**`` ``__10__`*` which means that a magnetic field of **0.020**, will be set only in the first __10__ iterations, then it will come back to 0))`\
|
|
|
` - Execute `*`mpirun`` ``-np`` ``10`` ``kkrflex.exe`*\
|
|
|
` - __Case 2__ : The impurity is not an atom from the host system (Extrinsic impurities)`\
|
|
|
` - Create a new `*`inputcard`*` corresponding to the system with the impurity. Then generate a starting potential using the `[`voronoi`](voronoi:voronoi_program "wikilink")` code, as it is done for the usual setup.`\
|
... | ... | @@ -76,13 +76,13 @@ setup will be used to set up the real impurity calculations. |
|
|
#### Post-processing {#post_processing}
|
|
|
|
|
|
` - Post-processing, e.g. impurity DOS`\
|
|
|
` - create `[`kkrflex_*`](kkrimp:kkrflex_files "wikilink")` files for DOS energy contour`\
|
|
|
` - run a single iteration using the converged impurity potential and the DOS `[`kkrflex_*`](kkrimp:kkrflex_files "wikilink")` files`\
|
|
|
` - create `[`kkrflex_*`](kkrimp/kkrflex_files "wikilink")` files for DOS energy contour`\
|
|
|
` - run a single iteration using the converged impurity potential and the DOS `[`kkrflex_*`](kkrimp/kkrflex_files "wikilink")` files`\
|
|
|
` - plot the impurity DOS as seen below `
|
|
|
|
|
|
{{ :kkrimp:cu\_cu111\_dos.png?500 \|}}
|
|
|
{{ :kkrimp/cu\_cu111\_dos.png?500 \|}}
|
|
|
|
|
|
{{ :kkrimp:step\_by\_step\_cu\_cu111.tar.gz \|Here the example can be
|
|
|
{{ :kkrimp/step\_by\_step\_cu\_cu111.tar.gz \|Here the example can be
|
|
|
downloaded}}. It containes the following directories: *scf* with the
|
|
|
converged potential etc for the host system, *kkrflex* for the writeout
|
|
|
of the kkrflex\_\*files in the scf contour, *host\_in\_host* for the
|
... | ... | |