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
pip install -r requirements.txt
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:
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
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
This repo contains a fake data generator lib/fake.py:
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
python test_search.py --width 0.4 --results 6 --dimensions 64 --pattern parabola
python test_search.py --width 0.4 --results 1 --dimensions 64 --pattern mexican