Skip to content

Elf Radii: Ionic Radii

Ionic and covalent radii are typically determined from tabulated data such as those generated by Shannon and Prewitt. While these are a useful metric, the actual radii can vary significantly depending on teh local environment. The ElfRadii class can be used to calculate ionic and covalent radii directly from the ELF. Here we demonstrate the use of this tool to determine the ionic radius of Na in NaCl and show that the result is quite close to the value reported by Shannon and Prewitt.

VASP

  1. Create your POSCAR file. As an example, we used the following NaCl structure.

    Na1 Cl1
    1.0000000000000000
        3.3674419368762565   -0.0000000000000000    1.9441935087359421
        1.1224806456254190    3.1748547050895506    1.9441935087359421
        -0.0000000000000000    0.0000000000000000    3.8883870174718833
    Na   Cl
        1     1
    Direct
    0.0000000000000000  0.0000000000000000 -0.0000000000000000
    0.5000000000000000  0.5000000000000000  0.5000000000000000
    
    2. Create your INCAR file. Below is a minimal example that writes the required CHGCAR, AECCAR, and ELFCAR files. In general, the grid density should be at least 10 pts/Å along each lattice vector for well converged Bader analysis.

    Global Parameters
    LAECHG = True         # Write AECCAR files
    LELF = True           # Write ELFCAR file
    EDIFF  = 1E-06        # SCF energy convergence, in eV
    ENCUT  = 520
    
    Grid Size             # Moderately grid density
    NGX    = 30
    NGY    = 30
    NGZ    = 30
    "Fine" Grid Size      # Must Match Standard Grid
    NGXF   = 30
    NGYF   = 30
    NGZF   = 30
    
  2. Create your POTCAR. We cannot provide an example for this as the files are proprietary.

  3. Run VASP. Depending on your system how you do this may vary. On our system we use the following command.

    mpirun -np 12 vasp_std
    

BaderKit

  1. If you would like to follow along, open your preferred IDE in an environment with BaderKit installed. Alternatively, the complete python script from this tutorial is available at the end of this page.

  2. Import the Grid utility class and main Bader class.

    from baderkit import Grid
    from baderkit.elf_analysis import ElfRadii
    
  3. We recommend using the reconstructed total charge density as a reference for Bader partitioning when possible. In VASP we can construct this from the AECCAR files.

    core_grid = Grid.from_vasp("AECCAR0")
    val_grid = Grid.from_vasp("AECCAR2")
    total = core_grid.linear_add(val_grid)
    total.write_vasp("CHGCAR_sum")
    
  4. Now create the ElfRadii class instance.

    elf_radii = ElfRadii.from_vasp(
        charge_grid="CHGCAR",
        reference_grid="ELFCAR",
        total_charge_grid="CHGCAR_sum",
        pseudopotential_filename="POTCAR"
        )
    
  5. Get the radius of Na from the ELF as well as the shannon-prewitt result.

    elf_radius = elf_radii.atom_radii[0]
    shannon_radius = elf_radii.structure[0].specie.average_ionic_radius
    
  6. Finally, print the resulting radii to the console.

    print(f"ELF Radius: {round(elf_radius,2)} ang")
    print(f"Shannon Radius: {shannon_radius}")
    

You should see logging information as BaderKit runs, then the oxidation states of each atom in the structure:

ELF Radius: 1.05
Shannon Radius: 1.16 ang

  1. If you are using an environment manager, load your baderkit environment. For conda:

    conda activate baderkit
    
  2. We recommend using the reconstructed total charge density as a reference for Bader partitioning when possible. In VASP we can construct this from the AECCAR files.

    baderkit sum AECCAR0 AECCAR2
    
  3. Run the ElfRadii analysis.

    baderkit radii CHGCAR ELFCAR -tot CHGCAR_sum
    

    You should see logging information printed to the console and once complete a radii.json file will be written which summarizes the results of the calculation.

And that's it! Try playing around with what else the ElfRadii class offers.

Download Resources

Tutorial Script: elf_radii.py

VASP Inputs/Outputs: NaCl_radii.zip