diff --git a/.github/workflows/draft-PDF.yml b/.github/workflows/draft-PDF.yml new file mode 100644 index 0000000..f85b711 --- /dev/null +++ b/.github/workflows/draft-PDF.yml @@ -0,0 +1,23 @@ +on: [push] + +jobs: + paper: + runs-on: ubuntu-latest + name: Paper Draft + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Build draft PDF + uses: openjournals/openjournals-draft-action@master + with: + journal: joss + # This should be the path to the paper within your repo. + paper-path: paper/paper.md + - name: Upload + uses: actions/upload-artifact@v1 + with: + name: paper + # This is the output path where Pandoc will write the compiled + # PDF. Note, this should be the same directory as the input + # paper.md + path: paper/paper.pdf diff --git a/docs/index.md b/docs/index.md index c361fa0..952fb35 100644 --- a/docs/index.md +++ b/docs/index.md @@ -75,6 +75,10 @@ In principle, support for other plane wave DFT code can be added by: The Atomic Simulation Environment ([ASE](https://wiki.fysik.dtu.dk/ase/)) is used by `easyunfold` for reading in structures, so structure file IO is natively supported for essentially all public DFT codes. +In fact, ASE can already run band structure calculations using many plane-wave DFT codes. +However, reading the plane wave coefficients from calculation outputs is not widely supported yet, which are needed here for band unfolding. +Nevertheless, using ASE's existing IO framework to widen the code support can be a fruitful direction for further development. + ### Code Compatibility Notes - Atom-projected band structures are currently only supported for `VASP` calculation outputs. - Gamma-only and non-collinear spin calculations are not supported for `CASTEP`. @@ -88,13 +92,19 @@ And those who helped in the development: - [Joe Willis](https://github.com/joebesity) - [David O. Scanlon](http://davidscanlon.com/?page_id=5) -## Contributing + ## Bugs reports and feature requests Bug reports and feature requests are well come. If you found any bug or missing features please report it on the [Issue Tracker](https://github.com/SMTG-Bham/easyunfold/issues). -## Code contributions +## Seeking support + +If you need support about using the software, please open a ticket with the *help wanted* label on the [Issue Tracker](https://github.com/SMTG-Bham/easyunfold/issues). + +## Contributing + +### Code contributions We welcome your help in improving and extending the package with your own contributions. This is managed through GitHub pull requests; for external contributions, we prefer the @@ -110,6 +120,25 @@ workflow while core developers use branches in the main repository: project. A more detailed discussion can take place there before the changes are accepted. +### Development + +To develope the package, please clone it on GitHub and install it with the `doc` and `test` extras so all dependencies needed for development are installed: + +```bash +git clone https://github.com/SMTG-Bham/easyunfold +pip install -e "./easyunfold[doc,test]" +``` + +To run the tests, simply run the `pytest` command while in the top-level code repository. + +To build the documentation, run the `make html` command while in the `docs` directory. + +If you want to add new features, please also include a test case to check that they work as expected. +For more information please consult [pytest's documentation](https://docs.pytest.org). + +Please note that we use pre-commit hooks for code formatting and linting. +Please install them using `pre-commit install` so these hooks can run before committing code updates. + ```{toctree} :hidden: diff --git a/easyunfold/unfold.py b/easyunfold/unfold.py index a0b9f58..26d038c 100644 --- a/easyunfold/unfold.py +++ b/easyunfold/unfold.py @@ -47,7 +47,8 @@ def find_K_from_k(k: np.ndarray, M: np.ndarray): \\vec{k} = \\vec{K} + \\vec{G} $$ - where G is a reciprocal space vector of supercell + where G is a reciprocal space vector of supercell. + NOTE: M is the transformation matrix for the cell matrix consistent of row vectors! """ M = np.array(M) diff --git a/examples/MgO/conv_222/.gitattributes b/examples/MgO/conv_222/.gitattributes new file mode 100644 index 0000000..8e398d2 --- /dev/null +++ b/examples/MgO/conv_222/.gitattributes @@ -0,0 +1 @@ +easyunfold.json filter=lfs diff=lfs merge=lfs -text diff --git a/examples/MgO/conv_222/KPOINTS_band b/examples/MgO/conv_222/KPOINTS_band new file mode 100644 index 0000000..3f1b969 --- /dev/null +++ b/examples/MgO/conv_222/KPOINTS_band @@ -0,0 +1,278 @@ +\Gamma -> L -> W -> X -> \Gamma +275 +Reciprocal +0.0 0.0 0.0 1 \Gamma +0.006493506493506495 0.006493506493506495 0.006493506493506495 1 +0.01298701298701299 0.01298701298701299 0.01298701298701299 1 +0.01948051948051948 0.01948051948051948 0.01948051948051948 1 +0.02597402597402598 0.02597402597402598 0.02597402597402598 1 +0.032467532467532464 0.032467532467532464 0.032467532467532464 1 +0.03896103896103896 0.03896103896103896 0.03896103896103896 1 +0.04545454545454546 0.04545454545454546 0.04545454545454546 1 +0.05194805194805196 0.05194805194805196 0.05194805194805196 1 +0.05844155844155844 0.05844155844155844 0.05844155844155844 1 +0.06493506493506493 0.06493506493506493 0.06493506493506493 1 +0.07142857142857142 0.07142857142857142 0.07142857142857142 1 +0.07792207792207792 0.07792207792207792 0.07792207792207792 1 +0.08441558441558442 0.08441558441558442 0.08441558441558442 1 +0.09090909090909093 0.09090909090909093 0.09090909090909093 1 +0.09740259740259741 0.09740259740259741 0.09740259740259741 1 +0.10389610389610392 0.10389610389610392 0.10389610389610392 1 +0.11038961038961038 0.11038961038961038 0.11038961038961038 1 +0.11688311688311688 0.11688311688311688 0.11688311688311688 1 +0.12337662337662338 0.12337662337662338 0.12337662337662338 1 +0.12987012987012986 0.12987012987012986 0.12987012987012986 1 +0.13636363636363635 0.13636363636363635 0.13636363636363635 1 +0.14285714285714285 0.14285714285714285 0.14285714285714285 1 +0.14935064935064934 0.14935064935064934 0.14935064935064934 1 +0.15584415584415584 0.15584415584415584 0.15584415584415584 1 +0.16233766233766234 0.16233766233766234 0.16233766233766234 1 +0.16883116883116883 0.16883116883116883 0.16883116883116883 1 +0.17532467532467533 0.17532467532467533 0.17532467532467533 1 +0.18181818181818185 0.18181818181818185 0.18181818181818185 1 +0.18831168831168832 0.18831168831168832 0.18831168831168832 1 +0.19480519480519481 0.19480519480519481 0.19480519480519481 1 +0.2012987012987013 0.2012987012987013 0.2012987012987013 1 +0.20779220779220783 0.20779220779220783 0.20779220779220783 1 +0.21428571428571427 0.21428571428571427 0.21428571428571427 1 +0.22077922077922077 0.22077922077922077 0.22077922077922077 1 +0.2272727272727273 0.2272727272727273 0.2272727272727273 1 +0.23376623376623376 0.23376623376623376 0.23376623376623376 1 +0.24025974025974026 0.24025974025974026 0.24025974025974026 1 +0.24675324675324675 0.24675324675324675 0.24675324675324675 1 +0.2532467532467532 0.2532467532467532 0.2532467532467532 1 +0.2597402597402597 0.2597402597402597 0.2597402597402597 1 +0.2662337662337662 0.2662337662337662 0.2662337662337662 1 +0.2727272727272727 0.2727272727272727 0.2727272727272727 1 +0.2792207792207792 0.2792207792207792 0.2792207792207792 1 +0.2857142857142857 0.2857142857142857 0.2857142857142857 1 +0.2922077922077922 0.2922077922077922 0.2922077922077922 1 +0.2987012987012987 0.2987012987012987 0.2987012987012987 1 +0.3051948051948052 0.3051948051948052 0.3051948051948052 1 +0.3116883116883117 0.3116883116883117 0.3116883116883117 1 +0.3181818181818182 0.3181818181818182 0.3181818181818182 1 +0.3246753246753247 0.3246753246753247 0.3246753246753247 1 +0.33116883116883117 0.33116883116883117 0.33116883116883117 1 +0.33766233766233766 0.33766233766233766 0.33766233766233766 1 +0.34415584415584416 0.34415584415584416 0.34415584415584416 1 +0.35064935064935066 0.35064935064935066 0.35064935064935066 1 +0.35714285714285715 0.35714285714285715 0.35714285714285715 1 +0.3636363636363637 0.3636363636363637 0.3636363636363637 1 +0.37012987012987014 0.37012987012987014 0.37012987012987014 1 +0.37662337662337664 0.37662337662337664 0.37662337662337664 1 +0.3831168831168831 0.3831168831168831 0.3831168831168831 1 +0.38961038961038963 0.38961038961038963 0.38961038961038963 1 +0.3961038961038961 0.3961038961038961 0.3961038961038961 1 +0.4025974025974026 0.4025974025974026 0.4025974025974026 1 +0.4090909090909091 0.4090909090909091 0.4090909090909091 1 +0.41558441558441567 0.41558441558441567 0.41558441558441567 1 +0.422077922077922 0.422077922077922 0.422077922077922 1 +0.42857142857142855 0.42857142857142855 0.42857142857142855 1 +0.43506493506493504 0.43506493506493504 0.43506493506493504 1 +0.44155844155844154 0.44155844155844154 0.44155844155844154 1 +0.44805194805194803 0.44805194805194803 0.44805194805194803 1 +0.4545454545454546 0.4545454545454546 0.4545454545454546 1 +0.461038961038961 0.461038961038961 0.461038961038961 1 +0.4675324675324675 0.4675324675324675 0.4675324675324675 1 +0.47402597402597396 0.47402597402597396 0.47402597402597396 1 +0.4805194805194805 0.4805194805194805 0.4805194805194805 1 +0.487012987012987 0.487012987012987 0.487012987012987 1 +0.4935064935064935 0.4935064935064935 0.4935064935064935 1 +0.5 0.5 0.5 1 L +0.5 0.49603174603174605 0.503968253968254 1 +0.5 0.4920634920634921 0.5079365079365079 1 +0.5 0.4880952380952381 0.5119047619047619 1 +0.5 0.4841269841269841 0.5158730158730158 1 +0.5 0.4801587301587302 0.5198412698412698 1 +0.5 0.47619047619047616 0.5238095238095238 1 +0.5 0.4722222222222222 0.5277777777777778 1 +0.5 0.46825396825396826 0.5317460317460317 1 +0.5 0.4642857142857143 0.5357142857142857 1 +0.5 0.46031746031746035 0.5396825396825397 1 +0.5 0.45634920634920634 0.5436507936507937 1 +0.5 0.45238095238095244 0.5476190476190477 1 +0.5 0.44841269841269843 0.5515873015873016 1 +0.5 0.4444444444444444 0.5555555555555556 1 +0.5 0.44047619047619047 0.5595238095238095 1 +0.5 0.4365079365079365 0.5634920634920635 1 +0.5 0.43253968253968256 0.5674603174603174 1 +0.5 0.4285714285714286 0.5714285714285714 1 +0.5 0.4246031746031746 0.5753968253968254 1 +0.5 0.4206349206349206 0.5793650793650793 1 +0.5 0.41666666666666663 0.5833333333333333 1 +0.49999999999999994 0.4126984126984127 0.5873015873015872 1 +0.49999999999999994 0.4087301587301587 0.5912698412698412 1 +0.5 0.40476190476190477 0.5952380952380952 1 +0.5 0.4007936507936508 0.5992063492063492 1 +0.5 0.3968253968253968 0.6031746031746033 1 +0.5 0.39285714285714285 0.6071428571428572 1 +0.5 0.3888888888888889 0.6111111111111112 1 +0.5 0.3849206349206349 0.6150793650793651 1 +0.5 0.38095238095238093 0.6190476190476191 1 +0.5 0.376984126984127 0.623015873015873 1 +0.5 0.373015873015873 0.626984126984127 1 +0.5 0.369047619047619 0.6309523809523809 1 +0.5 0.36507936507936506 0.6349206349206349 1 +0.5 0.36111111111111105 0.6388888888888888 1 +0.49999999999999994 0.35714285714285715 0.6428571428571428 1 +0.5 0.35317460317460314 0.6468253968253969 1 +0.49999999999999994 0.3492063492063492 0.6507936507936507 1 +0.5 0.34523809523809523 0.6547619047619049 1 +0.5 0.3412698412698413 0.6587301587301587 1 +0.49999999999999994 0.33730158730158727 0.6626984126984127 1 +0.49999999999999994 0.3333333333333333 0.6666666666666666 1 +0.5 0.32936507936507936 0.6706349206349207 1 +0.49999999999999994 0.32539682539682535 0.6746031746031746 1 +0.5 0.3214285714285714 0.6785714285714286 1 +0.5 0.31746031746031744 0.6825396825396826 1 +0.5 0.3134920634920635 0.6865079365079365 1 +0.5 0.30952380952380953 0.6904761904761905 1 +0.49999999999999994 0.3055555555555555 0.6944444444444444 1 +0.5 0.30158730158730157 0.6984126984126984 1 +0.5 0.2976190476190476 0.7023809523809524 1 +0.5 0.2936507936507936 0.7063492063492064 1 +0.5 0.28968253968253965 0.7103174603174603 1 +0.5 0.2857142857142857 0.7142857142857143 1 +0.4999999999999999 0.2817460317460317 0.7182539682539681 1 +0.49999999999999994 0.2777777777777778 0.7222222222222221 1 +0.49999999999999994 0.2738095238095238 0.7261904761904762 1 +0.5000000000000001 0.2698412698412698 0.7301587301587302 1 +0.5 0.26587301587301587 0.7341269841269842 1 +0.49999999999999994 0.26190476190476186 0.7380952380952381 1 +0.49999999999999994 0.2579365079365079 0.7420634920634921 1 +0.49999999999999994 0.25396825396825395 0.746031746031746 1 +0.5 0.24999999999999997 0.75 1 W +0.5 0.2444444444444444 0.7444444444444445 1 +0.5 0.23888888888888887 0.7388888888888889 1 +0.5 0.2333333333333333 0.7333333333333334 1 +0.5 0.22777777777777775 0.7277777777777777 1 +0.5 0.2222222222222222 0.7222222222222222 1 +0.5 0.21666666666666665 0.7166666666666667 1 +0.5 0.21111111111111108 0.7111111111111111 1 +0.5 0.20555555555555555 0.7055555555555556 1 +0.5 0.19999999999999998 0.7 1 +0.5 0.19444444444444442 0.6944444444444444 1 +0.5 0.18888888888888888 0.6888888888888889 1 +0.5 0.18333333333333335 0.6833333333333333 1 +0.5 0.1777777777777778 0.6777777777777778 1 +0.5 0.17222222222222225 0.6722222222222223 1 +0.5 0.16666666666666666 0.6666666666666666 1 +0.5 0.1611111111111111 0.6611111111111111 1 +0.5 0.15555555555555556 0.6555555555555556 1 +0.5 0.15 0.65 1 +0.5 0.14444444444444446 0.6444444444444445 1 +0.5 0.1388888888888889 0.6388888888888888 1 +0.5 0.13333333333333333 0.6333333333333333 1 +0.5 0.1277777777777778 0.6277777777777778 1 +0.5 0.12222222222222222 0.6222222222222222 1 +0.5 0.11666666666666665 0.6166666666666667 1 +0.5 0.11111111111111109 0.6111111111111112 1 +0.5 0.10555555555555556 0.6055555555555556 1 +0.5 0.09999999999999999 0.6 1 +0.5 0.09444444444444444 0.5944444444444444 1 +0.5 0.08888888888888888 0.5888888888888889 1 +0.5 0.08333333333333333 0.5833333333333334 1 +0.5 0.07777777777777777 0.5777777777777777 1 +0.5 0.0722222222222222 0.5722222222222222 1 +0.5 0.06666666666666667 0.5666666666666667 1 +0.5 0.061111111111111095 0.5611111111111111 1 +0.5 0.05555555555555556 0.5555555555555556 1 +0.5 0.049999999999999996 0.55 1 +0.5 0.04444444444444447 0.5444444444444445 1 +0.5 0.0388888888888889 0.5388888888888889 1 +0.5 0.03333333333333333 0.5333333333333333 1 +0.5 0.0277777777777778 0.5277777777777778 1 +0.5 0.022222222222222233 0.5222222222222223 1 +0.5 0.016666666666666666 0.5166666666666667 1 +0.5 0.0111111111111111 0.5111111111111111 1 +0.5 0.005555555555555568 0.5055555555555555 1 +0.5 0.0 0.5 1 X +0.4943820224719101 0.0 0.4943820224719101 1 +0.48876404494382025 0.0 0.48876404494382025 1 +0.48314606741573035 0.0 0.48314606741573035 1 +0.4775280898876405 0.0 0.4775280898876405 1 +0.47191011235955055 0.0 0.47191011235955055 1 +0.46629213483146065 0.0 0.46629213483146065 1 +0.4606741573033708 0.0 0.4606741573033708 1 +0.4550561797752809 0.0 0.4550561797752809 1 +0.44943820224719105 0.0 0.44943820224719105 1 +0.44382022471910115 0.0 0.44382022471910115 1 +0.43820224719101125 0.0 0.43820224719101125 1 +0.4325842696629214 0.0 0.4325842696629214 1 +0.42696629213483145 0.0 0.42696629213483145 1 +0.42134831460674155 0.0 0.42134831460674155 1 +0.4157303370786517 0.0 0.4157303370786517 1 +0.4101123595505618 0.0 0.4101123595505618 1 +0.4044943820224719 0.0 0.4044943820224719 1 +0.39887640449438205 0.0 0.39887640449438205 1 +0.3932584269662921 0.0 0.3932584269662921 1 +0.3876404494382023 0.0 0.3876404494382023 1 +0.38202247191011235 0.0 0.38202247191011235 1 +0.3764044943820225 0.0 0.3764044943820225 1 +0.3707865168539326 0.0 0.3707865168539326 1 +0.3651685393258427 0.0 0.3651685393258427 1 +0.35955056179775285 0.0 0.35955056179775285 1 +0.35393258426966295 0.0 0.35393258426966295 1 +0.348314606741573 0.0 0.348314606741573 1 +0.34269662921348315 0.0 0.34269662921348315 1 +0.33707865168539325 0.0 0.33707865168539325 1 +0.3314606741573034 0.0 0.3314606741573034 1 +0.32584269662921345 0.0 0.32584269662921345 1 +0.3202247191011236 0.0 0.3202247191011236 1 +0.3146067415730337 0.0 0.3146067415730337 1 +0.3089887640449438 0.0 0.3089887640449438 1 +0.30337078651685395 0.0 0.30337078651685395 1 +0.29775280898876405 0.0 0.29775280898876405 1 +0.29213483146067415 0.0 0.29213483146067415 1 +0.28651685393258425 0.0 0.28651685393258425 1 +0.2808988764044944 0.0 0.2808988764044944 1 +0.2752808988764045 0.0 0.2752808988764045 1 +0.2696629213483146 0.0 0.2696629213483146 1 +0.2640449438202247 0.0 0.2640449438202247 1 +0.25842696629213485 0.0 0.25842696629213485 1 +0.25280898876404495 0.0 0.25280898876404495 1 +0.24719101123595505 0.0 0.24719101123595505 1 +0.24157303370786518 0.0 0.24157303370786518 1 +0.23595505617977527 0.0 0.23595505617977527 1 +0.2303370786516854 0.0 0.2303370786516854 1 +0.2247191011235955 0.0 0.2247191011235955 1 +0.21910112359550563 0.0 0.21910112359550563 1 +0.21348314606741578 0.0 0.21348314606741578 1 +0.20786516853932585 0.0 0.20786516853932585 1 +0.20224719101123595 0.0 0.20224719101123595 1 +0.19662921348314605 0.0 0.19662921348314605 1 +0.19101123595505623 0.0 0.19101123595505623 1 +0.1853932584269663 0.0 0.1853932584269663 1 +0.1797752808988764 0.0 0.1797752808988764 1 +0.1741573033707865 0.0 0.1741573033707865 1 +0.16853932584269665 0.0 0.16853932584269665 1 +0.16292134831460675 0.0 0.16292134831460675 1 +0.15730337078651682 0.0 0.15730337078651682 1 +0.15168539325842692 0.0 0.15168539325842692 1 +0.14606741573033707 0.0 0.14606741573033707 1 +0.14044943820224723 0.0 0.14044943820224723 1 +0.13483146067415733 0.0 0.13483146067415733 1 +0.1292134831460674 0.0 0.1292134831460674 1 +0.12359550561797757 0.0 0.12359550561797757 1 +0.11797752808988764 0.0 0.11797752808988764 1 +0.11235955056179772 0.0 0.11235955056179772 1 +0.10674157303370789 0.0 0.10674157303370789 1 +0.10112359550561797 0.0 0.10112359550561797 1 +0.09550561797752813 0.0 0.09550561797752813 1 +0.08988764044943821 0.0 0.08988764044943821 1 +0.0842696629213483 0.0 0.0842696629213483 1 +0.07865168539325845 0.0 0.07865168539325845 1 +0.07303370786516854 0.0 0.07303370786516854 1 +0.06741573033707862 0.0 0.06741573033707862 1 +0.06179775280898878 0.0 0.06179775280898878 1 +0.05617977528089894 0.0 0.05617977528089894 1 +0.05056179775280902 0.0 0.05056179775280902 1 +0.04494382022471911 0.0 0.04494382022471911 1 +0.03932584269662919 0.0 0.03932584269662919 1 +0.033707865168539346 0.0 0.033707865168539346 1 +0.02808988764044943 0.0 0.02808988764044943 1 +0.022471910112359515 0.0 0.022471910112359515 1 +0.016853932584269673 0.0 0.016853932584269673 1 +0.011235955056179832 0.0 0.011235955056179832 1 +0.005617977528089916 0.0 0.005617977528089916 1 +0.0 0.0 0.0 1 \Gamma diff --git a/examples/MgO/conv_222/KPOINTS_easyunfold b/examples/MgO/conv_222/KPOINTS_easyunfold new file mode 100644 index 0000000..22a52e0 --- /dev/null +++ b/examples/MgO/conv_222/KPOINTS_easyunfold @@ -0,0 +1,239 @@ +supercell kpoints +236 +Rec + -0.49350649 -0.49350649 -0.49350649 1.0 + -0.49350649 0.49350649 -0.49350649 1.0 + -0.49206349 0.00000000 0.49206349 1.0 + -0.48888889 0.00000000 0.00000000 1.0 + -0.48051948 -0.48051948 -0.48051948 1.0 + -0.48051948 0.48051948 -0.48051948 1.0 + -0.47619048 0.00000000 0.47619048 1.0 + -0.46753247 -0.46753247 -0.46753247 1.0 + -0.46753247 0.46753247 -0.46753247 1.0 + -0.46666667 0.00000000 0.00000000 1.0 + -0.46031746 0.00000000 0.46031746 1.0 + -0.45454545 -0.45454545 -0.45454545 1.0 + -0.45454545 0.45454545 -0.45454545 1.0 + -0.44444444 0.00000000 0.00000000 1.0 + -0.44444444 0.00000000 0.44444444 1.0 + -0.44155844 -0.44155844 -0.44155844 1.0 + -0.44155844 0.44155844 -0.44155844 1.0 + -0.42857143 -0.42857143 -0.42857143 1.0 + -0.42857143 0.00000000 0.42857143 1.0 + -0.42857143 0.42857143 -0.42857143 1.0 + -0.42222222 0.00000000 0.00000000 1.0 + -0.41558442 -0.41558442 -0.41558442 1.0 + -0.41558442 0.41558442 -0.41558442 1.0 + -0.41269841 0.00000000 0.41269841 1.0 + -0.40259740 -0.40259740 -0.40259740 1.0 + -0.40259740 0.40259740 -0.40259740 1.0 + -0.40000000 0.00000000 0.00000000 1.0 + -0.39682540 0.00000000 0.39682540 1.0 + -0.38961039 -0.38961039 -0.38961039 1.0 + -0.38961039 0.38961039 -0.38961039 1.0 + -0.38095238 -0.00000000 0.38095238 1.0 + -0.37777778 0.00000000 0.00000000 1.0 + -0.37662338 -0.37662338 -0.37662338 1.0 + -0.37662338 0.37662338 -0.37662338 1.0 + -0.36507937 0.00000000 0.36507937 1.0 + -0.36363636 -0.36363636 -0.36363636 1.0 + -0.36363636 0.36363636 -0.36363636 1.0 + -0.35555556 0.00000000 0.00000000 1.0 + -0.35064935 -0.35064935 -0.35064935 1.0 + -0.35064935 0.35064935 -0.35064935 1.0 + -0.34920635 0.00000000 0.34920635 1.0 + -0.33766234 -0.33766234 -0.33766234 1.0 + -0.33766234 0.33766234 -0.33766234 1.0 + -0.33333333 0.00000000 0.00000000 1.0 + -0.33333333 0.00000000 0.33333333 1.0 + -0.32467532 -0.32467532 -0.32467532 1.0 + -0.32467532 0.32467532 -0.32467532 1.0 + -0.31746032 0.00000000 0.31746032 1.0 + -0.31168831 -0.31168831 -0.31168831 1.0 + -0.31168831 0.31168831 -0.31168831 1.0 + -0.31111111 0.00000000 0.00000000 1.0 + -0.30158730 0.00000000 0.30158730 1.0 + -0.29870130 -0.29870130 -0.29870130 1.0 + -0.29870130 0.29870130 -0.29870130 1.0 + -0.28888889 0.00000000 0.00000000 1.0 + -0.28571429 -0.28571429 -0.28571429 1.0 + -0.28571429 0.00000000 0.28571429 1.0 + -0.28571429 0.28571429 -0.28571429 1.0 + -0.27272727 -0.27272727 -0.27272727 1.0 + -0.27272727 0.27272727 -0.27272727 1.0 + -0.26984127 0.00000000 0.26984127 1.0 + -0.26666667 0.00000000 0.00000000 1.0 + -0.25974026 -0.25974026 -0.25974026 1.0 + -0.25974026 0.25974026 -0.25974026 1.0 + -0.25396825 0.00000000 0.25396825 1.0 + -0.24675325 -0.24675325 -0.24675325 1.0 + -0.24675325 0.24675325 -0.24675325 1.0 + -0.24444444 0.00000000 0.00000000 1.0 + -0.23809524 0.00000000 0.23809524 1.0 + -0.23376623 -0.23376623 -0.23376623 1.0 + -0.23376623 0.23376623 -0.23376623 1.0 + -0.22222222 0.00000000 0.00000000 1.0 + -0.22222222 0.00000000 0.22222222 1.0 + -0.22077922 -0.22077922 -0.22077922 1.0 + -0.22077922 0.22077922 -0.22077922 1.0 + -0.20779221 -0.20779221 -0.20779221 1.0 + -0.20779221 0.20779221 -0.20779221 1.0 + -0.20634921 0.00000000 0.20634921 1.0 + -0.20000000 0.00000000 0.00000000 1.0 + -0.19480519 -0.19480519 -0.19480519 1.0 + -0.19480519 0.19480519 -0.19480519 1.0 + -0.19047619 0.00000000 0.19047619 1.0 + -0.18181818 -0.18181818 -0.18181818 1.0 + -0.18181818 0.18181818 -0.18181818 1.0 + -0.17777778 0.00000000 -0.00000000 1.0 + -0.17460317 0.00000000 0.17460317 1.0 + -0.16883117 -0.16883117 -0.16883117 1.0 + -0.16883117 0.16883117 -0.16883117 1.0 + -0.15873016 0.00000000 0.15873016 1.0 + -0.15584416 -0.15584416 -0.15584416 1.0 + -0.15584416 0.15584416 -0.15584416 1.0 + -0.15555556 0.00000000 -0.00000000 1.0 + -0.14285714 -0.14285714 -0.14285714 1.0 + -0.14285714 0.00000000 0.14285714 1.0 + -0.14285714 0.14285714 -0.14285714 1.0 + -0.13333333 0.00000000 0.00000000 1.0 + -0.12987013 -0.12987013 -0.12987013 1.0 + -0.12987013 0.12987013 -0.12987013 1.0 + -0.12698413 0.00000000 0.12698413 1.0 + -0.11688312 -0.11688312 -0.11688312 1.0 + -0.11688312 0.11688312 -0.11688312 1.0 + -0.11111111 0.00000000 0.00000000 1.0 + -0.11111111 0.00000000 0.11111111 1.0 + -0.10389610 -0.10389610 -0.10389610 1.0 + -0.10389610 0.10389610 -0.10389610 1.0 + -0.09523810 0.00000000 0.09523810 1.0 + -0.09090909 -0.09090909 -0.09090909 1.0 + -0.09090909 0.09090909 -0.09090909 1.0 + -0.08888889 0.00000000 0.00000000 1.0 + -0.07936508 0.00000000 0.07936508 1.0 + -0.07792208 -0.07792208 -0.07792208 1.0 + -0.07792208 0.07792208 -0.07792208 1.0 + -0.06666667 0.00000000 -0.00000000 1.0 + -0.06493506 -0.06493506 -0.06493506 1.0 + -0.06493506 0.06493506 -0.06493506 1.0 + -0.06349206 0.00000000 0.06349206 1.0 + -0.05194805 -0.05194805 -0.05194805 1.0 + -0.05194805 0.05194805 -0.05194805 1.0 + -0.04761905 0.00000000 0.04761905 1.0 + -0.04444444 0.00000000 0.00000000 1.0 + -0.03896104 -0.03896104 -0.03896104 1.0 + -0.03896104 0.03896104 -0.03896104 1.0 + -0.03174603 0.00000000 0.03174603 1.0 + -0.02597403 -0.02597403 -0.02597403 1.0 + -0.02597403 0.02597403 -0.02597403 1.0 + -0.02222222 0.00000000 0.00000000 1.0 + -0.01587302 0.00000000 0.01587302 1.0 + -0.01298701 -0.01298701 -0.01298701 1.0 + -0.01298701 0.01298701 -0.01298701 1.0 + 0.00000000 -0.49438202 0.00000000 1.0 + 0.00000000 -0.49206349 -0.49206349 1.0 + 0.00000000 -0.49206349 0.49206349 1.0 + 0.00000000 -0.48314607 0.00000000 1.0 + 0.00000000 -0.47619048 -0.47619048 1.0 + 0.00000000 -0.47619048 0.47619048 1.0 + 0.00000000 -0.47191011 0.00000000 1.0 + 0.00000000 -0.46067416 0.00000000 1.0 + 0.00000000 -0.46031746 -0.46031746 1.0 + 0.00000000 -0.46031746 0.46031746 1.0 + 0.00000000 -0.44943820 0.00000000 1.0 + 0.00000000 -0.44444444 -0.44444444 1.0 + -0.00000000 -0.44444444 0.44444444 1.0 + 0.00000000 -0.43820225 0.00000000 1.0 + 0.00000000 -0.42857143 -0.42857143 1.0 + 0.00000000 -0.42857143 0.42857143 1.0 + 0.00000000 -0.42696629 0.00000000 1.0 + 0.00000000 -0.41573034 0.00000000 1.0 + 0.00000000 -0.41269841 -0.41269841 1.0 + 0.00000000 -0.41269841 0.41269841 1.0 + 0.00000000 -0.40449438 0.00000000 1.0 + 0.00000000 -0.39682540 -0.39682540 1.0 + 0.00000000 -0.39682540 0.39682540 1.0 + 0.00000000 -0.39325843 0.00000000 1.0 + 0.00000000 -0.38202247 0.00000000 1.0 + 0.00000000 -0.38095238 -0.38095238 1.0 + 0.00000000 -0.38095238 0.38095238 1.0 + 0.00000000 -0.37078652 0.00000000 1.0 + 0.00000000 -0.36507937 -0.36507937 1.0 + 0.00000000 -0.36507937 0.36507937 1.0 + 0.00000000 -0.35955056 0.00000000 1.0 + 0.00000000 -0.34920635 -0.34920635 1.0 + 0.00000000 -0.34920635 0.34920635 1.0 + 0.00000000 -0.34831461 0.00000000 1.0 + 0.00000000 -0.33707865 0.00000000 1.0 + 0.00000000 -0.33333333 -0.33333333 1.0 + 0.00000000 -0.33333333 0.33333333 1.0 + 0.00000000 -0.32584270 0.00000000 1.0 + 0.00000000 -0.31746032 -0.31746032 1.0 + 0.00000000 -0.31746032 0.31746032 1.0 + 0.00000000 -0.31460674 0.00000000 1.0 + 0.00000000 -0.30337079 0.00000000 1.0 + 0.00000000 -0.30158730 -0.30158730 1.0 + 0.00000000 -0.30158730 0.30158730 1.0 + 0.00000000 -0.29213483 0.00000000 1.0 + 0.00000000 -0.28571429 -0.28571429 1.0 + 0.00000000 -0.28571429 0.28571429 1.0 + 0.00000000 -0.28089888 0.00000000 1.0 + 0.00000000 -0.26984127 -0.26984127 1.0 + 0.00000000 -0.26984127 0.26984127 1.0 + 0.00000000 -0.26966292 0.00000000 1.0 + 0.00000000 -0.25842697 0.00000000 1.0 + 0.00000000 -0.25396825 -0.25396825 1.0 + 0.00000000 -0.25396825 0.25396825 1.0 + 0.00000000 -0.24719101 0.00000000 1.0 + 0.00000000 -0.23809524 -0.23809524 1.0 + 0.00000000 -0.23809524 0.23809524 1.0 + 0.00000000 -0.23595506 0.00000000 1.0 + 0.00000000 -0.22471910 0.00000000 1.0 + 0.00000000 -0.22222222 -0.22222222 1.0 + 0.00000000 -0.22222222 0.22222222 1.0 + 0.00000000 -0.21348315 0.00000000 1.0 + 0.00000000 -0.20634921 -0.20634921 1.0 + 0.00000000 -0.20634921 0.20634921 1.0 + 0.00000000 -0.20224719 0.00000000 1.0 + 0.00000000 -0.19101124 0.00000000 1.0 + -0.00000000 -0.19047619 -0.19047619 1.0 + 0.00000000 -0.19047619 0.19047619 1.0 + 0.00000000 -0.17977528 0.00000000 1.0 + 0.00000000 -0.17460317 -0.17460317 1.0 + 0.00000000 -0.17460317 0.17460317 1.0 + 0.00000000 -0.16853933 0.00000000 1.0 + 0.00000000 -0.15873016 -0.15873016 1.0 + 0.00000000 -0.15873016 0.15873016 1.0 + 0.00000000 -0.15730337 0.00000000 1.0 + 0.00000000 -0.14606742 0.00000000 1.0 + 0.00000000 -0.14285714 -0.14285714 1.0 + 0.00000000 -0.14285714 0.14285714 1.0 + 0.00000000 -0.13483146 0.00000000 1.0 + 0.00000000 -0.12698413 -0.12698413 1.0 + 0.00000000 -0.12698413 0.12698413 1.0 + 0.00000000 -0.12359551 0.00000000 1.0 + 0.00000000 -0.11235955 0.00000000 1.0 + 0.00000000 -0.11111111 -0.11111111 1.0 + 0.00000000 -0.11111111 0.11111111 1.0 + 0.00000000 -0.10112360 0.00000000 1.0 + 0.00000000 -0.09523810 -0.09523810 1.0 + 0.00000000 -0.09523810 0.09523810 1.0 + 0.00000000 -0.08988764 0.00000000 1.0 + 0.00000000 -0.07936508 -0.07936508 1.0 + 0.00000000 -0.07936508 0.07936508 1.0 + 0.00000000 -0.07865169 0.00000000 1.0 + 0.00000000 -0.06741573 0.00000000 1.0 + 0.00000000 -0.06349206 -0.06349206 1.0 + 0.00000000 -0.06349206 0.06349206 1.0 + 0.00000000 -0.05617978 0.00000000 1.0 + 0.00000000 -0.04761905 -0.04761905 1.0 + 0.00000000 -0.04761905 0.04761905 1.0 + 0.00000000 -0.04494382 0.00000000 1.0 + 0.00000000 -0.03370787 0.00000000 1.0 + 0.00000000 -0.03174603 -0.03174603 1.0 + 0.00000000 -0.03174603 0.03174603 1.0 + 0.00000000 -0.02247191 0.00000000 1.0 + 0.00000000 -0.01587302 -0.01587302 1.0 + 0.00000000 -0.01587302 0.01587302 1.0 + 0.00000000 -0.01123596 0.00000000 1.0 + 0.00000000 0.00000000 0.00000000 1.0 diff --git a/examples/MgO/conv_222/MgO_super_defect_relax/INCAR b/examples/MgO/conv_222/MgO_super_defect_relax/INCAR new file mode 100755 index 0000000..59deca5 --- /dev/null +++ b/examples/MgO/conv_222/MgO_super_defect_relax/INCAR @@ -0,0 +1,26 @@ +ALGO = normal +ISYM = 0 +IBRION = 1 +ISIF = 2 +POTIM = 0.05 +EDIFF = 1e-6 +EDIFFG = -1e-2 +NELMIN = 10 +ENCUT = 520 +ISPIN = 1 +LASPH = True +LREAL = Auto +LWAVE = .TRUE. +NELM = 100 +NCORE = 4 +NSW = 30 +PREC = normal +SIGMA = 0.05 +LCHARG = .TRUE. +KPAR = 4 +! NSCF +!ICHARG = 11 +!LORBIT = 11 + +! +2 Charge state +!NELECT = 248 diff --git a/examples/MgO/conv_222/MgO_super_defect_relax/KPOINTS_scf b/examples/MgO/conv_222/MgO_super_defect_relax/KPOINTS_scf new file mode 100755 index 0000000..19d1f56 --- /dev/null +++ b/examples/MgO/conv_222/MgO_super_defect_relax/KPOINTS_scf @@ -0,0 +1,4 @@ +pymatgen with grid density = 777 / number of atoms +0 +Monkhorst +5 5 5 diff --git a/examples/MgO/conv_222/MgO_super_defect_relax/POSCAR b/examples/MgO/conv_222/MgO_super_defect_relax/POSCAR new file mode 100644 index 0000000..9b150ee --- /dev/null +++ b/examples/MgO/conv_222/MgO_super_defect_relax/POSCAR @@ -0,0 +1,135 @@ +Mg32 O32 + 1.0000000000000000 + 8.4956778156853243 0.0000000000000000 0.0000000000000005 + 0.0000000000000014 8.4956778156853243 0.0000000000000005 + 0.0000000000000000 0.0000000000000000 8.4956778156853243 + Mg O + 32 31 +Direct + -0.0016152928873958 0.0000000004519022 -0.0000000304511557 + -0.0004470891893580 0.0000000002440724 0.4999999849049174 + -0.0004470963464889 0.5000000003820025 -0.0000000157762507 + -0.0001242717548599 0.5000000001673265 0.4999999999882378 + 0.5016152921322088 -0.0000000002388190 0.0000000309131150 + 0.5004470890312867 -0.0000000002473308 0.5000000154341162 + 0.5004470965562885 0.4999999997328700 0.0000000156407258 + 0.5001242723572038 0.4999999995756366 0.5000000000322009 + 0.0000507380994957 0.2499492631510444 0.2499492618162935 + 0.0000507371406376 0.2499492622671484 0.7500507378909449 + 0.0000507373551148 0.7500507374191385 0.2499492310443985 + 0.0000507385411931 0.7500507380858783 0.7500507076006285 + 0.4999492612830361 0.2499492617974806 0.2499492925122241 + 0.4999492620682636 0.2499492630297730 0.7500507687923634 + 0.4999492630796261 0.7500507376764577 0.2499492617809291 + 0.4999492616560993 0.7500507364330650 0.7500507384254508 + 0.2500000042560678 0.0000000043315887 0.2516152916212595 + 0.2499999956587638 -0.0000000044907643 0.7483847083908655 + 0.2500000017964669 0.4999999973354392 0.2504470936734289 + 0.2499999985406116 0.5000000025575375 0.7495529061463079 + 0.7499999977727252 0.0000000019471264 0.2504470932943654 + 0.7500000023715055 -0.0000000017765640 0.7495529071335706 + 0.7499999977941328 0.4999999980518836 0.2501242749239814 + 0.7500000018871731 0.5000000021034884 0.7498757249837427 + 0.2499999996151225 0.2516152922394923 0.0000000306396517 + 0.2499999996351503 0.2504470895286053 0.5000000149781284 + 0.2500000003970826 0.7483847078725963 -0.0000000308853073 + 0.2500000001495071 0.7495529100969101 0.4999999847141553 + 0.7499999995855989 0.2504470963290935 0.0000000158233011 + 0.7499999997138936 0.2501242729988962 0.4999999998183328 + 0.7500000004852855 0.7495529038693386 -0.0000000156280378 + 0.7500000002257937 0.7498757269471876 0.5000000000525047 + 0.2500000002518250 -0.0000000001318314 0.4999999998096785 + 0.2499999996754202 0.5000000000329053 -0.0000000003335970 + 0.2500000002943597 0.4999999993071257 0.5000000000062484 + 0.7499999998590672 0.0000000004090528 0.0000000000315747 + 0.7500000007459987 -0.0000000000842692 0.5000000003189782 + 0.7500000002674118 0.5000000004382384 0.0000000002187511 + 0.7500000002693797 0.5000000000739673 0.4999999998440059 + 0.2499999847649344 0.2505865212939646 0.2505866081512477 + 0.2500000146392703 0.2505865152186373 0.7494135832875659 + 0.2499999856729801 0.7494134869120022 0.2505864147968282 + 0.2500000155653697 0.7494134767033322 0.7494133938344512 + 0.7500000157027233 0.2500208165046435 0.2500208349055497 + 0.7499999838666327 0.2500208164195023 0.7499791846637647 + 0.7500000162125698 0.7499791840655199 0.2500208139537837 + 0.7499999842776361 0.7499791838167715 0.7499791642933600 + -0.0005865144611853 -0.0000000137145234 0.2505864168691576 + -0.0005865202746003 0.0000000148710407 0.7494133916645710 + -0.0000208161656895 0.5000000153361146 0.2500208129316928 + -0.0000208184187331 0.4999999856187035 0.7499791646542532 + 0.5005865213526366 -0.0000000145176455 0.2505866072980524 + 0.5005865124163376 0.0000000137350278 0.7494135841960151 + 0.5000208187472617 0.5000000140999872 0.2500208357202199 + 0.5000208141218522 0.4999999845702975 0.7499791882432641 + -0.0005865349926775 0.2505865374201298 0.0000000003963662 + -0.0000207981312287 0.2500207971190392 0.4999999994787988 + -0.0005865368330227 0.7494134639319439 -0.0000001904797182 + -0.0000207991909325 0.7499792021291962 0.4999999834324346 + 0.5005865352578395 0.2505865380778226 0.0000001904483535 + 0.5000207994508978 0.2500207981142631 0.5000000167556894 + 0.5005865365728148 0.7494134608509536 -0.0000000006037848 + 0.5000207994756105 0.7499792015085911 0.5000000009830502 + + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 diff --git a/examples/MgO/conv_222/MgO_super_defect_relax/run.sh b/examples/MgO/conv_222/MgO_super_defect_relax/run.sh new file mode 100644 index 0000000..e9e3e3e --- /dev/null +++ b/examples/MgO/conv_222/MgO_super_defect_relax/run.sh @@ -0,0 +1,10 @@ +cp KPOINTS_scf KPOINTS +rm WAVECAR CHGCAR CHG +exe="mpirun -np 4 singularity run ~/appdir/vasp-6.3.0-fftw-openblas.sif vasp_std" +sed -i 's/.*ICHARG.*/ICHARG = 2/g' INCAR +echo "Running SCF" +eval $exe +sed -i 's/.*ICHARG.*/ICHARG = 11/g' INCAR +cp KPOINTS_easyunfold KPOINTS +echo "Running BS" +eval $exe diff --git a/examples/MgO/conv_222/README.md b/examples/MgO/conv_222/README.md new file mode 100644 index 0000000..b945560 --- /dev/null +++ b/examples/MgO/conv_222/README.md @@ -0,0 +1,18 @@ +## MgO defect cell + +This folder contains an example of perform band unfolding of a supercell containing a single oxygen vacancy defect in 2+ charge state. + +The defect in the middle of the band gap can be seed in the unfolded effective band structure. + +Using atomic projection, we can identify the defect level as a mixture of the Mg and O states, which is similar to that of the conduction band minimum. +However, the flatness of the defect level suggests that the defect state is localised. + +```{figure} unfold_project.png +:width: 400px + +Unfolded band structure of a supercell containing a single oxygen vacancy in 2+ charge state. +``` + +```{warning} +The calculation settings are for illustration purpose only - they are not for obtaining accurate, converged results. +``` diff --git a/examples/MgO/conv_222/easyunfold.json b/examples/MgO/conv_222/easyunfold.json new file mode 100644 index 0000000..5813206 --- /dev/null +++ b/examples/MgO/conv_222/easyunfold.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4343930d13d8e2561e750ec0c7f4287fe3f78fe2d0c058b7ab907a7f3ac32b5d +size 4436184 diff --git a/examples/MgO/conv_222/mgo_conv_222.vasp b/examples/MgO/conv_222/mgo_conv_222.vasp new file mode 100644 index 0000000..2a9d9f6 --- /dev/null +++ b/examples/MgO/conv_222/mgo_conv_222.vasp @@ -0,0 +1,72 @@ +Mg32 O32 +1.0 + 8.4956778156853243 0.0000000000000000 0.0000000000000005 + 0.0000000000000014 8.4956778156853243 0.0000000000000005 + 0.0000000000000000 0.0000000000000000 8.4956778156853243 +Mg O +32 32 +direct + 0.0000000000000000 0.0000000000000000 0.0000000000000000 Mg + 0.0000000000000000 0.0000000000000000 0.5000000000000000 Mg + 1.0000000000000000 0.5000000000000000 0.0000000000000000 Mg + 1.0000000000000000 0.5000000000000000 0.4999999999999999 Mg + 0.5000000000000000 0.0000000000000000 0.0000000000000000 Mg + 0.5000000000000000 0.0000000000000000 0.4999999999999999 Mg + 0.5000000000000000 0.5000000000000000 0.0000000000000000 Mg + 0.5000000000000000 0.5000000000000000 0.5000000000000000 Mg + 1.0000000000000000 0.2500000000000000 0.2500000000000000 Mg + 1.0000000000000000 0.2500000000000000 0.7500000000000000 Mg + 0.0000000000000000 0.7500000000000000 0.2500000000000000 Mg + 0.0000000000000000 0.7500000000000000 0.7500000000000000 Mg + 0.4999999999999999 0.2500000000000000 0.2500000000000000 Mg + 0.4999999999999999 0.2500000000000000 0.7500000000000000 Mg + 0.5000000000000000 0.7500000000000000 0.2500000000000000 Mg + 0.5000000000000000 0.7500000000000000 0.7500000000000001 Mg + 0.2500000000000000 0.0000000000000000 0.2500000000000000 Mg + 0.2500000000000000 0.0000000000000000 0.7500000000000000 Mg + 0.2500000000000001 0.5000000000000000 0.2500000000000000 Mg + 0.2500000000000001 0.5000000000000000 0.7500000000000000 Mg + 0.7500000000000000 0.0000000000000000 0.2500000000000000 Mg + 0.7500000000000000 0.0000000000000000 0.7500000000000000 Mg + 0.7500000000000001 0.5000000000000000 0.2500000000000000 Mg + 0.7500000000000001 0.5000000000000000 0.7500000000000001 Mg + 0.2500000000000000 0.2500000000000000 0.0000000000000000 Mg + 0.2500000000000000 0.2500000000000000 0.4999999999999999 Mg + 0.2500000000000001 0.7500000000000000 0.0000000000000000 Mg + 0.2500000000000001 0.7500000000000000 0.4999999999999999 Mg + 0.7500000000000001 0.2500000000000000 0.0000000000000000 Mg + 0.7500000000000001 0.2500000000000000 0.4999999999999999 Mg + 0.7500000000000001 0.7500000000000000 0.0000000000000000 Mg + 0.7500000000000001 0.7500000000000000 0.5000000000000000 Mg + 0.2500000000000000 0.0000000000000000 0.0000000000000000 O + 0.2500000000000000 0.0000000000000000 0.5000000000000000 O + 0.2500000000000001 0.5000000000000000 0.0000000000000000 O + 0.2500000000000001 0.5000000000000000 0.4999999999999999 O + 0.7500000000000000 0.0000000000000000 0.0000000000000000 O + 0.7500000000000000 0.0000000000000000 0.4999999999999999 O + 0.7500000000000001 0.5000000000000000 0.0000000000000000 O + 0.7500000000000001 0.5000000000000000 0.5000000000000000 O + 0.2500000000000000 0.2500000000000000 0.2500000000000000 O + 0.2500000000000000 0.2500000000000000 0.7500000000000001 O + 0.2500000000000001 0.7500000000000000 0.2500000000000001 O + 0.2500000000000001 0.7500000000000000 0.7500000000000000 O + 0.7500000000000001 0.2500000000000000 0.2500000000000001 O + 0.7500000000000001 0.2500000000000000 0.7500000000000000 O + 0.7500000000000001 0.7500000000000000 0.2500000000000000 O + 0.7500000000000001 0.7500000000000000 0.7500000000000001 O + 0.0000000000000000 0.0000000000000000 0.2500000000000000 O + 0.0000000000000000 0.0000000000000000 0.7500000000000000 O + 1.0000000000000000 0.5000000000000000 0.2500000000000000 O + 1.0000000000000000 0.5000000000000000 0.7500000000000000 O + 0.5000000000000000 0.0000000000000000 0.2500000000000000 O + 0.5000000000000000 0.0000000000000000 0.7500000000000000 O + 0.5000000000000000 0.5000000000000000 0.2500000000000000 O + 0.5000000000000000 0.5000000000000000 0.7500000000000001 O + 1.0000000000000000 0.2500000000000000 0.0000000000000000 O + 1.0000000000000000 0.2500000000000000 0.5000000000000000 O + 0.0000000000000000 0.7500000000000000 0.0000000000000000 O + 0.0000000000000000 0.7500000000000000 0.4999999999999999 O + 0.4999999999999999 0.2500000000000000 0.0000000000000000 O + 0.4999999999999999 0.2500000000000000 0.4999999999999999 O + 0.5000000000000000 0.7500000000000000 0.0000000000000000 O + 0.5000000000000000 0.7500000000000000 0.5000000000000000 O diff --git a/examples/MgO/conv_222/mgo_prim.vasp b/examples/MgO/conv_222/mgo_prim.vasp new file mode 100644 index 0000000..847295d --- /dev/null +++ b/examples/MgO/conv_222/mgo_prim.vasp @@ -0,0 +1,13 @@ +Mg1 O1 + 1.0000000000000000 + 0.0000000000000000 2.1239194539213311 2.1239194539213311 + 2.1239194539213311 0.0000000000000000 2.1239194539213311 + 2.1239194539213311 2.1239194539213311 -0.0000000000000000 + Mg O + 1 1 +Direct + 0.0000000000000000 0.0000000000000000 0.0000000000000000 + 0.5000000000000000 0.5000000000000000 0.5000000000000000 + + 0.00000000E+00 0.00000000E+00 0.00000000E+00 + 0.00000000E+00 0.00000000E+00 0.00000000E+00 diff --git a/examples/MgO/conv_222/unfold_project.png b/examples/MgO/conv_222/unfold_project.png new file mode 100644 index 0000000..cbab882 Binary files /dev/null and b/examples/MgO/conv_222/unfold_project.png differ diff --git a/paper/.gitignore b/paper/.gitignore new file mode 100644 index 0000000..a2b6af0 --- /dev/null +++ b/paper/.gitignore @@ -0,0 +1,3 @@ +paper.pdf +paper.jats +media diff --git a/paper/Cs2SnTiBr6.png b/paper/Cs2SnTiBr6.png new file mode 100755 index 0000000..ca47882 Binary files /dev/null and b/paper/Cs2SnTiBr6.png differ diff --git a/paper/NaBiS2_unfold-plot_proj_sep.png b/paper/NaBiS2_unfold-plot_proj_sep.png new file mode 100644 index 0000000..edba735 Binary files /dev/null and b/paper/NaBiS2_unfold-plot_proj_sep.png differ diff --git a/paper/compile.sh b/paper/compile.sh new file mode 100755 index 0000000..7704c2f --- /dev/null +++ b/paper/compile.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +docker run --rm \ + --volume $PWD:/data \ + --user $(id -u):$(id -g) \ + --env JOURNAL=joss \ + openjournals/inara diff --git a/paper/figure1.png b/paper/figure1.png new file mode 100644 index 0000000..168130e Binary files /dev/null and b/paper/figure1.png differ diff --git a/paper/figure1.svg b/paper/figure1.svg new file mode 100644 index 0000000..f9e103c --- /dev/null +++ b/paper/figure1.svg @@ -0,0 +1,81 @@ + + + +a)b) diff --git a/paper/figure2.png b/paper/figure2.png new file mode 100644 index 0000000..2362799 Binary files /dev/null and b/paper/figure2.png differ diff --git a/paper/figure2.svg b/paper/figure2.svg new file mode 100644 index 0000000..ffbd56a --- /dev/null +++ b/paper/figure2.svg @@ -0,0 +1,506 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a) + b) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + c) + d) + b + a + b' + a' + kb + ka + kb' + ka' + ε + ε + + + + + diff --git a/paper/mgo_unfold_project.png b/paper/mgo_unfold_project.png new file mode 100644 index 0000000..5865b50 Binary files /dev/null and b/paper/mgo_unfold_project.png differ diff --git a/paper/paper.bib b/paper/paper.bib new file mode 100644 index 0000000..b5623f4 --- /dev/null +++ b/paper/paper.bib @@ -0,0 +1,332 @@ +@article{numpy, + author = {Harris, Charles R. and Millman, K. Jarrod and + van der Walt, Stéfan J and Gommers, Ralf and + Virtanen, Pauli and Cournapeau, David and + Wieser, Eric and Taylor, Julian and Berg, Sebastian and + Smith, Nathaniel J. and Kern, Robert and Picus, Matti and + Hoyer, Stephan and van Kerkwijk, Marten H. and + Brett, Matthew and Haldane, Allan and + Fernández del Río, Jaime and Wiebe, Mark and + Peterson, Pearu and Gérard-Marchant, Pierre and + Sheppard, Kevin and Reddy, Tyler and Weckesser, Warren and + Abbasi, Hameer and Gohlke, Christoph and + Oliphant, Travis E.}, + title = {Array programming with {NumPy}}, + journal = {Nature}, + year = {2020}, + volume = {585}, + pages = {357–362}, + doi = {10.1038/s41586-020-2649-2} +} + +@article{ase, + author={Ask Hjorth Larsen and Jens Jørgen Mortensen and Jakob Blomqvist and Ivano E Castelli and Rune Christensen and Marcin +Dułak and Jesper Friis and Michael N Groves and Bjørk Hammer and Cory Hargus and Eric D Hermes and Paul C Jennings and Peter +Bjerre Jensen and James Kermode and John R Kitchin and Esben Leonhard Kolsbjerg and Joseph Kubal and Kristen +Kaasbjerg and Steen Lysgaard and Jón Bergmann Maronsson and Tristan Maxson and Thomas Olsen and Lars Pastewka and Andrew +Peterson and Carsten Rostgaard and Jakob Schiøtz and Ole Schütt and Mikkel Strange and Kristian S Thygesen and Tejs +Vegge and Lasse Vilhelmsen and Michael Walter and Zhenhua Zeng and Karsten W Jacobsen}, + title={The atomic simulation environment—a Python library for working with atoms}, + journal={Journal of Physics: Condensed Matter}, + volume={29}, + number={27}, + pages={273002}, + url={http://stacks.iop.org/0953-8984/29/i=27/a=273002}, + year={2017}, + abstract={The atomic simulation environment (ASE) is a software package written in the Python programming language with the aim of setting up, steering, and analyzing atomistic simulations. In ASE, tasks are fully scripted in Python. The powerful syntax of Python combined with the NumPy array library make it possible to perform very complex simulation tasks. For example, a sequence of calculations may be performed with the use of a simple ‘for-loop’ construction. Calculations of energy, forces, stresses and other quantities are performed through interfaces to many external electronic structure codes or force fields using a uniform interface. On top of this calculator interface, ASE provides modules for performing many standard simulation tasks such as structure optimization, molecular dynamics, handling of constraints and performing nudged elastic band calculations.} +} + + + +@ARTICLE{scipy, + author = {Virtanen, Pauli and Gommers, Ralf and Oliphant, Travis E. and + Haberland, Matt and Reddy, Tyler and Cournapeau, David and + Burovski, Evgeni and Peterson, Pearu and Weckesser, Warren and + Bright, Jonathan and {van der Walt}, St{\'e}fan J. and + Brett, Matthew and Wilson, Joshua and Millman, K. Jarrod and + Mayorov, Nikolay and Nelson, Andrew R. J. and Jones, Eric and + Kern, Robert and Larson, Eric and Carey, C J and + Polat, {\.I}lhan and Feng, Yu and Moore, Eric W. and + {VanderPlas}, Jake and Laxalde, Denis and Perktold, Josef and + Cimrman, Robert and Henriksen, Ian and Quintero, E. A. and + Harris, Charles R. and Archibald, Anne M. and + Ribeiro, Ant{\^o}nio H. and Pedregosa, Fabian and + {van Mulbregt}, Paul and {SciPy 1.0 Contributors}}, + title = {{{SciPy} 1.0: Fundamental Algorithms for Scientific + Computing in Python}}, + journal = {Nature Methods}, + year = {2020}, + volume = {17}, + pages = {261--272}, + adsurl = {https://rdcu.be/b08Wh}, + doi = {10.1038/s41592-019-0686-2}, +} + +@Article{matplotlib, + Author = {Hunter, J. D.}, + Title = {Matplotlib: A 2D graphics environment}, + Journal = {Computing in Science \& Engineering}, + Volume = {9}, + Number = {3}, + Pages = {90--95}, + abstract = {Matplotlib is a 2D graphics package used for Python for + application development, interactive scripting, and publication-quality + image generation across user interfaces and operating systems.}, + publisher = {IEEE COMPUTER SOC}, + doi = {10.1109/MCSE.2007.55}, + year = 2007 +} + +@article{Popescu:2009, + title = {Extracting {$E$} versus {$\vec{k}$} effective band structure from supercell calculations on alloys and impurities}, + volume = {85}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.85.085201}, + doi = {10.1103/PhysRevB.85.085201}, + number = {8}, + urldate = {2022-02-03}, + journal = {Physical Review B}, + author = {Popescu, Voicu and Zunger, Alex}, + month = feb, + year = {2012}, + note = {Publisher: American Physical Society}, + pages = {085201}, + file = {Popescu_Zunger_2012_Extracting \$E\$ versus \$-stackrel P-vec k \$ effective band structure from.pdf:C\:\\Users\\zhubo\\Dropbox (UCL)\\Zotero\\Physical Review B\\Popescu_Zunger_2012_Extracting \$E\$ versus \$-stackrel P-vec k \$ effective band structure from.pdf:application/pdf}, +} + + +@misc{bandup, + author = {Stepan Tsirkin}, + title = {BandUP: Band Unfolding code for Plane-wave based calculations}, + year = {2017}, + publisher = {GitHub}, + journal = {GitHub repository}, + url = {https://github.com/band-unfolding/bandup} +} + +@misc{vaspbandunfolding, + author = {QijingZheng}, + title = {VaspBandUnfolding}, + year = {2020}, + publisher = {GitHub}, + journal = {GitHub repository}, + url = {https://github.com/QijingZheng/VaspBandUnfolding} +} + +@article{huang:2022, + title = {Strong absorption and ultrafast localisation in {NaBiS$_2$} nanocrystals with slow charge-carrier recombination}, + volume = {13}, + rights = {2022 The Author(s)}, + issn = {2041-1723}, + url = {https://www.nature.com/articles/s41467-022-32669-3}, + doi = {10.1038/s41467-022-32669-3}, + abstract = {I-V-{VI}2 ternary chalcogenides are gaining attention as earth-abundant, nontoxic, and air-stable absorbers for photovoltaic applications. However, the semiconductors explored thus far have slowly-rising absorption onsets, and their charge-carrier transport is not well understood yet. Herein, we investigate cation-disordered {NaBiS}2 nanocrystals, which have a steep absorption onset, with absorption coefficients reaching {\textgreater}105 cm−1 just above its pseudo-direct bandgap of 1.4 {eV}. Surprisingly, we also observe an ultrafast (picosecond-time scale) photoconductivity decay and long-lived charge-carrier population persisting for over one microsecond in {NaBiS}2 nanocrystals. These unusual features arise because of the localised, non-bonding S p character of the upper valence band, which leads to a high density of electronic states at the band edges, ultrafast localisation of spatially-separated electrons and holes, as well as the slow decay of trapped holes. This work reveals the critical role of cation disorder in these systems on both absorption characteristics and charge-carrier kinetics.}, + pages = {4960}, + number = {1}, + journaltitle = {Nature Communications}, + shortjournal = {Nat Commun}, + author = {Huang, Yi-Teng and Kavanagh, Seán R. and Righetto, Marcello and Rusu, Marin and Levine, Igal and Unold, Thomas and Zelewski, Szymon J. and Sneyd, Alexander J. and Zhang, Kaiwen and Dai, Linjie and Britton, Andrew J. and Ye, Junzhi and Julin, Jaakko and Napari, Mari and Zhang, Zhilong and Xiao, James and Laitinen, Mikko and Torrente-Murciano, Laura and Stranks, Samuel D. and Rao, Akshay and Herz, Laura M. and Scanlon, David O. and Walsh, Aron and Hoye, Robert L. Z.}, + urldate = {2023-06-06}, + date = {2022-08-24}, + langid = {english}, + note = {Number: 1 +Publisher: Nature Publishing Group}, + keywords = {easyunfold, Electronic materials, Solar cells}, + file = {Huang et al_2022_Strong absorption and ultrafast localisation in NaBiS2 nanocrystals with slow.pdf:C\:\\Users\\zhubo\\Dropbox (UCL)\\Zotero\\Nature Communications2022\\Huang et al_2022_Strong absorption and ultrafast localisation in NaBiS2 nanocrystals with slow.pdf:application/pdf}, +} + +@article{nicolson:2023, + title = {Interplay of Static and Dynamic Disorder in the Mixed-Metal Chalcohalide {Sn$_2$SbS$_2$I$_3$}}, + issn = {0002-7863}, + url = {https://doi.org/10.1021/jacs.2c13336}, + doi = {10.1021/jacs.2c13336}, + journaltitle = {Journal of the American Chemical Society}, + shortjournal = {J. Am. Chem. Soc.}, + author = {Nicolson, Adair and Breternitz, Joachim and Kavanagh, Seán R. and Tomm, Yvonne and Morita, Kazuki and Squires, Alexander G. and Tovar, Michael and Walsh, Aron and Schorr, Susan and Scanlon, David O.}, + urldate = {2023-06-06}, + date = {2023-05-30}, + note = {Publisher: American Chemical Society}, + keywords = {easyunfold}, + file = {ACS Full Text Snapshot:C\:\\Users\\zhubo\\Zotero\\storage\\XAU4UB2M\\jacs.html:text/html;Nicolson et al_2023_Interplay of Static and Dynamic Disorder in the Mixed-Metal Chalcohalide.pdf:C\:\\Users\\zhubo\\Dropbox (UCL)\\Zotero\\Journal of the American Chemical Society2023\\Nicolson et al_2023_Interplay of Static and Dynamic Disorder in the Mixed-Metal Chalcohalide.pdf:application/pdf}, +} + +@article{wang:2022, + title = {Cation disorder engineering yields {AgBiS$_2$} nanocrystals with enhanced optical absorption for efficient ultrathin solar cells}, + volume = {16}, + rights = {2022 The Author(s), under exclusive licence to Springer Nature Limited}, + issn = {1749-4893}, + url = {https://www.nature.com/articles/s41566-021-00950-4}, + doi = {10.1038/s41566-021-00950-4}, + pages = {235--241}, + number = {3}, + journaltitle = {Nature Photonics}, + shortjournal = {Nat. Photon.}, + author = {Wang, Yongjie and Kavanagh, Seán R. and Burgués-Ceballos, Ignasi and Walsh, Aron and Scanlon, David O. and Konstantatos, Gerasimos}, + urldate = {2023-06-06}, + date = {2022-03}, + langid = {english}, + note = {Number: 3 +Publisher: Nature Publishing Group}, + keywords = {easyunfold, Quantum dots, Solar cells}, + file = {Wang et al_2022_Cation disorder engineering yields AgBiS2 nanocrystals with enhanced optical.pdf:C\:\\Users\\zhubo\\Dropbox (UCL)\\Zotero\\Nature Photonics2022\\Wang et al_2022_Cation disorder engineering yields AgBiS2 nanocrystals with enhanced optical.pdf:application/pdf}, +} + + +@article{huber:2020, + title = {{AiiDA} 1.0, a scalable computational infrastructure for automated reproducible workflows and data provenance}, + url = {http://arxiv.org/abs/2003.12476}, + journaltitle = {{arXiv}:2003.12476 [cond-mat]}, + author = {Huber, Sebastiaan P. and Zoupanos, Spyros and Uhrin, Martin and Talirz, Leopold and Kahle, Leonid and Häuselmann, Rico and Gresch, Dominik and Müller, Tiziano and Yakutovich, Aliaksandr V. and Andersen, Casper W. and Ramirez, Francisco F. and Adorf, Carl S. and Gargiulo, Fernando and Kumbhar, Snehal and Passaro, Elsa and Johnston, Conrad and Merkys, Andrius and Cepellotti, Andrea and Mounet, Nicolas and Marzari, Nicola and Kozinsky, Boris and Pizzi, Giovanni}, + urldate = {2020-04-02}, + date = {2020-03-24}, + eprinttype = {arxiv}, + eprint = {2003.12476}, + note = {tex.ids= huber\_aiida\_2020a +number: 1 +publisher: Nature Publishing Group}, + keywords = {Computer Science - Distributed, Parallel, and Cluster Computing, Condensed Matter - Materials Science}, + file = {arXiv.org Snapshot:C\:\\Users\\zhubo\\Zotero\\storage\\EL4M6KNU\\2003.html:text/html;Huber et al_2020_AiiDA 1.pdf:C\:\\Users\\zhubo\\Dropbox (UCL)\\Zotero\\arXiv2003.12476 [cond-mat]\\Huber et al_2020_AiiDA 1.pdf:application/pdf;Huber et al_2020_AiiDA 1.pdf:C\:\\Users\\zhubo\\Dropbox (UCL)\\Zotero\\Scientific Data\\Huber et al_2020_AiiDA 1.pdf:application/pdf;Snapshot:C\:\\Users\\zhubo\\Zotero\\storage\\XQX3Y89C\\s41597-020-00638-4.html:text/html}, +} + +@article{wilkinson:2016, + title = {The {FAIR} Guiding Principles for scientific data management and stewardship}, + volume = {3}, + issn = {2052-4463}, + url = {https://doi.org/10.1038/sdata.2016.18}, + doi = {10.1038/sdata.2016.18}, + pages = {160018}, + number = {1}, + journaltitle = {Scientific Data}, + shortjournal = {Scientific Data}, + author = {Wilkinson, Mark D. and Dumontier, Michel and Aalbersberg, {IJsbrand} Jan and Appleton, Gabrielle and Axton, Myles and Baak, Arie and Blomberg, Niklas and Boiten, Jan-Willem and da Silva Santos, Luiz Bonino and Bourne, Philip E. and Bouwman, Jildau and Brookes, Anthony J. and Clark, Tim and Crosas, Mercè and Dillo, Ingrid and Dumon, Olivier and Edmunds, Scott and Evelo, Chris T. and Finkers, Richard and Gonzalez-Beltran, Alejandra and Gray, Alasdair J.G. and Groth, Paul and Goble, Carole and Grethe, Jeffrey S. and Heringa, Jaap and ’t Hoen, Peter A.C and Hooft, Rob and Kuhn, Tobias and Kok, Ruben and Kok, Joost and Lusher, Scott J. and Martone, Maryann E. and Mons, Albert and Packer, Abel L. and Persson, Bengt and Rocca-Serra, Philippe and Roos, Marco and van Schaik, Rene and Sansone, Susanna-Assunta and Schultes, Erik and Sengstag, Thierry and Slater, Ted and Strawn, George and Swertz, Morris A. and Thompson, Mark and van der Lei, Johan and van Mulligen, Erik and Velterop, Jan and Waagmeester, Andra and Wittenburg, Peter and Wolstencroft, Katherine and Zhao, Jun and Mons, Barend}, + date = {2016-03-15}, +} + +@article{mathew:2017, + title = {Atomate: A high-level interface to generate, execute, and analyze computational materials science workflows}, + volume = {139}, + issn = {0927-0256}, + url = {https://www.sciencedirect.com/science/article/pii/S0927025617303919}, + doi = {10.1016/j.commatsci.2017.07.030}, + shorttitle = {Atomate}, + pages = {140--152}, + journaltitle = {Computational Materials Science}, + shortjournal = {Computational Materials Science}, + author = {Mathew, Kiran and Montoya, Joseph H. and Faghaninia, Alireza and Dwarakanath, Shyam and Aykol, Muratahan and Tang, Hanmei and Chu, Iek-heng and Smidt, Tess and Bocklund, Brandon and Horton, Matthew and Dagdelen, John and Wood, Brandon and Liu, Zi-Kui and Neaton, Jeffrey and Ong, Shyue Ping and Persson, Kristin and Jain, Anubhav}, + urldate = {2023-06-15}, + date = {2017-11-01}, + langid = {english}, + file = {Mathew et al_2017_Atomate.pdf:C\:\\Users\\zhubo\\Dropbox (UCL)\\Zotero\\Computational Materials Science2017\\Mathew et al_2017_Atomate.pdf:application/pdf;ScienceDirect Snapshot:C\:\\Users\\zhubo\\Zotero\\storage\\A7B86F72\\S0927025617303919.html:text/html}, +} + +@misc{doped, + author = {Seán R. Kavanagh}, + title = {Defect Oriented Python Environment Distribution (doped)}, + year = {2022}, + publisher = {GitHub}, + journal = {GitHub repository}, + url = {https://github.com/SMTG-Bham/doped} +} + +@article{icet, + title = {{ICET} – A Python Library for Constructing and Sampling Alloy Cluster Expansions}, + volume = {2}, + rights = {© 2019 {WILEY}‐{VCH} Verlag {GmbH} \& Co. {KGaA}, Weinheim}, + issn = {2513-0390}, + url = {https://onlinelibrary.wiley.com/doi/abs/10.1002/adts.201900015}, + doi = {10.1002/adts.201900015}, + pages = {1900015}, + number = {7}, + journaltitle = {Advanced Theory and Simulations}, + author = {Ångqvist, Mattias and Muñoz, William A. and Rahm, J. Magnus and Fransson, Erik and Durniak, Céline and Rozyczko, Piotr and Rod, Thomas H. and Erhart, Paul}, + urldate = {2020-11-23}, + date = {2019}, + +} + +@article{kavanagh_frenkel_2022, + title = {Frenkel {{Excitons}} in {{Vacancy-Ordered Titanium Halide Perovskites}} ({Cs$_2$TiX$_6$})}, + author = {Kavanagh, Se{\'a}n R. and Savory, Christopher N. and Liga, Shanti M. and Konstantatos, Gerasimos and Walsh, Aron and Scanlon, David O.}, + year = {2022}, + month = dec, + journal = {The Journal of Physical Chemistry Letters}, + volume = {13}, + number = {47}, + pages = {10965--10975}, + publisher = {{American Chemical Society}}, + doi = {10.1021/acs.jpclett.2c02436}, + urldate = {2023-01-03}, +} + +@article{liga_mixed-cation_2023, + title = {Mixed-{Cation} {Vacancy}-{Ordered} {Perovskites} ({Cs$_2$Ti$_{1–x}$Sn$_x$X$_6$}; {X} = {I} or {Br}): {Low}-{Temperature} {Miscibility}, {Additivity}, and {Tunable} {Stability}}, + issn = {1932-7447}, + shorttitle = {Mixed-{Cation} {Vacancy}-{Ordered} {Perovskites} ({Cs$_2$Ti$_{1–x}$Sn$_x$X$_6$}; {X} = {I} or {Br})}, + url = {https://doi.org/10.1021/acs.jpcc.3c05204}, + doi = {10.1021/acs.jpcc.3c05204}, + abstract = {Lead toxicity and poor stability under operating conditions are major drawbacks that impede the widespread commercialization of metal–halide perovskite solar cells. Ti(IV) has been considered as an alternative species to replace Pb(II) because it is relatively nontoxic and abundant and its perovskite-like compounds have demonstrated promising performance when applied in solar cells (η {\textgreater} 3\%), photocatalysts, and nonlinear optical applications. Yet, Ti(IV) perovskites show instability in air, hindering their use. On the other hand, Sn(IV) has a similar cationic radius to Ti(IV), adopting the same vacancy-ordered double perovskite (VODP) structure and showing good stability in ambient conditions. We report here a combined experimental and computational study on mixed titanium–tin bromide and iodide VODPs, motivated by the hypothesis that these mixtures may show a stability higher than that of the pure titanium compositions. Thermodynamic analysis shows that the cations are highly miscible in these vacancy-ordered structures. Experimentally, we synthesized mixed titanium–tin VODPs as nanocrystals across the entire mixing range x (Cs2Ti1–xSnxX6; X = I or Br), using a colloidal synthetic approach. Analysis of the experimental and computed absorption spectra reveals weak hybridization and interactions between Sn and Ti octahedra with the alloy absorption being essentially a linear combination of the pure Sn and Ti compositions. These compounds are stabilized at high percentages of Sn (x of ∼60\%), as expected, with bromide compositions demonstrating greater stability compared to the iodides. Overall, we find that these materials behave akin to molecular aggregates, with the thermodynamic and optoelectronic properties governed by the intraoctahedral interactions.}, + urldate = {2023-10-23}, + journal = {The Journal of Physical Chemistry C}, + author = {Liga, Shanti M. and Kavanagh, Seán R. and Walsh, Aron and Scanlon, David O. and Konstantatos, Gerasimos}, + month = oct, + year = {2023}, + note = {Publisher: American Chemical Society}, + file = {ACS Full Text Snapshot:/Users/kavanase/Zotero/storage/RLFR4VF8/acs.jpcc.html:text/html}, +} + +@article{Ganose_2018, doi = {10.21105/joss.00717}, url = {https://doi.org/10.21105/joss.00717}, year = {2018}, publisher = {The Open Journal}, volume = {3}, number = {28}, pages = {717}, author = {Alex M. Ganose and Adam J. Jackson and David O. Scanlon}, title = {sumo: Command-line tools for plotting and analysis of periodic *ab initio* calculations}, journal = {Journal of Open Source Software} } + +@article{Kim_2020, +doi = {10.1088/2515-7655/aba081}, +url = {https://dx.doi.org/10.1088/2515-7655/aba081}, +year = {2020}, +month = {jul}, +publisher = {IOP Publishing}, +volume = {2}, +number = {3}, +pages = {036001}, +author = {Sunghyun Kim and Samantha N Hood and Ji-Sang Park and Lucy D Whalley and Aron Walsh}, +title = {Quick-start guide for first-principles modelling of point defects in crystalline materials}, +journal = {Journal of Physics: Energy}, +abstract = {Defects influence the properties and functionality of all crystalline materials. For instance, point defects participate in electronic (e.g. carrier generation and recombination) and optical (e.g. absorption and emission) processes critical to solar energy conversion. Solid-state diffusion, mediated by the transport of charged defects, is used for electrochemical energy storage. First-principles calculations of defects based on density functional theory have been widely used to complement, and even validate, experimental observations. In this ‘quick-start guide’, we discuss the best practice in how to calculate the formation energy of point defects in crystalline materials and analysis techniques appropriate to probe changes in structure and properties relevant across energy technologies.} +} + +@article{vasp1, + title = {Efficient iterative schemes for ab initio total-energy calculations using a plane-wave basis set}, + author = {Kresse, G. and Furthm\"uller, J.}, + journal = {Phys. Rev. B}, + volume = {54}, + issue = {16}, + pages = {11169--11186}, + numpages = {0}, + year = {1996}, + month = {Oct}, + publisher = {American Physical Society}, + doi = {10.1103/PhysRevB.54.11169}, + url = {https://link.aps.org/doi/10.1103/PhysRevB.54.11169} +} +@article{vasp2, +title = {Efficiency of ab-initio total energy calculations for metals and semiconductors using a plane-wave basis set}, +journal = {Computational Materials Science}, +volume = {6}, +number = {1}, +pages = {15-50}, +year = {1996}, +issn = {0927-0256}, +doi = {10.1016/0927-0256(96)00008-0}, +url = {https://www.sciencedirect.com/science/article/pii/0927025696000080}, +author = {G. Kresse and J. Furthmüller}, +abstract = {We present a detailed description and comparison of algorithms for performing ab-initio quantum-mechanical calculations using pseudopotentials and a plane-wave basis set. We will discuss: (a) partial occupancies within the framework of the linear tetrahedron method and the finite temperature density-functional theory, (b) iterative methods for the diagonalization of the Kohn-Sham Hamiltonian and a discussion of an efficient iterative method based on the ideas of Pulay's residual minimization, which is close to an order Natoms2 scaling even for relatively large systems, (c) efficient Broyden-like and Pulay-like mixing methods for the charge density including a new special ‘preconditioning’ optimized for a plane-wave basis set, (d) conjugate gradient methods for minimizing the electronic free energy with respect to all degrees of freedom simultaneously. We have implemented these algorithms within a powerful package called VAMP (Vienna ab-initio molecular-dynamics package). The program and the techniques have been used successfully for a large number of different systems (liquid and amorphous semiconductors, liquid simple and transition metals, metallic and semi-conducting surfaces, phonons in simple metals, transition metals and semiconductors) and turned out to be very reliable.} +} +@article{castep, +url = {https://doi.org/10.1524/zkri.220.5.567.65075}, +title = {First principles methods using CASTEP}, +title = {}, +author = {Stewart J. Clark and Matthew D. Segall and Chris J. Pickard and Phil J. Hasnip and Matt I. J. Probert and Keith Refson and Mike C. Payne}, +pages = {567--570}, +volume = {220}, +number = {5-6}, +journal = {Zeitschrift für Kristallographie - Crystalline Materials}, +doi = {10.1524/zkri.220.5.567.65075}, +year = {2005}, +lastchecked = {2023-12-03} +} diff --git a/paper/paper.md b/paper/paper.md new file mode 100644 index 0000000..d536d5b --- /dev/null +++ b/paper/paper.md @@ -0,0 +1,152 @@ +--- +title: 'easyunfold: A Python package for unfolding electronic band structures' +tags: + - Python + - materials science + - first-principles + - density functional theory +authors: + - name: Bonan Zhu + orcid: 0000-0001-5601-6130 + equal-contrib: false + affiliation: "1, 2, 3" # (Multiple affiliations must be quoted) + - name: Seán R. Kavanagh + orcid: 0000-0003-4577-9647 + equal-contrib: false + affiliation: "1, 2, 4" # (Multiple affiliations must be quoted) + - name: David Scanlon + orcid: 0000-0001-9174-8601 + equal-contrib: false + affiliation: "1, 2, 3" # (Multiple affiliations must be quoted) +affiliations: + - name: Department of Chemistry, University College London, London, United Kingdom + index: 1 + - name: Thomas Young Centre, University College London, London, United Kingdom + index: 2 + - name: The Faraday Institution, Didcot, United Kingdom + index: 3 + - name: Department of Materials, Imperial College London, London, United Kingdom + index: 4 +date: 6 June 2023 +bibliography: paper.bib +--- + +# Summary + +The electronic band structure is an important property for +understanding and designing solid crystalline materials in many fields +such as photovoltaic, catalytic, thermoelectric and transparent-conducting +materials. Obtaining the band structure for an ideal crystal through first-principles +density functional theory (DFT) calculations is a well-established routine operation[@Ganose_2018]. +However, the materials of interest are often complex and the simulation cells may contain multiple primitive +cells of the archetypal structure when, for example, modelling disordered or defective materials[@Kim_2020]. +Repeating the unit cell in real space results in folded band structures, as illustrated in \autoref{fig:figure1}, complicating its interpretation and analysis. +Band structure unfolding maps the electronic structure from supercell calculations back to the reciprocal lattice of the primitive cell, +thereby enabling researchers to understand structure-property relationships and compare the effect of various crystal imperfections on an equal footing. +With `easyunfold`, we provide a simple, easy-to-use, yet powerful and flexible tool which implements the band structure unfolding workflow using plane-wave DFT codes, from input file generation to publication-quality plotting. + +![Schematics of band folding in a 2D lattice: (a) The primitive cell in real space; (b) The $2\times2$ supercell in real space. (c) A slice ($\varepsilon$) of the band structure in the Brillouin zone of the primitive cell; (d) The same band structure slice ($\varepsilon$) in the Brillouin zone of the supercell. Band structure unfolding is the process of transforming the band structure slice in (d) back to the Brillouin zone of the primitive cell (i.e. the form shown in (c)). \label{fig:figure1}](figure1.png){width=100mm} + +# Statement of need + +There are existing packages that provide band structure unfolding capabilities, such as `BandUp` +[@bandup], and `VaspBandUnfolding` [@vaspbandunfolding]. +`easyunfold` is written in Python with a focus on user-friendliness, data provenance, reproducibility, and publication-quality figure generation. +An example output of the effective band structure produced is shown in \autoref{fig:figure2} for a $2\times2\times2$ $\mathrm{MgO}$ supercell containing a neutral oxygen vacancy. +\autoref{fig:figure3} shows the orbital-projected effective band structure of a $\mathrm{Cs_2(Sn_{0.5},Ti_{0.5})Br_6}$ vacancy-ordered perovskite alloy [@kavanagh_frenkel_2022; @liga_mixed-cation_2023], in the Brillouin zone of the primitive $Fm\bar{3}m$ unit cell. +A key feature of `easyunfold` is to provide data serialization compliant with the FAIR principles [@wilkinson:2016]. +Both the input settings and calculated outputs are stored in a single JSON file. +This enables the unfolded band structure to be re-plotted and further analysed without reprocessing the wave function data, which can be time-consuming and require large storage space. + +The package is designed with flexibility in mind. +`easyunfold` can split a supercell calculation into multiple runs. +This functionality is essential for compute-heavy and memory-intensive hybrid functional calculations, particularly if spin-orbit coupling is used, where the required computational resources would quickly become intractable otherwise. +Upon completion of all calculations, their wave functions can be collected to generate a single effective band structure. +The atomic and orbital projections can be used to colour the effective band structure (\autoref{fig:figure2}), and the electronic density of states (DOS) can optionally be plotted alongside (\autoref{fig:figure3}), which can provide valuable information for analysing the underlying structure-property relationships. + +We chose Python as the programming language due to its low barrier-to-entry, flexibility and popularity in the materials modelling field. +An object-oriented approach is used when designing the package to allow abstractions when reading and processing wave function data. +The code currently supports two of the most popular DFT codes, VASP [@vasp1;@vasp2] and CASTEP [@castep], and others can be added with a small amount of coding effort. +`easyunfold` depends on common scientific computing packages such as `numpy` [@numpy] and `matplotlib` [@matplotlib]. +The Atomic Simulation Environment (`ase`) [@ase] is used for reading input crystal structures from a wide range of formats. + +`easyunfold` is designed for researchers with or without prior knowledge of Python. +A command-line interface is provided as the primary way of using the package. +Thanks to the Python API, `easyunfold` can be easily integrated with workflow engines such as `AiiDA` [@huber:2020] and `atomate` [@mathew:2017] +as well as disorder/defect modelling codes such as `icet` [@icet] and `doped` [@doped]. +`easyunfold` has been used in several scientific publications [@nicolson:2023; @wang:2022; @huang:2022] and graduate student research projects. + +The combination of user-friendliness, flexibility, and efficiency will improve the accessibility of +band structure unfolding and help train new researchers. + +![Atom-projected effective band structure of a $2\times2\times2$ MgO supercell showing a localised mid-gap state resulting from a neutral oxygen vacancy (using a relatively small supercell containing 63 atoms). \label{fig:figure2}](mgo_unfold_project.png){width=130mm} + +![Orbital-projected effective band structure of a disordered $\mathrm{Cs_2(Sn,Ti)Br_6}$ vacancy-ordered perovskite alloy [@kavanagh_frenkel_2022; @liga_mixed-cation_2023]. \label{fig:figure3}](Cs2SnTiBr6.png){width=130mm} + + +# Theory + +The mathematics of band structure unfolding has been discussed in detail in the work of [@Popescu:2009]. +Here, we only give a brief summary of the key ingredients. + +Our goal is to reconstruct the energies of the Kohn-Sham states in the reciprocal lattice of the primitive cell ($E(\vec{k})$), given a more complex (folded) $E(\vec{K})$ of the supercell. + +Each $\vec{k}$-point in the primitive cell's first Brillouin zone can be mapped to a $\vec{K}$ in that of the supercell: + +$$ +\vec{K} = \vec{k} - \vec{G}_0. +$$ + +with $\vec{G}_0$ being a reciprocal lattice vector of the supercell. +Conversely, each $\vec{K}$ in the supercell can be unfolded into a set of $\vec{k}_i$: + +$$ +\vec{k}_i = \vec{K} + \vec{G}_i,\ \ i=1,...,N +$$ + +where $\vec{k}_i$ is a set of $N$ $\vec{k}$-points in the Brillouin zone of the primitive cell, +with $N$ equalling the number of primitive cells that the supercell includes in real space. +For a given $\vec{k}$, there is a unique $\vec{K}$ that it folds to, as the first equation can be seen as to *wrap* the $\vec{k}$ into the smaller reciprocal unit cell of the supercell. +On the other hand, a single $\vec{K}$ may map to multiple $\vec{k}_i$s, +as different $\vec{k}$-points in the Brillouin zone of the primitive cell (\autoref{fig:figure1}c) can fold onto the same point in that of the supercell (\autoref{fig:figure1}d). + +To establish the relationship between $E(\vec{k})$ and $E(\vec{K})$, one can project $\langle \vec{K}m|$, where $m$ labels the band, on a set of primitive cell Bloch states $\langle \vec{k}_i|$ and compute the spectral weight: + +$$ +P_{\vec{K}m}(\vec{k}_i) = \sum_n |\langle \vec{K}m |\vec{k}_i n \rangle |^2. +$$ + +where $P$ represents the probability of finding a set of primitive cell states $\langle \vec{k}_in$ contributing to the supercell state $\langle \vec{K}m |$, +or the amount of Bloch character $\vec{k}_i$ preserved in $\langle \vec{K}m |$ at the same energy. + +Presenting the spectral weights directly in two-dimensional plots can be problematic due to the existence of states ($m$) with degenerate or closely-spaced energies. +A more interpretable representation of the effective band structure is the spectral function, defined as: + +$$ +A(\vec{k}_i, E) = \sum_m P_{\vec{K}m}(\vec{k}_i)\delta(E_m - E). +$$ + +where $A$ is the total intensity summed from all contributing $P_{\vec{K}m}$ at $\vec{k}_i$ and energy $E$. +In practice, the $\delta$ function is replaced with a Gaussian or Lorentzian function which smears the contribution across a discretised energy grid. + +For a plane wave basis, the $P_{\vec{K}m}(\vec{k}_i)$ can be calculated as (equation 15 [@Popescu:2009]): + +$$ +P_{\vec{K}m}(\vec{k}_i) = \sum_{\vec{g}} |C_{\vec{Km}}(\vec{g} + \vec{G}_i)|^2, +$$ + +where $\vec{g}$ are the reciprocal lattice vectors of the primitive cell, and $C_{\vec{Km}}$ is the plane wave coefficient. +Since the supercell lattice is commensurate with that of the primitive cell, +the plane wave coefficients to be summed, $C_{\vec{Km}}(\vec{g} + \vec{G_i})$, are included in the basis set of the supercell. +This means that a single supercell calculation producing the wave function (plane wave coefficients) at each $\vec{K}$ required is sufficient for reconstructing the unfolded band structure. + +The path of $\vec{k}$ in the primitive cell is often constructed with its symmetry in mind, and each $\vec{k}$ along the path can be mapped to multiple equivalent $\vec{k_s}$ points given the symmetry of the reference structure. +However, these $\vec{k}_s$ points may no longer be equivalent if the supercell has broken symmetry – which is almost always the case when performing band structure unfolding. +This can be addressed by first expanding each $\vec{k}$ based on the symmetry operations of the primitive cell, followed by a reduction using the symmetry of the supercell. +The spectral weight at each $\vec{k}$ is then a weighted combination of that from a set of $\vec{k}_s^\prime$ points that are inequivalent under the symmetry of the supercell. + +# Acknowledgements + +We acknowledge bug fixes from Adair Nicolson and help from Joe Willis and Sabrine Hachmioune in testing the code and providing feedback. + +# References diff --git a/paper/unfold.png b/paper/unfold.png new file mode 100644 index 0000000..2051252 Binary files /dev/null and b/paper/unfold.png differ