Update KS BdG Example authored by Philipp Rüssmann's avatar Philipp Rüssmann
# Kohn-Sham Bogoliubov-de Gennes simulations
Kohn-Sham Bogoliubov-de Gennes (KS-BdG) simulations allow to combine the accurate electronic structure based on DFT with a description for superconductivity leading to an inherent multi-band description of superconductivity in real materials.
> Further information on the method and the underlying implementation can be found in the KS-BdG method paper:
> [P. Rüßmannn and S. Blügel, Phys. Rev. B **105**, 125143 (2022)](https://journals.aps.org/prb/abstract/10.1103/PhysRevB.105.125143)
> <details><summary>Recent applications</summary>
>
> - [K. Janßen, P. Rüßmann, et al., Phys. Rev. Materials **8**, 034205 (2024)](https://link.aps.org/doi/10.1103/PhysRevMaterials.8.034205)
> - [X.-K. Wei, et al., ACS Nano **18**, 1, 571–580 (2024)](https://doi.org/10.1021/acsnano.3c08601)
> - [P. Rüßmann, et al., Proceedings Volume 12656, Spintronics XVI; 126560S (2023)](https://doi.org/10.1117/12.2678145)
> - [P. Rüßmann, et al., Phys. Rev. Research **5**, 043181 (2023)](https://doi.org/10.1103/PhysRevResearch.5.043181)
>
> </details>
_Please cite the KS-BdG method paper if you use the BdG feature in your work._
## KS-BdG example - bulk Nb
This example illustrates how BdG calculations can be done with KKRhost.
### Requirements
You need to install KKRhost from the `BdG` branch to be able to run this.
On `iffslurm` you can use the AMD nodes from the `th1-2020-32` partition
for which the compiled BdG code is available at `/local/th1/DFT/kkrhost_BdG_AMD_dev`.
To use this you additionally need to activate the proper compiler environment:
```
source compiler-select intel
export FI_PROVIDER=tcp # this is needed to make MPI work
```
### Theory
For an overview of the KKR-BdG theory see
- [BdG in general](https://link.springer.com/book/10.1007%2F978-3-319-31314-6)
- [KKR-BdG](https://doi.org/10.1103/PhysRevB.91.165142)
- [KKR-BdG with discussion on numerical details](https://doi.org/10.1103/PhysRevB.101.064510)
### Overview of this example
The KKR-BdG calculations are done in several steps:
1. They start from a converged normal state calculation (given in `0_normal_state_scf`)
2. Superconductivity relies on a more accurate description at the Fermi level.
This is done with a special energy contour that describes a semi circle between `EMIN`
and the Fermi energy (which we can fix for this calculation). This step is done in
`1_semi_circle_contour`.
![](https://iffmd.fz-juelich.de/uploads/upload_a6d588071fd4b0482b638194cb06ce8c.png)
*Semi-circle energy contour between `EMIN` and `EFERMI`. The energy mesh gets exponentially denser when approaching the Fermi level. The colour indicates the k-mesh that is limited to 4 different sets of k-points (needed to avoid undersampling of the BZ integration).*
3. We then construct a starting value for the superconducting pairing potential.
This is done in a one-shot calculation that uses a large value for `Delta_BdG` in
the input. The output is an anomalous density (called `den_lm_ir.001.1.dat`) which
is then read and updated in the following steps. This step is done in `2_init_BdG_one_shot`.
4. Then we converge the BdG calculation in `3_BdG_scf`. This then produces a new output
potential and updates the anomalous density `den_lm_ir.*`.
![](https://iffmd.fz-juelich.de/uploads/upload_b3ce28f7898e4bb89f877bf60b2bebea.png)
*First line shows where Broyden mixing of the superconducting pairing potential $\Delta$ starts (simple mixing is done until then) and the second line indicates when Broyden mixing of the potential starts. The idea is to first converge $\Delta$ and then let the potential follow.*
5. Finally, in `4_BdG_dos` the DOS in the superconducting state is computed.
![](https://iffmd.fz-juelich.de/uploads/upload_e66188a11db5dcf06825e0a2d7cd1540.png)
*BdG-DOS in the superconducting state. A denser k-mesh (e.g. 400x400x400) would be needed to reduce the numerical noise seen for example between -5 and -10 meV.*
In practice the steps 4. and 5. are iterated with different values of the coupling
constant `LAMBDA_BdG` to find a gap size that matches the experiment.
![](https://iffmd.fz-juelich.de/uploads/upload_c11a2c561ca38ae880a3125a2aa10858.png)
*Change in the gap size with the coupling constant.*
The notebooks `Convergence_plots.ipynb` and `DOS_plot.ipynb` show the outcome of this example.
### Limitations
So far we can only do s-wave coupling.
With SOC the calculation takes much longer because of the required large k-mesh
and the lower symmetries in the Brillouin zone integration.
Non-collinear magnetism does not work with BdG, make sure to fix the directions of the angles
using the `<FIX_NONCO_ANGLES>= True` input (also if you want to use SOC!).
### Download
- The example can be downloaded from [here](https://iffcloud.fz-juelich.de/s/r9a7z3Z6mR9WyES).
- This example can also be done with AiiDA-KKR and the corresponding tutorial and AiiDA export file can be downloaded [here](https://iffcloud.fz-juelich.de/s/jNtpp4jBa8PDG3e).
\ No newline at end of file