Skip to content

Commit 1fa8e5a

Browse files
authored
Merge pull request #311 from Exabyte-io/feature/SOF-7527
feature/SOF-7527 Passivation Si(100) tutorial
2 parents 3e6d990 + 7f25d6c commit 1fa8e5a

File tree

9 files changed

+207
-0
lines changed

9 files changed

+207
-0
lines changed
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
version https://git-lfs.github.com/spec/v1
2+
oid sha256:a22284a32e55125f6ad52e9fbd2850895dd85a8b783143262b8d1817174bd753
3+
size 8986
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
version https://git-lfs.github.com/spec/v1
2+
oid sha256:50255d6b9c505b4d8ca9dde55d842600ec5e17387b227d817dac44f669e7b53a
3+
size 8152
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
version https://git-lfs.github.com/spec/v1
2+
oid sha256:0a23971af18b935232337c0734e5596052becd6d01b73895320130a345b0818c
3+
size 76190
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
version https://git-lfs.github.com/spec/v1
2+
oid sha256:81a64b6eb48a74fc84e278a3b0b84163c8a941eab3a74bd5d60fa4b8a168241e
3+
size 7970
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
version https://git-lfs.github.com/spec/v1
2+
oid sha256:4bb6f7bc028129f2f3d748715cb11aeee35721356667e5ccfa146fd92dd58c24
3+
size 74164
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
version https://git-lfs.github.com/spec/v1
2+
oid sha256:c760d9659c4b100779ee891470575eafca37ffd62793691c9baa678d9d8fda79
3+
size 11382
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
version https://git-lfs.github.com/spec/v1
2+
oid sha256:115b21ca0913ff3242568d37fdb93a30b10c6a0506cfe332eca1884d9a08f698
3+
size 9830
Lines changed: 185 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,185 @@
1+
---
2+
# YAML header
3+
render_macros: true
4+
---
5+
6+
# Passivation of Silicon (100) Surface.
7+
8+
## Introduction.
9+
10+
This tutorial demonstrates how to passivate a reconstructed silicon (100) surface with hydrogen atoms, following the methodology described in the literature.
11+
12+
!!!note "Manuscript"
13+
Hansen, U., & Vogl, P.
14+
"Hydrogen passivation of silicon surfaces: A classical molecular-dynamics study."
15+
Physical Review B, 57(20), 13295–13304. (1998)
16+
[DOI: 10.1103/PhysRevB.57.13295](https://doi.org/10.1103/PhysRevB.57.13295){:target='_blank'}.
17+
18+
We will recreate the passivated surface structure shown in Fig. 8:
19+
20+
![Si(100) H-Passivated Surface](/images/tutorials/materials/passivation/passivation_surface_silicon/0-figure-from-manuscript.webp "H-Passivated Silicon (100)")
21+
22+
## 1. Obtain the Silicon (100) Surface Structure.
23+
24+
### 1.1. Load Base Material.
25+
26+
Navigate to [Materials Designer](../../../materials-designer/overview.md) and import the reconstructed Si(100) surface from [Standata](../../../materials-designer/header-menu/input-output/standata-import.md).
27+
28+
![Si(100) Structure](/images/tutorials/materials/passivation/passivation_surface_silicon/1-wave-original-material.webp "Si(100) Structure")
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 Modified `create_supercell.ipynb` Notebook.
35+
36+
Open `create_supercell.ipynb`, select input material as the Si(100) structure, and set the supercell parameters in 1.1.:
37+
38+
```python
39+
SUPERCELL_MATRIX = [
40+
[1, 0, 0],
41+
[0, 1, 0],
42+
[0, 0, 1]
43+
]
44+
45+
# or use the scaling factor.
46+
SCALING_FACTOR = None # [3, 3, 1].
47+
```
48+
49+
Also add to the "Get input materials" cell the following code to adjust the Si atom position:
50+
51+
```python
52+
from utils.jupyterlite import get_materials
53+
materials = get_materials(globals())
54+
material = materials[0]
55+
56+
# Find coordinates of the Si atoms, list in descending order, and change the 2nd one from the top
57+
si_atoms_coordinates = [coordinate for coordinate in slab.basis.coordinates.values]
58+
si_atoms_sorted = sorted(si_atoms_coordinates, key=lambda x: x[2], reverse=True)
59+
second_from_top_index = 1
60+
second_si_atom_coordinate = si_atoms_sorted[second_from_top_index]
61+
62+
print(f"Coordinates of the second Si atom: {second_si_atom_coordinate}")
63+
adjusted_coordinate = [
64+
coord + delta for coord, delta in zip(second_si_atom_coordinate, [0.025, 0, 0.025])
65+
]
66+
print(f"Adjusted coordinate: {adjusted_coordinate}")
67+
new_coordinates = si_atoms_coordinates.copy()
68+
index_to_adjust = slab.basis.coordinates.get_element_id_by_value(second_si_atom_coordinate)
69+
new_coordinates[index_to_adjust] = adjusted_coordinate
70+
slab.set_coordinates(new_coordinates)
71+
```
72+
73+
![Supercell Parameters](/images/tutorials/materials/passivation/passivation_surface_silicon/2-jl-setup-nb-adjust.webp "Supercell Parameters Visualization")
74+
75+
### 1.4. Run Structure Adjustment.
76+
77+
Run the notebook using "Run > Run All Cells". This will:
78+
79+
1. Load the Si(100) structure
80+
2. Adjust the position of the specified Si atom
81+
3. Create a supercell if specified in the parameters
82+
4. Visualize the adjusted structure
83+
84+
![Adjusted Structure](/images/tutorials/materials/passivation/passivation_surface_silicon/3-wave-adjusted-material.webp "Adjusted Si(100) Structure")
85+
86+
## 2. Passivate the Surface.
87+
88+
### 2.1. Open `passivate_slab.ipynb` Notebook.
89+
90+
Find and open the `passivate_slab.ipynb` notebook to add hydrogen atoms to the surface.
91+
92+
### 2.2. Set Passivation Parameters.
93+
94+
Configure the following parameters for hydrogen passivation:
95+
96+
```python
97+
# Passivation parameters.
98+
PASSIVANT = "H" # Chemical symbol for hydrogen.
99+
BOND_LENGTH = 1.46 # Si-H bond length in Angstroms.
100+
SURFACE = "top" # Passivate only the top surface.
101+
102+
# Surface detection parameters.
103+
SHADOWING_RADIUS = 1.8 # In Angstroms.
104+
DEPTH = 0.5 # In Angstroms.
105+
106+
# Visualization parameters.
107+
CELL_REPETITIONS_FOR_VISUALIZATION = [1, 1, 1]
108+
```
109+
110+
Key parameters explained:
111+
112+
- `BOND_LENGTH`: Si-H bond length from literature.
113+
- `SHADOWING_RADIUS`: Controls which atoms are considered surface atoms, set to be below the distance between top Si atoms pair.
114+
- `SURFACE`: Passivate only the top surface.
115+
- `DEPTH`: How deep to look for surface atoms, set to include only top Si atoms.
116+
117+
![Passivation Parameters](/images/tutorials/materials/passivation/passivation_surface_silicon/4-jl-setup-nb-passivate.webp "Passivation Parameters Visualization")
118+
119+
### 2.3. Run Passivation.
120+
121+
Run all cells in the notebook. The passivation process will:
122+
123+
1. Detect surface Si atoms
124+
2. Add H atoms at the specified bond length
125+
3. Generate the passivated structure
126+
127+
![Passivated Structure](/images/tutorials/materials/passivation/passivation_surface_silicon/5-jl-result-preview.webp "H-Passivated Si(100) Structure")
128+
129+
## 3. Analyze Results.
130+
131+
After running both notebooks, examine the final structure:
132+
133+
Check that:
134+
135+
- The adjusted Si atom position is correct
136+
- Surface reconstruction is maintained
137+
- H atoms are properly placed above surface Si atoms
138+
139+
![Final Structure](/images/tutorials/materials/passivation/passivation_surface_silicon/6-wave-result.webp "Final H-Passivated Si(100)")
140+
141+
## 4. Save the Results.
142+
143+
The final structure will be automatically passed back to Materials Designer where you can:
144+
1. Save it in your workspace
145+
2. Export it in various formats
146+
3. Use it for further calculations
147+
148+
## Interactive JupyterLite Notebook.
149+
150+
The following embedded notebook demonstrates the complete process. Select "Run" > "Run All Cells".
151+
152+
{% with origin_url=config.extra.jupyterlite.origin_url %}
153+
{% with notebooks_path_root=config.extra.jupyterlite.notebooks_path_root %}
154+
{% with notebook_name='specific_examples/passivation_surface_silicon_surface.ipynb' %}
155+
{% include 'jupyterlite_embed.html' %}
156+
{% endwith %}
157+
{% endwith %}
158+
{% endwith %}
159+
160+
## Parameter Fine-tuning.
161+
162+
To adjust the passivation:
163+
164+
1. Surface Detection:
165+
166+
- Increase `SHADOWING_RADIUS` to be more selective about surface atoms
167+
- Adjust `DEPTH` to control how deep to look for surface atoms
168+
169+
2. Passivation:
170+
171+
- Modify `BOND_LENGTH` for different Si-H distances
172+
- Change `SURFACE` to passivate different surfaces
173+
- Change `PASSIVANT` to use different passivating species
174+
175+
## References.
176+
177+
1. Hansen, U., & Vogl, P. (1998). Hydrogen passivation of silicon surfaces: A classical molecular-dynamics study. Physical Review B, 57(20), 13295–13304.
178+
179+
2. Northrup, J. E. (1991). Structure of Si(100)H: Dependence on the H chemical potential. Physical Review B, 44(3), 1419–1422.
180+
181+
3. Boland, J. J. (1990). Structure of the H‐saturated Si(100) surface. Physical Review Letters, 65(26), 3325–3328.
182+
183+
## Tags.
184+
185+
`silicon`, `surface`, `passivation`, `hydrogen`, `Si(100)`, `surface reconstruction`, `Si`, `H`

mkdocs.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,7 @@ nav:
229229
- Twisted Bilayer MoS2 commensurate lattices: tutorials/materials/specific/interface-bilayer-twisted-commensurate-lattices-molybdenum-disulfide.md
230230
- Adatom Surface Defects on Graphene: tutorials/materials/specific/defect-surface-adatom-graphene.md
231231
- H-Passivated Silicon Nanowire: tutorials/materials/specific/passivation-edge-silicon-nanowire.md
232+
- H-Passivated Silicon (100) Surface: tutorials/materials/specific/passivation-surface-silicon-surface.md
232233
- Gold Nanoclusters: tutorials/materials/specific/nanocluster-gold.md
233234
- SrTiO3 Slab: tutorials/materials/specific/slab-strontium-titanate.md
234235
- Interface between Graphene and h-BN: tutorials/materials/specific/interface-2d-2d-graphene-boron-nitride.md

0 commit comments

Comments
 (0)