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:
The above mentioned results can be more or less easy to access, so here is how to access each.
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) )
The energy above the convex hull (in eV) is simply the value given in the e_above_the_hull
column.
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.
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)
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.
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
]
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.