|
| 1 | +--- |
| 2 | +# YAML header |
| 3 | +render_macros: true |
| 4 | +--- |
| 5 | + |
| 6 | +# Interfaces between 2D Materials: hBN and Graphene |
| 7 | + |
| 8 | +## Introduction |
| 9 | + |
| 10 | +This tutorial demonstrates the process of creating interfaces with different stacking configurations between 2D materials, specifically hexagonal boron nitride (hBN) and graphene, based on the work presented in the following manuscript, where the electronic properties of hBN-graphene interfaces are studied. |
| 11 | + |
| 12 | +!!!note "Manuscript" |
| 13 | + **Jeil Jung, Ashley M. DaSilva, Allan H. MacDonald & Shaffique Adam** |
| 14 | + **Origin of the band gap in graphene on hexagonal boron nitride** |
| 15 | + Nature Communications volume 6, Article number: 6308 (2015) |
| 16 | + [DOI: 10.1038/ncomms7308](https://doi.org/10.1038/ncomms7308) |
| 17 | + |
| 18 | + |
| 19 | +We use the [Materials Designer](../../../materials-designer/overview.md) to create interfaces and shift the layers along the y-axis to achieve different stacking configurations. |
| 20 | + |
| 21 | +The Figure 7 shows the different stacking configurations of graphene on hBN. |
| 22 | + |
| 23 | + |
| 24 | + |
| 25 | +## 1. Load and preview materials |
| 26 | + |
| 27 | +First, we navigate to [Materials Designer](../../../materials-designer/overview.md) and import the Graphene and Hexagonal BN materials from the [Standata](../../../materials-designer/header-menu/input-output/standata-import.md). |
| 28 | + |
| 29 | + |
| 30 | + |
| 31 | + |
| 32 | +Then we will use the [JupyterLite](../../../jupyterlite/overview.md) environment to create the target structures. |
| 33 | + |
| 34 | + |
| 35 | +## 2. Create interface between hBN and Graphene |
| 36 | + |
| 37 | +### 2.1 Launch JupyterLite Session |
| 38 | + |
| 39 | +Select the "Advanced > [JupyterLite Transformation](../../../materials-designer/header-menu/advanced/jupyterlite-dialog.md)" menu item to launch the JupyterLite environment. |
| 40 | + |
| 41 | + |
| 42 | + |
| 43 | + |
| 44 | +### 2.2. Open and modify the notebook |
| 45 | + |
| 46 | +Select the input materials with first one being the substrate (hBN) and the second one being the film (Graphene). |
| 47 | + |
| 48 | +Next, open `create_interface_with_min_strain_zsl.ipynb` notebook to modify the parameters by changing: |
| 49 | + |
| 50 | +Miller indices of both materials to `(0,0,1)`, |
| 51 | + |
| 52 | +Thickness of both materials to `1`, |
| 53 | + |
| 54 | +Distance between materials to `3.4` angstroms -- mentioned in the publication. |
| 55 | + |
| 56 | +Default value for `MAX_AREA = 50` should be enough since materials have similar lattice constants. |
| 57 | + |
| 58 | + |
| 59 | +Adjust the "1.1. Set up slab parameters" cell in the notebook according to: |
| 60 | + |
| 61 | +```python |
| 62 | +# Enable interactive selection of terminations via UI prompt |
| 63 | +IS_TERMINATIONS_SELECTION_INTERACTIVE = False |
| 64 | + |
| 65 | +FILM_INDEX = 1 # Index in the list of materials, to access as materials[FILM_INDEX] |
| 66 | +FILM_MILLER_INDICES = (0, 0, 1) |
| 67 | +FILM_THICKNESS = 1 # in atomic layers |
| 68 | +FILM_VACUUM = 0.0 # in angstroms |
| 69 | +FILM_XY_SUPERCELL_MATRIX = [[1, 0], [0, 1]] |
| 70 | +FILM_USE_ORTHOGONAL_Z = True |
| 71 | + |
| 72 | +SUBSTRATE_INDEX = 0 |
| 73 | +SUBSTRATE_MILLER_INDICES = (0, 0, 1) |
| 74 | +SUBSTRATE_THICKNESS = 1 # in atomic layers |
| 75 | +SUBSTRATE_VACUUM = 0.0 # in angstroms |
| 76 | +SUBSTRATE_XY_SUPERCELL_MATRIX = [[1, 0], [0, 1]] |
| 77 | +SUBSTRATE_USE_ORTHOGONAL_Z = True |
| 78 | + |
| 79 | +# Maximum area for the superlattice search algorithm |
| 80 | +MAX_AREA = 50 # in Angstrom^2 |
| 81 | +# Set the termination pair indices |
| 82 | +TERMINATION_PAIR_INDEX = 0 # Will be overridden in interactive selection is used |
| 83 | +INTERFACE_DISTANCE = 3.4 # in Angstrom |
| 84 | +INTERFACE_VACUUM = 20.0 # in Angstrom |
| 85 | +``` |
| 86 | + |
| 87 | + |
| 88 | + |
| 89 | + |
| 90 | +### 2.3. Run the Notebook |
| 91 | + |
| 92 | +After setting the parameters, run the notebook to create the interface between hBN and Graphene. |
| 93 | + |
| 94 | + |
| 95 | + |
| 96 | +### 2.4. View Results and shift the layers |
| 97 | + |
| 98 | +The generation might take some time. |
| 99 | +After that, the user can pass the material to the Materials Designer for further analysis. |
| 100 | + |
| 101 | +Interface between hBN and Graphene with the specified parameters is shown below. |
| 102 | + |
| 103 | + |
| 104 | + |
| 105 | +To shift graphene layer along the y-axis, the user can modify the last cell in the notebook to achieve different stacking configurations. |
| 106 | + |
| 107 | +As mentioned in the publication, the vector to slide the layers between AA, AB and BB configurations is `a/sqrt(3)`. |
| 108 | + |
| 109 | +One can achieve any multiples of shift vector by changing the value of `n` in the following code snippet using the `interface_displace_part()` function from the `mat3ra.made.tools.modify` module. |
| 110 | + |
| 111 | +```python |
| 112 | +import numpy as np |
| 113 | +from mat3ra.made.tools.modify import interface_displace_part |
| 114 | + |
| 115 | +n = 1 |
| 116 | +a = selected_interface.lattice.a |
| 117 | +shifted_interface = interface_displace_part( |
| 118 | + interface=selected_interface, |
| 119 | + displacement=[0, n * a / np.sqrt(3), 0], |
| 120 | + use_cartesian_coordinates=True) |
| 121 | + |
| 122 | +``` |
| 123 | + |
| 124 | + |
| 125 | + |
| 126 | +Preview of interfaces with different stacking configurations is shown below. |
| 127 | + |
| 128 | + |
| 129 | + |
| 130 | +## 3. Pass the Material to Materials Designer |
| 131 | + |
| 132 | +The user can pass the material with the interface in the current Materials Designer environment and save it. |
| 133 | + |
| 134 | + |
| 135 | + |
| 136 | +Or the user can [save or download](../../../materials-designer/header-menu/input-output.md) the material in Material JSON format or POSCAR format. |
| 137 | + |
| 138 | + |
| 139 | +## Interactive JupyterLite Notebook |
| 140 | + |
| 141 | +The interactive JupyterLite notebook for creating Gr/hBN interface can be accessed below. To run the notebook, click on the "Run All" button. |
| 142 | + |
| 143 | + |
| 144 | +{% with origin_url=config.extra.jupyterlite.origin_url %} |
| 145 | +{% with notebooks_path_root=config.extra.jupyterlite.notebooks_path_root %} |
| 146 | +{% with notebook_name='specific_examples/interface_2d_2d_boron_nitride_graphene.ipynb' %} |
| 147 | +{% include 'jupyterlite_embed.html' %} |
| 148 | +{% endwith %} |
| 149 | +{% endwith %} |
| 150 | +{% endwith %} |
| 151 | + |
| 152 | +## References |
| 153 | + |
| 154 | +1. **Jeil Jung, Ashley M. DaSilva, Allan H. MacDonald & Shaffique Adam** |
| 155 | + |
| 156 | + "Origin of the band gap in graphene on hexagonal boron nitride" |
| 157 | + Nature Communications volume 6, Article number: 6308 (2015) |
| 158 | + [DOI: 10.1038/ncomms7308](https://doi.org/10.1038/ncomms7308) |
| 159 | + |
| 160 | +2. **K. S. Novoselov, A. Mishchenko, A. Carvalho, A. H. Castro Neto** |
| 161 | + |
| 162 | + "2D materials and van der Waals heterostructures" |
| 163 | + Science 353, 6298 (2016) |
| 164 | + [DOI: 10.1126/science.aac9439](https://doi.org/10.1126/science.aac9439) |
| 165 | + |
| 166 | +3. **Neelam Gupta, Saurav Sachin, Puja Kumari, Shivani Rania and Soumya Jyoti Ray** |
| 167 | + |
| 168 | + "Twistronics in two-dimensional transition metal dichalcogenide (TMD)-based van der Waals interface" |
| 169 | + RSC Adv., 2024, 4, 1-10 |
| 170 | + [DOI: 10.1039/D3RA06559F](https://doi.org/10.1039/D3RA06559F) |
| 171 | + |
| 172 | +## Tags |
| 173 | + |
| 174 | +`2D`, `Graphene`, `Hexagonal Boron Nitride`, `interface`, `stacking` |
0 commit comments