Skip to content

Latest commit

 

History

History
109 lines (75 loc) · 3.81 KB

File metadata and controls

109 lines (75 loc) · 3.81 KB

GPAW Support

doped provides comprehensive support for defect calculations using GPAW, a Density Functional Theory (DFT) Python code based on the projector-augmented wave (PAW) method. This support includes automated input generation, parsing of calculation results, and integration with the full doped defect analysis workflow.

Installation & Requirements

To use the GPAW interface, you must have GPAW installed in your Python environment:

pip install gpaw

For the Kumagai (eFNV) charge correction, pydefect is also required:

pip install pydefect

Workflow Overview

The workflow for GPAW defect calculations follows the standard doped logic:

  1. Generation: Generate defect structures using DefectsGenerator.
  2. Input Preparation: Write GPAW Python scripts and structure files using GPAWDefectRelaxSet.
  3. Execution: Run the calculations using GPAW (typically via mpirun).
  4. Parsing: Parse the results (.gpw(.gz) files) using GPAWDefectsParser.
  5. Analysis: Perform thermodynamic analysis and plotting.

Input Generation

The GPAWDefectRelaxSet class is used to generate the necessary files for a GPAW relaxation. It produces a relax.py script and a structure.cif file.

from doped.gpaw import GPAWDefectRelaxSet
from pymatgen.core.structure import Structure

# Load your supercell structure
structure = Structure.from_file("POSCAR")

# Define GPAW settings
gpaw_settings = {
    "mode": {"name": "pw", "ecut": 400},
    "xc": "PBE",
    "kpts": {"size": (2, 2, 2), "gamma": True},
}

# Initialize the relax set for a +1 charge state
relax_set = GPAWDefectRelaxSet(structure, charge_state=1, gpaw_settings=gpaw_settings)

# Write files to a directory
relax_set.write_input("calculation_folder")

Parsing Results

Once calculations are complete, doped can parse the resulting relaxed.gpw(.gz) files. The GPAWDefectsParser can handle multiple defect folders at once.

from doped.gpaw import GPAWDefectsParser

# Initialize the parser
# output_path: directory containing defect folders
# bulk_path: directory containing the bulk reference calculation
parser = GPAWDefectsParser(
    output_path=".",
    bulk_path="calculation_bulk",
    dielectric=10.0  # Required for charge corrections
)

# Parse all defects
defect_dict = parser.parse_all()

Finite-Size Corrections

GPAW calculations of charged defects require finite-size corrections to account for periodic image interactions. doped supports both the Kumagai (eFNV) correction (highly recommended) and the standard Freysoldt-Neugebauer-Van de Walle (FNV) correction for GPAW.

Anisotropic Systems (2D/1D)

For anisotropic systems like 2D materials (e.g., graphene, MoS2), the default sampling radius calculation in standard tools often fails by setting a radius that encompasses the entire cell. doped implements an improved radius calculation:

  • It automatically determines the optimal defect_region_radius based on the inscribed sphere of the supercell (half the shortest distance between parallel planes).
  • It includes safety checks to prevent errors when the sampling region is small or empty.

Detailed API

For more specific information on classes and functions, see the :ref:`doped.gpaw module` documentation.

Example Script

An end-to-end example of generating and parsing GPAW defects can be found in the examples/Graphene_with_GPAW directory of the doped repository.