Computational 2D Materials Database (C2DB)

If you are using data from this database in your research, please cite the following papers:

The Computational 2D Materials Database: High-Throughput Modeling and Discovery of Atomically Thin Crystals

Sten Haastrup, Mikkel Strange, Mohnish Pandey, Thorsten Deilmann, Per S. Schmidt, Nicki F. Hinsche, Morten N. Gjerding, Daniele Torelli, Peter M. Larsen, Anders C. Riis-Jensen, Jakob Gath, Karsten W. Jacobsen, Jens Jørgen Mortensen, Thomas Olsen, Kristian S. Thygesen

2D Materials 5, 042002 (2018)

Recent Progress of the Computational 2D Materials Database (C2DB)

M. N. Gjerding, A. Taghizadeh, A. Rasmussen, S. Ali, F. Bertoldo, T. Deilmann, U. P. Holguin, N. R. Knøsgaard, M. Kruse, A. H. Larsen, S. Manti, T. G. Pedersen, T. Skovhus, M. K. Svendsen, J. J. Mortensen, T. Olsen, K. S. Thygesen

2D Materials 8, 044002 (2021)

  • Browse data

  • The full dataset is provided upon request.

Brief description

The database contains structural, thermodynamic, elastic, electronic, magnetic, and optical properties of around 4000 two-dimensional (2D) materials distributed over more than 40 different crystal structures. The properties are calculated by density functional theory (DFT) and many-body perturbation theory (\(G_0W_0\) and the Bethe- Salpeter Equation for around 300 materials) as implemented in the GPAW electronic structure code. The workflow was constructed using the Atomic Simulation Recipes (ASR) and executed with the MyQueue task manager. The workflow script and a table with the numerical settings employed for the calculation of the different properties are provided below.

../_images/workflow.png

Overview of methods and parameters used

If a parameter is not specified at a given step, its value equals that of the last step where it was specified:

Workflow step(s)

Parameters

Structure and energetics(*) (1-4)

vacuum = 15 Å; \(k\)-point density = 6.0/Å\(^{-1}\); Fermi smearing = 0.05 eV; PW cutoff = 800 eV; xc functional = PBE; maximum force = 0.01 eV/Å; maximum stress = 0.002 eV/Å\(^3\); phonon displacement = 0.01Å

Elastic constants (5)

\(k\)-point density = \(12.0/\mathrm{Å}^{-1}\); strain = \(\pm\)1%

Magnetic anisotropy (6)

\(k\)-point density = \(20.0/\mathrm{Å}^{-1}\); spin-orbit coupling = True

PBE electronic properties (7-10 and 12)

\(k\)-point density = \(12.0/\mathrm{Å}^{-1}\) (\(36.0/\mathrm{Å}^{-1}\) for DOS)

Effective masses (11)

\(k\)-point density = \(45.0/\mathrm{Å}^{-1}\); finite difference

Deformation potential (13)

\(k\)-point density = 12.0/Å\(^{-1}\); strain = \(\pm\)1%

Plasma frequency (14)

\(k\)-point density = 20.0/Å\(^{-1}\); tetrahedral interpolation

HSE band structure (8-12)

HSE06@PBE; \(k\)-point density = 12.0/Å\(^{-1}\)

\(G_0W_0\) band structure (8, 9)

\(G_0W_0\)@PBE; \(k\)-point density = \(5.0/\mathrm{Å}^{-1}\); PW cutoff = \(\infty\) (extrapolated from 170, 185 and 200 eV); full frequency integration; analytical treatment of \(W({q})\) for small \(q\); truncated Coulomb interaction

RPA polarisability (15)

RPA@PBE; \(k\)-point density = \(20.0/\mathrm{Å}^{-1}\); PW cutoff = 50 eV; truncated Coulomb interaction; tetrahedral interpolation

BSE absorbance (16)

BSE@PBE with \(G_0W_0\) scissors operator; \(k\)-point density = \(20.0/\mathrm{Å}^{-1}\); PW cutoff = 50 eV; truncated Coulomb interaction; at least 4 occupied and 4 empty bands

(*) For the cases with convergence issues, we set a (k)-point density of 9.0 and a smearing of 0.02 eV.

Funding acknowledgements

The C2DB project has received funding from the Danish National Research Foundation’s Center for Nanostructured Graphene (CNG) and the European Research Council (ERC) under the European Union’s Horizon 2020 research and innovation program Grant No. 773122 (LIMA) and Grant agreement No. 951786 (NOMAD CoE).

Versions

Version

rows

comment

2018-06-01

1888

Initial release

2018-08-01

2391

Two new prototypes added

2018-09-25

3084

New prototypes

2018-12-10

3331

Some BSE spectra recalculated due to small bug affecting absorption strength of materials with large spin-orbit couplings

2021-04-22

4049

Major update including several hundreds new monolayers from experimentally known crystals (from the ICSD/COD databases), new crystal prototype characterization scheme, improved properties (stiffness tensor, effective masses, optical absorbance), and new properties (exfoliation energies, Bader charges, spontaneous polarisations, Born charges, infrared polarisabilities, piezoelectric tensors, band topology invariants, exchange couplings, Raman- and second harmonic generation spectra). See Gjerding et al. for a full description.

2021-06-24

4056

Updated MARE for effective masses.

2022-09-08

15686

Added 11.630 materials from lattice decoration and a deep generative model (see arXiv:2206.12159). Corrected symmetry threshold used to define band structure path to be consistent with the threshold used to define the space group.

2022-11-30

15733

Shift currents for selected materials. Improved deformation potentials.

2024-05-01

16789

New webpages. Restructuring of the search page (removed HIGH, MEDIUM, LOW characterization of thermodynamic stability). Added various properties for the 3.330 most stable of the 11.630 structures that were added in version 2022-09-08. Added ca. 100 self-intercalated bilayers. Spontaneous polarisations for 63 ferroelectrics. Symmetry classification according to layer groups in addition to space groups of the AA-stacked bulk.

Key-value pairs

See available keys here.

Using the data

Here is an example using the c2db.db ASE-DB file:

import matplotlib.pyplot as plt
from ase.db import connect

db = connect('c2db.db')
rows = db.select('gap_gw')

gw = []
hse = []
pbe = []
for row in rows:
    gw.append(row.gap_gw)
    hse.append(row.gap_hse)
    pbe.append(row.gap)

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.plot(pbe, hse, 'o', label='HSE06')
ax.plot(pbe, gw, 'x', label='GW')
x = [0, max(pbe)]
ax.plot(x, x, label='PBE')
ax.set_xlabel('PBE-gap [eV]')
ax.set_ylabel('gap [eV]')
ax.legend()
plt.savefig('gaps.png')

Alternatively, one can unpack the c2db.tar.gz file with tar -xf c2db.tar.gz and extract the gaps like this:

from pathlib import Path
import json

gw = []
hse = []
pbe = []
for path in Path().glob('materials/A*/*/*'):
    data = json.loads((path / 'data.json').read_text())
    if 'gap_gw' in data:
        gw.append(data['gap_gw'])
        hse.append(data['gap_hse'])
        pbe.append(data['gap'])
../_images/c2db-db.png