From a60a26816f8b3115f2fada392974534a07b779d3 Mon Sep 17 00:00:00 2001 From: VsevolodX <79542055+VsevolodX@users.noreply.github.com> Date: Tue, 31 Dec 2024 14:29:44 -0800 Subject: [PATCH 1/6] feat: si (100) passivation tutorial (claude) --- .../passivation-surface-silicon-surface.md | 167 ++++++++++++++++++ 1 file changed, 167 insertions(+) create mode 100644 lang/en/docs/tutorials/materials/specific/passivation-surface-silicon-surface.md diff --git a/lang/en/docs/tutorials/materials/specific/passivation-surface-silicon-surface.md b/lang/en/docs/tutorials/materials/specific/passivation-surface-silicon-surface.md new file mode 100644 index 00000000..30768059 --- /dev/null +++ b/lang/en/docs/tutorials/materials/specific/passivation-surface-silicon-surface.md @@ -0,0 +1,167 @@ +--- +# YAML header +render_macros: true +--- + +# Passivation of Silicon (001) Surface + +## Introduction + +This tutorial demonstrates how to passivate a reconstructed silicon (001) surface with hydrogen atoms, following the methodology described in the literature. + +!!!note "Manuscript" + Hansen, U., & Vogl, P. + "Hydrogen passivation of silicon surfaces: A classical molecular-dynamics study." + Physical Review B, 57(20), 13295–13304. (1998) + [DOI: 10.1103/PhysRevB.57.13295](https://doi.org/10.1103/PhysRevB.57.13295){:target='_blank'}. + +We will recreate the passivated surface structure shown in Fig. 8: + +![Si(100) H-Passivated Surface](/images/tutorials/materials/surfaces/si_100_passivation/0-figure-from-manuscript.webp "H-Passivated Silicon (100)") + +## 1. Adjust Silicon Surface Structure + +### 1.1. Load Base Material + +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) using the search term "Silicon.*100.*reconstructed". + +![Standata Si Import](/images/tutorials/materials/surfaces/si_100_passivation/standata-import.webp "Import Si(100) from Standata") + +### 1.2. Launch JupyterLite Session + +Select the "Advanced > [JupyterLite Transformation](../../../materials-designer/header-menu/advanced/jupyterlite-dialog.md)" menu item to launch the JupyterLite environment. + +### 1.3. Open Modified `create_supercell.ipynb` Notebook + +Open `create_supercell.ipynb` and replace the "Get input materials" cell with the following code to adjust the Si atom position: + +```python +from utils.jupyterlite import get_materials +materials = get_materials(globals()) +material = materials[0] + +# Find and adjust Si atom coordinates +si_atoms_coordinates = [coordinate.value for coordinate in material.basis.coordinates.to_array_of_values_with_ids()] +si_atoms_sorted = sorted(si_atoms_coordinates, key=lambda x: x[2], reverse=True) +second_from_top_index = 1 +second_si_atom_coordinate = si_atoms_sorted[second_from_top_index] + +print(f"Coordinates of the second Si atom: {second_si_atom_coordinate}") +adjusted_coordinate = [coord + delta for coord, delta in zip(second_si_atom_coordinate, [0.025, 0, 0.025])] +print(f"Adjusted coordinate: {adjusted_coordinate}") + +new_coordinates = si_atoms_coordinates.copy() +index_to_adjust = material.basis.coordinates.get_element_id_by_value(second_si_atom_coordinate) +new_coordinates[index_to_adjust] = adjusted_coordinate +material.set_coordinates(new_coordinates) +``` + +### 1.4. Run Structure Adjustment + +Run the notebook using "Run > Run All Cells". This will: +1. Load the Si(100) structure +2. Adjust the position of the specified Si atom +3. Create a supercell if specified in the parameters +4. Visualize the adjusted structure + +![Adjusted Structure](/images/tutorials/materials/surfaces/si_100_passivation/adjusted-structure.webp "Adjusted Si(100) Structure") + +## 2. Passivate the Surface + +### 2.1. Open `passivate_slab.ipynb` Notebook + +Find and open the `passivate_slab.ipynb` notebook to add hydrogen atoms to the surface. + +### 2.2. Set Passivation Parameters + +Configure the following parameters for hydrogen passivation: + +```python +# Passivation parameters +PASSIVANT = "H" # Chemical symbol for hydrogen +BOND_LENGTH = 1.46 # Si-H bond length in Angstroms +SURFACE = "top" # Passivate only the top surface + +# Surface detection parameters +SHADOWING_RADIUS = 1.8 # In Angstroms +DEPTH = 0.5 # In Angstroms + +# Visualization parameters +CELL_REPETITIONS_FOR_VISUALIZATION = [1, 1, 1] +``` + +Key parameters explained: +- `BOND_LENGTH`: Si-H bond length from literature +- `SHADOWING_RADIUS`: Controls which atoms are considered surface atoms +- `DEPTH`: How deep to look for surface atoms + +![Passivation Parameters](/images/tutorials/materials/surfaces/si_100_passivation/passivation-params.webp "Passivation Parameters Visualization") + +### 2.3. Run Passivation + +Run all cells in the notebook. The passivation process will: +1. Detect surface Si atoms +2. Add H atoms at the specified bond length +3. Generate the passivated structure + +## 3. Analyze Results + +After running both notebooks, examine the final structure: + +### 3.1. Surface Structure +Check that: +- The adjusted Si atom position is correct +- Surface reconstruction is maintained +- H atoms are properly placed above surface Si atoms + +### 3.2. Bond Geometry +Verify: +- Si-H bond length is ~1.46 Å +- H atoms are approximately perpendicular to the surface +- No H atoms are added to subsurface Si atoms + +![Final Structure](/images/tutorials/materials/surfaces/si_100_passivation/final-structure.webp "Final H-Passivated Si(100)") + +## 4. Save Passivated Structure + +The final structure will be automatically passed back to Materials Designer where you can: +1. Save it in your workspace +2. Export it in various formats +3. Use it for further calculations + +## Interactive JupyterLite Notebook + +The following embedded notebook demonstrates the complete process. Select "Run" > "Run All Cells". + +{% with origin_url=config.extra.jupyterlite.origin_url %} +{% with notebooks_path_root=config.extra.jupyterlite.notebooks_path_root %} +{% with notebook_name='specific_examples/si_100_passivation.ipynb' %} +{% include 'jupyterlite_embed.html' %} +{% endwith %} +{% endwith %} +{% endwith %} + +## Parameter Fine-tuning + +To adjust the passivation: + +1. Surface Detection: + - Increase `SHADOWING_RADIUS` to be more selective about surface atoms + - Adjust `DEPTH` to control how deep to look for surface atoms + +2. Passivation: + - Modify `BOND_LENGTH` for different Si-H distances + - Change `SURFACE` to passivate different surfaces + - Change `PASSIVANT` to use different passivating species + +## References + +1. Hansen, U., & Vogl, P. (1998). Hydrogen passivation of silicon surfaces: A classical molecular-dynamics study. Physical Review B, 57(20), 13295–13304. + +2. Northrup, J. E. (1991). Structure of Si(100)H: Dependence on the H chemical potential. Physical Review B, 44(3), 1419–1422. + +3. Boland, J. J. (1990). Structure of the H‐saturated Si(100) surface. Physical Review Letters, 65(26), 3325–3328. + +## Tags + +`silicon`, `surface`, `passivation`, `hydrogen`, `Si(100)`, `surface reconstruction`, `Si`, `H` \ No newline at end of file From 25e2f7e2b0aed9e364f7cafe84b668f106cde92e Mon Sep 17 00:00:00 2001 From: VsevolodX <79542055+VsevolodX@users.noreply.github.com> Date: Tue, 31 Dec 2024 14:46:38 -0800 Subject: [PATCH 2/6] update: human touch --- .../passivation-surface-silicon-surface.md | 55 ++++++++++++------- 1 file changed, 36 insertions(+), 19 deletions(-) diff --git a/lang/en/docs/tutorials/materials/specific/passivation-surface-silicon-surface.md b/lang/en/docs/tutorials/materials/specific/passivation-surface-silicon-surface.md index 30768059..badc681d 100644 --- a/lang/en/docs/tutorials/materials/specific/passivation-surface-silicon-surface.md +++ b/lang/en/docs/tutorials/materials/specific/passivation-surface-silicon-surface.md @@ -3,11 +3,11 @@ render_macros: true --- -# Passivation of Silicon (001) Surface +# Passivation of Silicon (100) Surface ## Introduction -This tutorial demonstrates how to passivate a reconstructed silicon (001) surface with hydrogen atoms, following the methodology described in the literature. +This tutorial demonstrates how to passivate a reconstructed silicon (100) surface with hydrogen atoms, following the methodology described in the literature. !!!note "Manuscript" Hansen, U., & Vogl, P. @@ -23,9 +23,9 @@ We will recreate the passivated surface structure shown in Fig. 8: ### 1.1. Load Base Material -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) using the search term "Silicon.*100.*reconstructed". +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). -![Standata Si Import](/images/tutorials/materials/surfaces/si_100_passivation/standata-import.webp "Import Si(100) from Standata") +![Si(100) Structure](/images/tutorials/materials/surfaces/si_100_passivation/1-wave-original-material.webp "Si(100) Structure") ### 1.2. Launch JupyterLite Session @@ -33,7 +33,20 @@ Select the "Advanced > [JupyterLite Transformation](../../../materials-designer/ ### 1.3. Open Modified `create_supercell.ipynb` Notebook -Open `create_supercell.ipynb` and replace the "Get input materials" cell with the following code to adjust the Si atom position: +Open `create_supercell.ipynb`, select input material as the Si(100) structure, and set the supercell parameters in 1.1.: + +```python +SUPERCELL_MATRIX = [ + [1, 0, 0], + [0, 1, 0], + [0, 0, 1] +] + +# or use the scaling factor +SCALING_FACTOR = None # [3, 3, 1] +``` + +Also add to the "Get input materials" cell the following code to adjust the Si atom position: ```python from utils.jupyterlite import get_materials @@ -56,15 +69,18 @@ new_coordinates[index_to_adjust] = adjusted_coordinate material.set_coordinates(new_coordinates) ``` +![Supercell Parameters](/images/tutorials/materials/surfaces/si_100_passivation/2-jl-setup-nb-adjust.webp "Supercell Parameters Visualization") + ### 1.4. Run Structure Adjustment Run the notebook using "Run > Run All Cells". This will: + 1. Load the Si(100) structure 2. Adjust the position of the specified Si atom 3. Create a supercell if specified in the parameters 4. Visualize the adjusted structure -![Adjusted Structure](/images/tutorials/materials/surfaces/si_100_passivation/adjusted-structure.webp "Adjusted Si(100) Structure") +![Adjusted Structure](/images/tutorials/materials/surfaces/si_100_passivation/3-wave-adjusted-material.webp "Adjusted Si(100) Structure") ## 2. Passivate the Surface @@ -91,36 +107,35 @@ CELL_REPETITIONS_FOR_VISUALIZATION = [1, 1, 1] ``` Key parameters explained: -- `BOND_LENGTH`: Si-H bond length from literature -- `SHADOWING_RADIUS`: Controls which atoms are considered surface atoms -- `DEPTH`: How deep to look for surface atoms -![Passivation Parameters](/images/tutorials/materials/surfaces/si_100_passivation/passivation-params.webp "Passivation Parameters Visualization") +- `BOND_LENGTH`: Si-H bond length from literature. +- `SHADOWING_RADIUS`: Controls which atoms are considered surface atoms, set to be below the distance between top Si atoms pair. +- `SURFACE`: Passivate only the top surface. +- `DEPTH`: How deep to look for surface atoms, set to include only top Si atoms. + +![Passivation Parameters](/images/tutorials/materials/surfaces/si_100_passivation/4-jl-setup-nb-passivation.webp "Passivation Parameters Visualization") ### 2.3. Run Passivation Run all cells in the notebook. The passivation process will: + 1. Detect surface Si atoms 2. Add H atoms at the specified bond length 3. Generate the passivated structure +![Passivated Structure](/images/tutorials/materials/surfaces/si_100_passivation/5-jl-result-preview.webp "H-Passivated Si(100) Structure") + ## 3. Analyze Results After running both notebooks, examine the final structure: -### 3.1. Surface Structure Check that: + - The adjusted Si atom position is correct - Surface reconstruction is maintained - H atoms are properly placed above surface Si atoms -### 3.2. Bond Geometry -Verify: -- Si-H bond length is ~1.46 Å -- H atoms are approximately perpendicular to the surface -- No H atoms are added to subsurface Si atoms - -![Final Structure](/images/tutorials/materials/surfaces/si_100_passivation/final-structure.webp "Final H-Passivated Si(100)") +![Final Structure](/images/tutorials/materials/surfaces/si_100_passivation/6-wave-result.webp "Final H-Passivated Si(100)") ## 4. Save Passivated Structure @@ -135,7 +150,7 @@ The following embedded notebook demonstrates the complete process. Select "Run" {% with origin_url=config.extra.jupyterlite.origin_url %} {% with notebooks_path_root=config.extra.jupyterlite.notebooks_path_root %} -{% with notebook_name='specific_examples/si_100_passivation.ipynb' %} +{% with notebook_name='specific_examples/passivation_surface_silicon_surface.ipynb' %} {% include 'jupyterlite_embed.html' %} {% endwith %} {% endwith %} @@ -146,10 +161,12 @@ The following embedded notebook demonstrates the complete process. Select "Run" To adjust the passivation: 1. Surface Detection: + - Increase `SHADOWING_RADIUS` to be more selective about surface atoms - Adjust `DEPTH` to control how deep to look for surface atoms 2. Passivation: + - Modify `BOND_LENGTH` for different Si-H distances - Change `SURFACE` to passivate different surfaces - Change `PASSIVANT` to use different passivating species From edf7af48af7ee0361b14f88616c8cfe8061ba991 Mon Sep 17 00:00:00 2001 From: VsevolodX <79542055+VsevolodX@users.noreply.github.com> Date: Tue, 31 Dec 2024 15:03:46 -0800 Subject: [PATCH 3/6] update: add images --- .../passivation_surface_silicon/0-figure-from-manuscript.webp | 3 +++ .../passivation_surface_silicon/1-wave-original-material.webp | 3 +++ .../passivation_surface_silicon/2-jl-setup-nb-adjust.webp | 3 +++ .../passivation_surface_silicon/3-wave-adjusted-material.webp | 3 +++ .../passivation_surface_silicon/4-jl-setup-nb-passivate.webp | 3 +++ .../passivation_surface_silicon/5-jl-result-preview.webp | 3 +++ .../passivation/passivation_surface_silicon/6-wave-result.webp | 3 +++ 7 files changed, 21 insertions(+) create mode 100644 images/tutorials/materials/passivation/passivation_surface_silicon/0-figure-from-manuscript.webp create mode 100644 images/tutorials/materials/passivation/passivation_surface_silicon/1-wave-original-material.webp create mode 100644 images/tutorials/materials/passivation/passivation_surface_silicon/2-jl-setup-nb-adjust.webp create mode 100644 images/tutorials/materials/passivation/passivation_surface_silicon/3-wave-adjusted-material.webp create mode 100644 images/tutorials/materials/passivation/passivation_surface_silicon/4-jl-setup-nb-passivate.webp create mode 100644 images/tutorials/materials/passivation/passivation_surface_silicon/5-jl-result-preview.webp create mode 100644 images/tutorials/materials/passivation/passivation_surface_silicon/6-wave-result.webp diff --git a/images/tutorials/materials/passivation/passivation_surface_silicon/0-figure-from-manuscript.webp b/images/tutorials/materials/passivation/passivation_surface_silicon/0-figure-from-manuscript.webp new file mode 100644 index 00000000..452076ba --- /dev/null +++ b/images/tutorials/materials/passivation/passivation_surface_silicon/0-figure-from-manuscript.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a22284a32e55125f6ad52e9fbd2850895dd85a8b783143262b8d1817174bd753 +size 8986 diff --git a/images/tutorials/materials/passivation/passivation_surface_silicon/1-wave-original-material.webp b/images/tutorials/materials/passivation/passivation_surface_silicon/1-wave-original-material.webp new file mode 100644 index 00000000..ea424ef6 --- /dev/null +++ b/images/tutorials/materials/passivation/passivation_surface_silicon/1-wave-original-material.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:50255d6b9c505b4d8ca9dde55d842600ec5e17387b227d817dac44f669e7b53a +size 8152 diff --git a/images/tutorials/materials/passivation/passivation_surface_silicon/2-jl-setup-nb-adjust.webp b/images/tutorials/materials/passivation/passivation_surface_silicon/2-jl-setup-nb-adjust.webp new file mode 100644 index 00000000..5a8c492b --- /dev/null +++ b/images/tutorials/materials/passivation/passivation_surface_silicon/2-jl-setup-nb-adjust.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0a23971af18b935232337c0734e5596052becd6d01b73895320130a345b0818c +size 76190 diff --git a/images/tutorials/materials/passivation/passivation_surface_silicon/3-wave-adjusted-material.webp b/images/tutorials/materials/passivation/passivation_surface_silicon/3-wave-adjusted-material.webp new file mode 100644 index 00000000..2ea5b6fb --- /dev/null +++ b/images/tutorials/materials/passivation/passivation_surface_silicon/3-wave-adjusted-material.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:81a64b6eb48a74fc84e278a3b0b84163c8a941eab3a74bd5d60fa4b8a168241e +size 7970 diff --git a/images/tutorials/materials/passivation/passivation_surface_silicon/4-jl-setup-nb-passivate.webp b/images/tutorials/materials/passivation/passivation_surface_silicon/4-jl-setup-nb-passivate.webp new file mode 100644 index 00000000..9f1cdeb4 --- /dev/null +++ b/images/tutorials/materials/passivation/passivation_surface_silicon/4-jl-setup-nb-passivate.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4bb6f7bc028129f2f3d748715cb11aeee35721356667e5ccfa146fd92dd58c24 +size 74164 diff --git a/images/tutorials/materials/passivation/passivation_surface_silicon/5-jl-result-preview.webp b/images/tutorials/materials/passivation/passivation_surface_silicon/5-jl-result-preview.webp new file mode 100644 index 00000000..4f53bd70 --- /dev/null +++ b/images/tutorials/materials/passivation/passivation_surface_silicon/5-jl-result-preview.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c760d9659c4b100779ee891470575eafca37ffd62793691c9baa678d9d8fda79 +size 11382 diff --git a/images/tutorials/materials/passivation/passivation_surface_silicon/6-wave-result.webp b/images/tutorials/materials/passivation/passivation_surface_silicon/6-wave-result.webp new file mode 100644 index 00000000..4a992c20 --- /dev/null +++ b/images/tutorials/materials/passivation/passivation_surface_silicon/6-wave-result.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:115b21ca0913ff3242568d37fdb93a30b10c6a0506cfe332eca1884d9a08f698 +size 9830 From 590e2328ae0214e256a103c9085bd550a82a9739 Mon Sep 17 00:00:00 2001 From: VsevolodX <79542055+VsevolodX@users.noreply.github.com> Date: Tue, 31 Dec 2024 15:03:54 -0800 Subject: [PATCH 4/6] update: use images --- .../passivation-surface-silicon-surface.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/lang/en/docs/tutorials/materials/specific/passivation-surface-silicon-surface.md b/lang/en/docs/tutorials/materials/specific/passivation-surface-silicon-surface.md index badc681d..14e6ca17 100644 --- a/lang/en/docs/tutorials/materials/specific/passivation-surface-silicon-surface.md +++ b/lang/en/docs/tutorials/materials/specific/passivation-surface-silicon-surface.md @@ -17,7 +17,7 @@ This tutorial demonstrates how to passivate a reconstructed silicon (100) surfac We will recreate the passivated surface structure shown in Fig. 8: -![Si(100) H-Passivated Surface](/images/tutorials/materials/surfaces/si_100_passivation/0-figure-from-manuscript.webp "H-Passivated Silicon (100)") +![Si(100) H-Passivated Surface](/images/tutorials/materials/passivation/passivation_surface_silicon/0-figure-from-manuscript.webp "H-Passivated Silicon (100)") ## 1. Adjust Silicon Surface Structure @@ -25,7 +25,7 @@ We will recreate the passivated surface structure shown in Fig. 8: 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). -![Si(100) Structure](/images/tutorials/materials/surfaces/si_100_passivation/1-wave-original-material.webp "Si(100) Structure") +![Si(100) Structure](/images/tutorials/materials/passivation/passivation_surface_silicon/1-wave-original-material.webp "Si(100) Structure") ### 1.2. Launch JupyterLite Session @@ -69,7 +69,7 @@ new_coordinates[index_to_adjust] = adjusted_coordinate material.set_coordinates(new_coordinates) ``` -![Supercell Parameters](/images/tutorials/materials/surfaces/si_100_passivation/2-jl-setup-nb-adjust.webp "Supercell Parameters Visualization") +![Supercell Parameters](/images/tutorials/materials/passivation/passivation_surface_silicon/2-jl-setup-nb-adjust.webp "Supercell Parameters Visualization") ### 1.4. Run Structure Adjustment @@ -80,7 +80,7 @@ Run the notebook using "Run > Run All Cells". This will: 3. Create a supercell if specified in the parameters 4. Visualize the adjusted structure -![Adjusted Structure](/images/tutorials/materials/surfaces/si_100_passivation/3-wave-adjusted-material.webp "Adjusted Si(100) Structure") +![Adjusted Structure](/images/tutorials/materials/passivation/passivation_surface_silicon/3-wave-adjusted-material.webp "Adjusted Si(100) Structure") ## 2. Passivate the Surface @@ -113,7 +113,7 @@ Key parameters explained: - `SURFACE`: Passivate only the top surface. - `DEPTH`: How deep to look for surface atoms, set to include only top Si atoms. -![Passivation Parameters](/images/tutorials/materials/surfaces/si_100_passivation/4-jl-setup-nb-passivation.webp "Passivation Parameters Visualization") +![Passivation Parameters](/images/tutorials/materials/passivation/passivation_surface_silicon/4-jl-setup-nb-passivate.webp "Passivation Parameters Visualization") ### 2.3. Run Passivation @@ -123,7 +123,7 @@ Run all cells in the notebook. The passivation process will: 2. Add H atoms at the specified bond length 3. Generate the passivated structure -![Passivated Structure](/images/tutorials/materials/surfaces/si_100_passivation/5-jl-result-preview.webp "H-Passivated Si(100) Structure") +![Passivated Structure](/images/tutorials/materials/passivation/passivation_surface_silicon/5-jl-result-preview.webp "H-Passivated Si(100) Structure") ## 3. Analyze Results @@ -135,7 +135,7 @@ Check that: - Surface reconstruction is maintained - H atoms are properly placed above surface Si atoms -![Final Structure](/images/tutorials/materials/surfaces/si_100_passivation/6-wave-result.webp "Final H-Passivated Si(100)") +![Final Structure](/images/tutorials/materials/passivation/passivation_surface_silicon/6-wave-result.webp "Final H-Passivated Si(100)") ## 4. Save Passivated Structure From 5960e50d5733e011e2f86086bb2e1f24e78b471f Mon Sep 17 00:00:00 2001 From: VsevolodX <79542055+VsevolodX@users.noreply.github.com> Date: Tue, 31 Dec 2024 15:04:02 -0800 Subject: [PATCH 5/6] update: mkdocs --- mkdocs.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/mkdocs.yml b/mkdocs.yml index 4a31e3b0..555b1527 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -229,6 +229,7 @@ nav: - Twisted Bilayer MoS2 commensurate lattices: tutorials/materials/specific/interface-bilayer-twisted-commensurate-lattices-molybdenum-disulfide.md - Adatom Surface Defects on Graphene: tutorials/materials/specific/defect-surface-adatom-graphene.md - H-Passivated Silicon Nanowire: tutorials/materials/specific/passivation-edge-silicon-nanowire.md + - H-Passivated Silicon (100) Surface: tutorials/materials/specific/passivation-surface-silicon-surface.md - Gold Nanoclusters: tutorials/materials/specific/nanocluster-gold.md - SrTiO3 Slab: tutorials/materials/specific/slab-strontium-titanate.md - Interface between Graphene and h-BN: tutorials/materials/specific/interface-2d-2d-graphene-boron-nitride.md From 7f25d6c5f0669c4567918a84b8137d0827c3ee21 Mon Sep 17 00:00:00 2001 From: VsevolodX <79542055+VsevolodX@users.noreply.github.com> Date: Wed, 1 Jan 2025 16:52:29 -0800 Subject: [PATCH 6/6] update: address pr comments --- .../passivation-surface-silicon-surface.md | 67 ++++++++++--------- 1 file changed, 34 insertions(+), 33 deletions(-) diff --git a/lang/en/docs/tutorials/materials/specific/passivation-surface-silicon-surface.md b/lang/en/docs/tutorials/materials/specific/passivation-surface-silicon-surface.md index 14e6ca17..e7b8e70e 100644 --- a/lang/en/docs/tutorials/materials/specific/passivation-surface-silicon-surface.md +++ b/lang/en/docs/tutorials/materials/specific/passivation-surface-silicon-surface.md @@ -3,9 +3,9 @@ render_macros: true --- -# Passivation of Silicon (100) Surface +# Passivation of Silicon (100) Surface. -## Introduction +## Introduction. This tutorial demonstrates how to passivate a reconstructed silicon (100) surface with hydrogen atoms, following the methodology described in the literature. @@ -19,19 +19,19 @@ We will recreate the passivated surface structure shown in Fig. 8: ![Si(100) H-Passivated Surface](/images/tutorials/materials/passivation/passivation_surface_silicon/0-figure-from-manuscript.webp "H-Passivated Silicon (100)") -## 1. Adjust Silicon Surface Structure +## 1. Obtain the Silicon (100) Surface Structure. -### 1.1. Load Base Material +### 1.1. Load Base Material. 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). ![Si(100) Structure](/images/tutorials/materials/passivation/passivation_surface_silicon/1-wave-original-material.webp "Si(100) Structure") -### 1.2. Launch JupyterLite Session +### 1.2. Launch JupyterLite Session. Select the "Advanced > [JupyterLite Transformation](../../../materials-designer/header-menu/advanced/jupyterlite-dialog.md)" menu item to launch the JupyterLite environment. -### 1.3. Open Modified `create_supercell.ipynb` Notebook +### 1.3. Open Modified `create_supercell.ipynb` Notebook. Open `create_supercell.ipynb`, select input material as the Si(100) structure, and set the supercell parameters in 1.1.: @@ -42,8 +42,8 @@ SUPERCELL_MATRIX = [ [0, 0, 1] ] -# or use the scaling factor -SCALING_FACTOR = None # [3, 3, 1] +# or use the scaling factor. +SCALING_FACTOR = None # [3, 3, 1]. ``` Also add to the "Get input materials" cell the following code to adjust the Si atom position: @@ -53,25 +53,26 @@ from utils.jupyterlite import get_materials materials = get_materials(globals()) material = materials[0] -# Find and adjust Si atom coordinates -si_atoms_coordinates = [coordinate.value for coordinate in material.basis.coordinates.to_array_of_values_with_ids()] +# Find coordinates of the Si atoms, list in descending order, and change the 2nd one from the top +si_atoms_coordinates = [coordinate for coordinate in slab.basis.coordinates.values] si_atoms_sorted = sorted(si_atoms_coordinates, key=lambda x: x[2], reverse=True) second_from_top_index = 1 second_si_atom_coordinate = si_atoms_sorted[second_from_top_index] print(f"Coordinates of the second Si atom: {second_si_atom_coordinate}") -adjusted_coordinate = [coord + delta for coord, delta in zip(second_si_atom_coordinate, [0.025, 0, 0.025])] +adjusted_coordinate = [ + coord + delta for coord, delta in zip(second_si_atom_coordinate, [0.025, 0, 0.025]) +] print(f"Adjusted coordinate: {adjusted_coordinate}") - new_coordinates = si_atoms_coordinates.copy() -index_to_adjust = material.basis.coordinates.get_element_id_by_value(second_si_atom_coordinate) +index_to_adjust = slab.basis.coordinates.get_element_id_by_value(second_si_atom_coordinate) new_coordinates[index_to_adjust] = adjusted_coordinate -material.set_coordinates(new_coordinates) +slab.set_coordinates(new_coordinates) ``` ![Supercell Parameters](/images/tutorials/materials/passivation/passivation_surface_silicon/2-jl-setup-nb-adjust.webp "Supercell Parameters Visualization") -### 1.4. Run Structure Adjustment +### 1.4. Run Structure Adjustment. Run the notebook using "Run > Run All Cells". This will: @@ -82,27 +83,27 @@ Run the notebook using "Run > Run All Cells". This will: ![Adjusted Structure](/images/tutorials/materials/passivation/passivation_surface_silicon/3-wave-adjusted-material.webp "Adjusted Si(100) Structure") -## 2. Passivate the Surface +## 2. Passivate the Surface. -### 2.1. Open `passivate_slab.ipynb` Notebook +### 2.1. Open `passivate_slab.ipynb` Notebook. Find and open the `passivate_slab.ipynb` notebook to add hydrogen atoms to the surface. -### 2.2. Set Passivation Parameters +### 2.2. Set Passivation Parameters. Configure the following parameters for hydrogen passivation: ```python -# Passivation parameters -PASSIVANT = "H" # Chemical symbol for hydrogen -BOND_LENGTH = 1.46 # Si-H bond length in Angstroms -SURFACE = "top" # Passivate only the top surface +# Passivation parameters. +PASSIVANT = "H" # Chemical symbol for hydrogen. +BOND_LENGTH = 1.46 # Si-H bond length in Angstroms. +SURFACE = "top" # Passivate only the top surface. -# Surface detection parameters -SHADOWING_RADIUS = 1.8 # In Angstroms -DEPTH = 0.5 # In Angstroms +# Surface detection parameters. +SHADOWING_RADIUS = 1.8 # In Angstroms. +DEPTH = 0.5 # In Angstroms. -# Visualization parameters +# Visualization parameters. CELL_REPETITIONS_FOR_VISUALIZATION = [1, 1, 1] ``` @@ -115,7 +116,7 @@ Key parameters explained: ![Passivation Parameters](/images/tutorials/materials/passivation/passivation_surface_silicon/4-jl-setup-nb-passivate.webp "Passivation Parameters Visualization") -### 2.3. Run Passivation +### 2.3. Run Passivation. Run all cells in the notebook. The passivation process will: @@ -125,7 +126,7 @@ Run all cells in the notebook. The passivation process will: ![Passivated Structure](/images/tutorials/materials/passivation/passivation_surface_silicon/5-jl-result-preview.webp "H-Passivated Si(100) Structure") -## 3. Analyze Results +## 3. Analyze Results. After running both notebooks, examine the final structure: @@ -137,14 +138,14 @@ Check that: ![Final Structure](/images/tutorials/materials/passivation/passivation_surface_silicon/6-wave-result.webp "Final H-Passivated Si(100)") -## 4. Save Passivated Structure +## 4. Save the Results. The final structure will be automatically passed back to Materials Designer where you can: 1. Save it in your workspace 2. Export it in various formats 3. Use it for further calculations -## Interactive JupyterLite Notebook +## Interactive JupyterLite Notebook. The following embedded notebook demonstrates the complete process. Select "Run" > "Run All Cells". @@ -156,7 +157,7 @@ The following embedded notebook demonstrates the complete process. Select "Run" {% endwith %} {% endwith %} -## Parameter Fine-tuning +## Parameter Fine-tuning. To adjust the passivation: @@ -171,7 +172,7 @@ To adjust the passivation: - Change `SURFACE` to passivate different surfaces - Change `PASSIVANT` to use different passivating species -## References +## References. 1. Hansen, U., & Vogl, P. (1998). Hydrogen passivation of silicon surfaces: A classical molecular-dynamics study. Physical Review B, 57(20), 13295–13304. @@ -179,6 +180,6 @@ To adjust the passivation: 3. Boland, J. J. (1990). Structure of the H‐saturated Si(100) surface. Physical Review Letters, 65(26), 3325–3328. -## Tags +## Tags. `silicon`, `surface`, `passivation`, `hydrogen`, `Si(100)`, `surface reconstruction`, `Si`, `H` \ No newline at end of file