Database Usage

The database is an SQLite3 database made using the ase python package. To gain access to the content, you can use the Command Line Interface (CLI) tool included with an ase installation.

In the folder containing the database file, antiperovskite_results.db, you run the command

ase db antiperovskite_results.db ["<filter>"] [-c +<extra_columns>] [-L <N>]

The <filter> is very powerful, and all the options can be found in the official documentation. <extra_columns> is simply a comma-separated (with NO spaces) list of the non-standard columns to view. <N> is the number of lines to show, and using 0 lists every line.

The database contains the following data results:

  • Bandgaps
  • Convex Hull Stability
  • Density of States
  • Electrochemical Stability Window
  • Cubic Antiperovskite Check
  • Climbing Image Nudged Elastic Band (NEB) barriers and structures
  • Surrogate NEB barriers and model path

Accessing Data

The above mentioned results can be more or less easy to access, so here is how to access each.

Bandgap

You can simply use the ase db tool to get the band gaps. Using this command

ase db antiperovskite_results.db -c bandgap [-L <N>]

returns a list of tuples with structure:

( gap size [eV], (HOMO_k_spin, HOMO_k_index, band), (LUMO_k_spin, LUMO_k_index, band) )

Convex Hull Stability

The energy above the convex hull (in eV) is simply the value given in the e_above_the_hull column.

Density of States

The density of states is split across two columns, dos_values and dos_energy. The first is the density, and the second is the energy which the density corresponds to.

Electrochemical Stability Window

The electrochemical stability is the range of potential in which the compound is stable. The values are found in the esw column, where the result has the shape

( lower limit, upper limit, range)

Cubic Antiperovskite Check

Whether or not the relaxed structure stays close enough to the Pm-3m space group. This is found as a boolean in the is_cubic column.

Climbing Image NEB

The CI-NEB barrier is found in meV in the cineb_barrier column, while the supercell images depicting the NEB path can be reconstructed using a bit of python:

from ase import Atoms
from ase.db import connect


db = connect('antiperovskite_results.db')
rows = db.select('cineb_barrier>0')
row = next(rows)

images = [
    Atoms(
        row.data.cineb_symbols,
        pos,
        cell=row.data.cineb_cell
    ) for pos in row.data.cineb_positions
]

Surrogate NEB

The unscaled S-NEB barriers are found in the column sneb_barrier, while the path generated using the surrogate model must be extracted using python:

from ase import Atoms
from ase.db import connect


db = connect('antiperovskite_results.db')
rows = db.select('sneb_barrier>0')
row = next(rows)

sneb = row.data.sneb_path
pos = sneb[:, :3]
charge_density = sneb[:, 3]

The pos variable will then contain the cartesian coordinates in the ase.Atoms object of that row, and charge_density contains the value of the charge density at that position.