Installation

pip install doped  # install doped and dependencies

If you want to install the latest development version of doped, this can be done following the Developer Installation instructions, or with:

pip install https://github.com/SMTG-Bham/doped/archive/develop.zip

Alternatively if desired, doped can also be installed from conda with:

conda install -c conda-forge doped

It may be desirable to install doped in a virtual environment (e.g. if you encounter package dependency conflict warnings during installation etc). You can do this with conda with:

conda create -n doped python=3.13
conda activate doped
pip install doped

Setup POTCARs and Materials Project API

To generate VASP POTCAR input files, and auto-determine INCAR settings such as NELECT for charged defects, your POTCAR directory needs to be setup to work with pymatgen (via the ~/.pmgrc.yaml file).

Instructions:

1. Set the VASP pseudopotential directory and your Materials Project API key in $HOME/.pmgrc.yaml (pymatgen config file) as follows:

PMG_VASP_PSP_DIR: <Path to VASP pseudopotential top directory>
PMG_MAPI_KEY: <Your MP API key obtained from https://next-gen.materialsproject.org/dashboard>

Within your VASP pseudopotential top directory, you should have a folder named POT_GGA_PAW_PBE/potpaw_PBE.54/POT_GGA_PAW_PBE_54 which contains POTCAR.X(.gz) files, generated using pmg config.

Note the Materials Project API key is required for determining the necessary competing phases to calculate in order to determine the chemical potential limits (required for defect formation energies). Your API key can be obtained at: https://next-gen.materialsproject.org/dashboard

Alternatively, your MP API key can be passed directly to the doped CompetingPhases() class or other chemical_potentials functions using the api_key parameter, or set via the MP_API_KEY environment variable (e.g. export MP_API_KEY=your_api_key).

  1. If you have not previously setup your POTCAR directory in this way with pymatgen, then follow these steps:

    mkdir temp_potcars  # make a top folder to store the unzipped POTCARs
    mkdir temp_potcars/POT_GGA_PAW_PBE  # make a subfolder to store the unzipped POTCARs
    mv potpaw_PBE.54.tar.gz temp_potcars/POT_GGA_PAW_PBE  # copy in your zipped VASP POTCAR source
    cd temp_potcars/POT_GGA_PAW_PBE
    tar -xf potpaw_PBE.54.tar.gz  # unzip your VASP POTCAR source
    cd ../..  # return to the top folder
    pmg config -p temp_potcars psp_resources  # configure the psp_resources pymatgen POTCAR directory
    pmg config --add PMG_VASP_PSP_DIR "${PWD}/psp_resources"  # add the POTCAR directory to pymatgen's config file ($HOME/.pmgrc.yaml)
    rm -r temp_potcars  # remove the temporary POTCAR directory
    
  2. If this has been successful, you should be able to run the shell commands:

    pmg potcar -s Na_pv
    grep PBE POTCAR
    

    Which should then show PAW_PBE Na_pv {date} as the output (you can ignore any pymatgen warnings about recognising the POTCAR type).

  3. If this does not work, you may need to add this to the .pmgrc.yaml file:

    PMG_DEFAULT_FUNCTIONAL: PBE  # whatever functional label your POTCARs have
    

If you use doped in your research, please cite:

Developer Installation

If you want to use the example files from the tutorials or run the package tests, you will need to clone the doped GitHub repository:

  1. Download the doped source code using the command:

git clone https://github.com/SMTG-Bham/doped
  1. Navigate to root directory and checkout develop branch:

cd doped
git checkout develop
  1. Install the code, using the command:

pip install -e .

Requirements

The doped dependencies are listed in the pyproject.toml file on the GitHub repository.