Hello all. I’m a nanoelectronics student and have been building an open tool for screening 2D semiconductors. I’d value this community’s view on both the method and the data issues below.
What it is. A five-member CGCNN ensemble (PyTorch Geometric) trained on 45k PBE monolayers - Alexandria 2D up to 1.0 eV/atom above the hull plus non-magnetic 2DMatPedia, all via JARVIS-Tools - that predicts the band gap from structure in under a second on a CPU. On a composition-disjoint test set of near-hull Alexandria monolayers it reaches MAE 0.19 eV; a Magpie + random-forest baseline gets 0.43 on the same set.
The verdict. Every prediction is tagged reliable / check / out-of-domain from three checks: a metal/semiconductor gate, the ensemble spread, and the distance to the training set in the model’s own latent space. Typical errors per tier are 0.10 / 0.17 / 0.35 eV, and the order holds on held-out metastable structures and on 2DMatPedia. The 90% interval is calibrated (91% coverage on the held-out test set). Linear heads on the latent space add G₀W₀-level and optical-gap estimates fitted on C2DB G₀W₀/BSE data, and a second ensemble predicts the work function, so both band edges can be placed against vacuum.
Data issues I ran into - possibly useful even if you never use the model:
-
Planar honeycombs in Alexandria 2D. Graphene is labelled 1.23 eV in one cell and 1.13 eV in another, where C2DB, 2DMatPedia and JARVIS dft_2d all give 0; planar silicene 0.86 eV against 0.00 in 2DMatPedia for the same layer; planar BP 1.31 eV in a 2-atom cell and 0.906 in three larger cells of the same layer (C2DB 0.90). That pattern looks like a k-point mesh that misses K.
-
Cell-dependent labels more generally. I found 62 structures stored in several Alexandria cells (same layer, same predicted gap to 0.05 eV) whose labels differ by more than 0.1 eV; in 37 of them the smallest cell has the highest gap. So the K-point explanation covers some of them but not all. The full list is in
data/reference_flags.csvin the repository. -
Matching slabs across databases. StructureMatcher’s
stolis normalised by (V/N)^(1/3), and in a slab V is mostly vacuum, so even tightened tolerances accept a planar and a buckled layer as the same structure (about 0.5 Å absolute). Requiring the layer thickness to agree within 0.2 Å fixed it; the threshold came from where the gap disagreement between matched pairs jumps (0.07 → 0.17 eV MAE). -
Spin-orbit coupling against C2DB. The model is 0.24 eV above C2DB on compounds containing an element with Z ≥ 52 and on target elsewhere, consistent with C2DB including SOC and Alexandria not.
Limits. PBE level without SOC; weakest on light-element chemistry (C, B, N, H), where training data is thin; the direct/indirect classifier is weak.
Browser with 28k precomputed predictions, filterable by application: https://ac1esan.github.io/nanomat-ai/ Code, model card, and the Colab notebook (MIT): https://github.com/ac1esan/nanomat-ai
I’d especially welcome corrections on points 1–2 from anyone who knows how the Alexandria 2D band structures were sampled, and on whether a verdict like this would be useful in your own screening work.