Alloy dielectric functions

Background

Data

Alloy dielectric functions for special quasirandom structures can be downloaded from the picasso server (you need to do this from a Chalmers IP address):

Extracting data

For calculations, it is recommended not to use the data straight from the above provided database, but rather first do a fit to a fairly high degree polynomial. This procedure prevents spurious effects from chemical order in the structures and ensures that the data is smooth when the concentration is varied. It also makes it possible to obtain a dielectric function for any concentration by interpolation. To facilitate the fitting, a Python script is provided:

The script can in the simplest case be run like so:

$ python interpolate_dielectric_functions.py Au Pd 0 25 50 -f AuPd/df- -d path-to-database/dielectric_functions.json

The numbers refer to the concentration of the last specified element (in this example Pd), The -f flag specifies that the filenames should start AuPd/df-. We end up with three files in the AuPd directory, df- Au0-Pd100.txt, df-Au50-Pd50.txt and df-Au75-Pd25.txt.

More advanced use of the script is described below.

Mandatory arguments

  • element1
  • element2
  • target_concentrations: A list of concentrations element2 / (element1 + element2) as percentages.

Optional arguments

  • -f, --filename: “Preamble” to filename, i.e. how the filename starts. Can contain a directory, which will be created if it does not exist. If not specified, files with names such as Au80-Pd20.txt will be written in the working directory.
  • -p, --plot: Do not write files, but plot the imaginary part of the dielectric functions using Matplotlib instead.
  • -w, --wavelength: Use wavelengths in nanometer instead of energies in electronvolts.
  • --xmin: Minimum energy (or wavelength if -w is specified). Defaults to the smallest energy that the dataset contains.
  • --xmax: Maximum energy (or wavelength if -w is specified). Defaults to the largest energy that the dataset contains.
  • --order: Degree of the polynomial to which the dielectric functions should be fitted. Defaults to 6.
  • -d, --database: Path to the database with dielectric functions.

An advanced example may thus look like this:

$ python interpolate_dielectric_functions.py Au Pd 33 33.5 34 34.5 35 -p -w --xmin 80 --xmax 1200 --order 5 -d ../databases/dielectric_functions.json

This will make a (pretty boring) plot with a few dielectric functions fitted with a fifth degree polynomial, as a function of wavelength between 80 and 1200 nm.