Skip to content

Commit 3e6d990

Browse files
authored
Merge pull request #310 from Exabyte-io/feature/SOF-7509
feature/SOF-7509 Gr/Ni optimize tutorial
2 parents 1023359 + 1b44a84 commit 3e6d990

File tree

9 files changed

+182
-0
lines changed

9 files changed

+182
-0
lines changed
Lines changed: 3 additions & 0 deletions
Loading
Lines changed: 3 additions & 0 deletions
Loading
Lines changed: 3 additions & 0 deletions
Loading
Lines changed: 3 additions & 0 deletions
Loading
Lines changed: 3 additions & 0 deletions
Loading
Lines changed: 3 additions & 0 deletions
Loading
Lines changed: 3 additions & 0 deletions
Loading
Lines changed: 160 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,160 @@
1+
---
2+
# YAML header
3+
render_macros: true
4+
---
5+
6+
# Graphene/Ni(111) Interface Optimization
7+
8+
## Introduction
9+
10+
This tutorial demonstrates how to create and optimize a Graphene/Ni(111) interface structure following the experimental observations presented in the literature. We will focus on finding the most energetically favorable position of graphene on the Ni(111) surface.
11+
12+
!!!note "Manuscript"
13+
Arjun Dahal, Matthias Batzill
14+
"Graphene–nickel interfaces: a review"
15+
Nanoscale, 6(5), 2548. (2014)
16+
[DOI: 10.1039/c3nr05279f](https://doi.org/10.1039/c3nr05279f){:target='_blank'}.
17+
18+
We will recreate the interface structure and optimize the film position to match the experimental findings shown in the figure below:
19+
20+
![Gr/Ni Interface](/images/tutorials/materials/optimization/optimize_film_position_graphene_nickel_interface/0-figure-from-manuscript.webp "Optimal position of graphene on Ni(111)")
21+
22+
## 1. Create Interface Structure
23+
24+
### 1.1. Load Base Materials
25+
26+
Navigate to [Materials Designer](../../../materials-designer/overview.md) and import both graphene and nickel materials from the [Standata](../../../materials-designer/header-menu/input-output/standata-import.md).
27+
28+
![Import Graphene and Ni](/images/materials-designer/import/import_from_standata.webp "Import Gr and Ni from Standata")
29+
30+
### 1.2. Launch JupyterLite Session
31+
32+
Select the "Advanced > [JupyterLite Transformation](../../../materials-designer/header-menu/advanced/jupyterlite-dialog.md)" menu item to launch the JupyterLite environment.
33+
34+
### 1.3. Open `create_interface_with_min_strain_zsl.ipynb` notebook
35+
36+
Find and open the `create_interface_with_min_strain_zsl.ipynb` notebook. This notebook will help us create the initial interface structure.
37+
38+
### 1.4. Set up interface parameters
39+
40+
Edit the notebook parameters to create the Gr/Ni(111) interface:
41+
42+
```python
43+
# Material selection
44+
SUBSTRATE_NAME = "Nickel"
45+
FILM_NAME = "Graphene"
46+
47+
# Slab parameters
48+
SUBSTRATE_MILLER_INDICES = (1, 1, 1)
49+
SUBSTRATE_THICKNESS = 4 # in atomic layers
50+
FILM_THICKNESS = 1 # in atomic layers
51+
52+
# Interface parameters
53+
MAX_AREA = 50 # in Angstrom^2
54+
INTERFACE_DISTANCE = 2.58 # in Angstrom from literature
55+
INTERFACE_VACUUM = 20.0 # in Angstrom
56+
```
57+
58+
![Interface Parameters](/images/tutorials/materials/optimization/optimize_film_position_graphene_nickel_interface/2-jl-setup-nb-interface.webp "Interface parameters for Gr/Ni(111)")
59+
60+
### 1.5. Run interface creation
61+
62+
Run the notebook using "Run > Run All Cells". This will:
63+
64+
1. Create slabs from both materials
65+
2. Find the optimal lattice matching using the ZSL algorithm
66+
3. Generate the initial interface structure
67+
68+
## 2. Optimize Film Position
69+
70+
### 2.1. Open `optimize_film_position.ipynb` notebook
71+
72+
Find and open the `optimize_film_position.ipynb` notebook which will help us find the optimal position of the graphene layer.
73+
74+
### 2.2. Set optimization parameters
75+
76+
Configure the optimization parameters:
77+
78+
```python
79+
# Grid parameters
80+
GRID_SIZE = (20, 20) # Resolution of the x-y grid
81+
GRID_RANGE_X = (-0.5, 0.5) # Range in crystal coordinates
82+
GRID_RANGE_Y = (-0.5, 0.5)
83+
USE_CARTESIAN = False # Use crystal coordinates
84+
85+
# Visualization parameters
86+
STRUCTURE_REPETITIONS = [3, 3, 1]
87+
```
88+
89+
Key parameters explained:
90+
- `GRID_SIZE`: Controls the resolution of position sampling
91+
- `GRID_RANGE`: Search range in crystal coordinates
92+
- `USE_CARTESIAN`: Set to False for hexagonal systems
93+
94+
![Optimization Parameters](/images/tutorials/materials/optimization/optimize_film_position_graphene_nickel_interface/3-jl-setup-nb-final.webp "Optimization parameters for Gr/Ni(111)")
95+
96+
### 2.3. Run optimization
97+
98+
Run all cells in the notebook. The optimization will:
99+
100+
1. Calculate energy landscape across different positions
101+
2. Find the global minimum energy position
102+
3. Generate visualizations of the results
103+
104+
![Energy Landscape](/images/tutorials/materials/optimization/optimize_film_position_graphene_nickel_interface/4-energy-landscape.webp "Energy landscape of film positions")
105+
106+
![Energy Heatmap](/images/tutorials/materials/optimization/optimize_film_position_graphene_nickel_interface/5-energy-heatmap.webp "Energy heatmap of film positions")
107+
108+
## 3. Analyze Results
109+
110+
Compare the original and optimized interface structures to see the difference in the graphene position.
111+
112+
![Initial and optimized interface](/images/tutorials/materials/optimization/optimize_film_position_graphene_nickel_interface/6-jl-result-preview-compare.webp "Initial and optimized interface structures")
113+
114+
![Final Interface](/images/tutorials/materials/optimization/optimize_film_position_graphene_nickel_interface/7-wave-result-final.webp "Optimized Gr/Ni Interface")
115+
116+
117+
## 4. Save Optimized Structure
118+
119+
The optimized interface structure will be automatically passed back to Materials Designer where you can:
120+
1. Save it in the workspace
121+
2. Export it in various formats (JSON, POSCAR, etc.)
122+
3. Use it for further calculations
123+
124+
## Interactive JupyterLite Notebook
125+
126+
The following JupyterLite notebook demonstrates the complete process. Select "Run" > "Run All Cells".
127+
128+
{% with origin_url=config.extra.jupyterlite.origin_url %}
129+
{% with notebooks_path_root=config.extra.jupyterlite.notebooks_path_root %}
130+
{% with notebook_name='specific_examples/optimize_film_position_graphene_nickel_interface.ipynb' %}
131+
{% include 'jupyterlite_embed.html' %}
132+
{% endwith %}
133+
{% endwith %}
134+
{% endwith %}
135+
136+
## Parameter Fine-tuning
137+
138+
To adjust the interface optimization:
139+
140+
1. Interface Creation:
141+
- Adjust `SUBSTRATE_THICKNESS` for more Ni layers
142+
- Modify `MAX_AREA` to control supercell size
143+
- Change `INTERFACE_DISTANCE` if needed
144+
145+
2. Position Optimization:
146+
- Increase `GRID_SIZE` for finer sampling
147+
- Adjust `GRID_RANGE` to search different areas
148+
- Enable 3D visualization with `SHOW_3D_LANDSCAPE = True`
149+
150+
## References
151+
152+
1. Dahal, A., & Batzill, M. (2014). Graphene–nickel interfaces: a review. Nanoscale, 6(5), 2548-2562. [DOI: 10.1039/c3nr05279f](https://doi.org/10.1039/c3nr05279f)
153+
154+
2. Gamo, Y., Nagashima, A., Wakabayashi, M., Terai, M., & Oshima, C. (1997). Atomic structure of monolayer graphite formed on Ni(111). Surface Science, 374(1-3), 61-64. [DOI: 10.1016/S0039-6028(96)01307-3](https://www.sciencedirect.com/science/article/abs/pii/S0039602896007856)
155+
156+
3. Bertoni, G., Calmels, L., Altibelli, A., & Serin, V. (2004). First-principles calculation of the electronic structure and EELS spectra at the graphene/Ni(111) interface. Physical Review B, 71(7). [DOI: 10.1103/PhysRevB.71.075402](https://journals.aps.org/prb/abstract/10.1103/PhysRevB.71.075402)
157+
158+
## Tags
159+
160+
`graphene`, `nickel`, `interface`, `optimization`, `2D materials`, `surface science`, `Gr/Ni(111)`, `C`, `Ni`

mkdocs.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,7 @@ nav:
238238
- Ripple perturbation of a Graphene sheet: tutorials/materials/specific/perturbation-ripples-graphene.md
239239
- Grain Boundary in FCC Metals (Copper): tutorials/materials/specific/grain-boundary-3d-fcc-metals-copper.md
240240
- Grain Boundary (2D) in h-BN: tutorials/materials/specific/grain-boundary-2d-boron-nitride.md
241+
- Gr/Ni(111) Interface Optimization: tutorials/materials/specific/optimize-film-position-graphene-nickel-interface.md
241242

242243
# COMMON UI COMPONENTS
243244
- Interface Components:

0 commit comments

Comments
 (0)