Skip to content

OrganicMaterialsDatabase/EBS-search

Repository files navigation

Online Search Tool for Graphical Patterns in Electronic Band Structures

This repository hosts the code and a test case for the paper arXiv:1710.11611. Tested with Python 3.6.5.

To see the tool in action, register for free at: omdb.diracmaterials.org

Installation

pip install -r requirements.txt

Example

This repository contains a data folder with a VASP calculation. You can add more calculations here, each folder should contain calculations for a single material.

Create an ANN (approximate nearest neighbours) index (see create_index.py for all options):

python create_index.py --band_index -1 --width 0.4 --dimensions 16 --trees 10

Perform the search for a crossing/node:

python search.py --band_index -1 --width 0.4 --dimensions 16 --pattern crossing

This prints the angular distance and the following plot should appear:

Search Result Dirac crossing

For reference, see the OMDB material information. Note that the lookup table also contains information about the gap between the two bands. On the OMDB this is used to apply post-processing to the search results (e.g. filtering out gapped matches).

Run the following commands to search the bands (-2,-1) for a parabola (Figure 8 in the paper):

python create_index.py --band_index -2 --width 0.4 --dimensions 16 --trees 10
python search.py --band_index -2 --width 0.4 --dimensions 16 --pattern parabola

Search Result Parabola crossing

To search for a mexican hat, increase the window size, resolution (dimensions):

python create_index.py --band_index -3 --width 0.8 --dimensions 64 --trees 10
python search.py --band_index -3 --width 0.8 --dimensions 64 --pattern mexican --search_k 200

Search Result Mexican hat

Test data

This repo contains a fake data generator lib/fake.py:

Fake data

python create_test_index.py --width 0.4 --dimensions 64 --trees 10
python test_search.py --width 0.4 --results 6 --dimensions 64 --pattern crossing

Test crossings

python test_search.py --width 0.4 --results 6 --dimensions 64 --pattern parabola

Test parabola

python test_search.py --width 0.4 --results 1 --dimensions 64 --pattern mexican

Test mexican

Releases

No releases published

Packages

No packages published

Languages