This repository contains a collection of the data that supports the paper "Density functional Bogoliubov-de Gennes theory for superconductors implemented in the SIESTA code".

The data is supplemented with the notebooks/scripts that were used to postprocess the data.

This README explains the content of the repository and gives instructions for how to use the notebooks/scripts.

Overview of repository content

The repository contains the following files,

  • paper-export.aiida: AiiDA export of the data that supports the findings in the paper
  • Figures-section-3a.ipynb: notebook to produce the plots for section 3a of the paper
  • Figures-appendix-B1.ipynb: notebook to produce the plots for appendix B.1 of the paper
  • Figures-appendix-B2.ipynb: notebook to produce the plots for appendix B.2 of the paper
  • Figures-appendix-B3.ipynb: notebook to produce the plots for appendix B.3 of the paper
  • requirements.txt: the list of packages required to use the notebooks, the versions of these packages were tested to work properly
  • requirements-minimal.txt: minimal list of required packages to run the notebooks with strict versioning replaced by minimum versions

Prerequisites for using the notebooks/scripts

To use the notebooks/scripts you need a working installation of Python, Jupyter and AiiDA. For obtaining these, we refer to the documentation of each respective software,

  • Python: https://www.python.org/about/gettingstarted/
  • Jupyter: https://jupyter.org/install
  • AiiDA: https://aiida.readthedocs.io/projects/aiida-core/en/stable/installation/index.html

In addition, some additional Python modules are required to run the notebooks and access all the functionalities of the dataset. We provide two ways of obtaining these modules.

Fully tested set of modules

A set of packages that were tested to work with the notebooks can be installed with the requirements.txt file, see https://packaging.python.org/en/latest/tutorials/installing-packages/#requirements-files This makes use of AiiDA v2.4.0 and the notebooks were tested with Python v3.10.11. Note that it is possible to isolate multiple AiiDA instances on your pc, see https://aiida.readthedocs.io/projects/aiida-core/en/stable/howto/installation.html#isolating-multiple-instances

Minimal required modules

If you wish to use different versions of the packages, i.e. you already have an installation of AiiDA with a newer version and you want to avoid running multiple different AiiDA versions on your system, we also provide the file requirements-minimal.txt which contains a list of the minimal required modules that have to be installed with strict versioning replaced by minmum versions. Note that we cannot guarantee that the notebooks will work with different versions of the packages. You might have to mix and match with certain strict versioning from requirements.txt to make it work.

Importing the data

Instructions for importing the archive into a profile can be found at https://aiida.readthedocs.io/projects/aiida-core/en/stable/howto/share_data.html#importing-an-archive You might want to consider creating a separate profile for importing the data, see https://aiida.readthedocs.io/projects/aiida-core/en/stable/installation/guide_complete.html#installation-guide-complete-create-profile We recommend choosing a storage backend which is not read-only, since an additional archive has to be imported to produce the plots from section 3a.

Importing additional archive for plots from section 3a

To use the notebook Figures-section-3a.ipynb you also need to download and import the data from the following publication, https://archive.materialscloud.org/record/2021.163 . In particular, you will need to import the following archive, https://archive.materialscloud.org/record/file?record_id=1005&filename=export_Nb_KKR-BdG.aiida

Once the Python dependencies have been installed and the data has been imported into an AiiDA profile, the notebooks can be evaluated to produce the plots from the paper.

Additional info for reproducibility

To enhance the reproducitiblity, some of the nodes have been assigned additional information in the node.base.extras attributes. These can be accessed either through node.base.extras.get('key') or node.base.extras.all.

Code nodes have the following extra attributes (if available for that particular code),

  • eb_modules_loaded: List of EasyBuild modules that were loaded during compilation of the code
  • eb_reprod_folder_uuid: UUID of FolderData that contains the EasyBuild logs and all files necessary to reproduce the compilation

CalcFunctionNode nodes have the following extra attributes (if available for that particular node),

  • env_info_uuid: UUID of SinglefileData containing full dump of Python environment at time of execution