From 6322253caac5d2687cc9896ef1ce1735472457d9 Mon Sep 17 00:00:00 2001 From: VsevolodX Date: Tue, 6 Oct 2026 17:42:03 -0700 Subject: [PATCH 01/10] SOF-8065: graphene on SiO2 simulation tutorial page, nav, overview and index links Co-Authored-By: Claude Sonnet 5.5 --- lang/en/docs/index-guide.md | 2 +- ...-3d-graphene-silicon-dioxide-simulation.md | 192 ++++++++++++++++++ .../tutorials/materials/specific/overview.md | 2 +- mkdocs-guide.yml | 1 + mkdocs.yml | 1 + 5 files changed, 196 insertions(+), 2 deletions(-) create mode 100644 lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide-simulation.md diff --git a/lang/en/docs/index-guide.md b/lang/en/docs/index-guide.md index 4eef020ee..c74f6d172 100644 --- a/lang/en/docs/index-guide.md +++ b/lang/en/docs/index-guide.md @@ -44,7 +44,7 @@ Step-by-step recipes reproducing published work, one row per publication: the st | Liu et al. (2014)[^9] | Twisted bilayer | [MoS2](tutorials/materials/specific/interface-bilayer-twisted-commensurate-lattices-molybdenum-disulfide.md) | [Band structure](tutorials/materials/specific/interface-bilayer-twisted-commensurate-lattices-molybdenum-disulfide-simulation.md) | | Jung et al. (2015)[^10] | 2D–2D interface | [Graphene / h-BN](tutorials/materials/specific/interface-2d-2d-graphene-boron-nitride.md) | Band structure, total energies (Coming Soon) | | Shan et al. (2011)[^11] | 3D–3D interface | [Cu / SiO2](tutorials/materials/specific/interface-3d-3d-copper-silicon-dioxide.md) | Band structure (Coming Soon) | -| Kang et al. (2008)[^12] | 2D–3D interface | [Graphene / SiO2](tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide.md) | Band structure (Coming Soon) | +| Kang et al. (2008)[^12] | 2D–3D interface | [Graphene / SiO2](tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide.md) | [Doping and band gap](tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide-simulation.md) | | Dahal et al. (2014)[^13] | Interface optimization | [Graphene / Ni(111)](tutorials/materials/specific/optimization-interface-film-xy-position-graphene-nickel.md) | [Registry and work of adhesion](tutorials/materials/specific/optimization-interface-film-xy-position-graphene-nickel-simulation.md) | | Saidi et al. (2015)[^14] | Adatom island | [Pt on MoS2](tutorials/materials/specific/defect-point-adatom-island-molybdenum-disulfide-platinum.md) | Binding energy per Pt atom, density of states (Coming Soon) | | Aradi et al. (2007)[^15] | H-passivated nanowire | [Si](tutorials/materials/specific/passivation-edge-nanowire-silicon.md) | Band gap, density of states, formation energy (Coming Soon) | diff --git a/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide-simulation.md b/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide-simulation.md new file mode 100644 index 000000000..69608fe42 --- /dev/null +++ b/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide-simulation.md @@ -0,0 +1,192 @@ +--- +tags: + - 2D + - 3D + - graphene + - silicon dioxide + - interface + - band-structure + - C-2D-INT-Z + +hide: + - tags +# YAML header +render_macros: true +--- + +# Graphene on SiO2 (alpha-quartz) (Doping and Band Gap) + +## 1. Introduction + +This tutorial calculates the band structure of the graphene on O-terminated α-quartz(0001) interface created in the structure tutorial, then reads the position of the Dirac point relative to the Fermi level and the gap at K, reproducing results from the following manuscript. + +!!!note "Manuscript" + **Yong-Ju Kang, Joongoo Kang, and K. J. Chang** + **Electronic structure of graphene and doping effect on SiO2** + Physical Review B 78, 115404 (2008) + [DOI: 10.1103/PhysRevB.78.115404](https://doi.org/10.1103/PhysRevB.78.115404){:target='_blank'} [@Kang2008] + +The compared quantities are from Sec. III and Fig. 3(a) of the manuscript, for the metastable geometry with the graphene at d = 2.58 Å above the surface: graphene is p-doped, the gap at the Dirac point is 0.13 eV, and the Dirac point lies about 1.2 eV above the Fermi level (read off Fig. 3(a)). + +## 2. Prerequisites + +Run the [structure creation tutorial](interface-2d-3d-graphene-silicon-dioxide.md) first. Its `interface_2d_3d_graphene_silicon_dioxide.ipynb` notebook saves the interface to the `uploads` folder under the name `C(001)-O2Si(001), Interface, Strain 1.875pct`, which this notebook loads. + +## 3. Workflow overview + +The notebook runs the Standata `band_structure.json` workflow, which chains `pw_scf` and `pw_bands`, as one job on the interface. With `RELAX = True` it first runs the Standata `fixed_cell_relaxation.json` workflow as a separate job and takes the band structure on the relaxed structure. + +The notebook then reads the band structure at K, takes the Dirac point as the midpoint of the two bands adjacent to the Fermi level, and prints it and the gap beside the manuscript's values with the deviation in percent. Re-running the notebook finds an already-finished job by its material and workflow name and reuses it instead of resubmitting. + +## 4. Calculation parameters + +Cell 1.2 sets the material name: + +```python +# Name saved by interface_2d_3d_graphene_silicon_dioxide.ipynb. +INTERFACE_NAME = "C(001)-O2Si(001), Interface, Strain 1.875pct" +``` + +Cell 1.3 sets the organization, the cluster and the workflow names: + +```python +from datetime import datetime +from mat3ra.ide.compute import QueueName + +ORGANIZATION_NAME = None # set to your organization name (full or partial); otherwise, your default one is used +FOLDER = "./uploads" + +RELAX_WORKFLOW_SEARCH_TERM = "fixed_cell_relaxation.json" +BAND_STRUCTURE_WORKFLOW_SEARCH_TERM = "band_structure.json" +MY_WORKFLOW_NAME = "Band Structure" +APPLICATION_NAME = "espresso" + +# NOTE: False reads the band structure as built; True relaxes the interface once (fixed cell, whole +# slab) before the band structure. Kang et al.'s 0.13 eV gap comes from the relaxed O positions, so +# RELAX = True is the regime that can reproduce it; it is also the slowest job. +RELAX = False + +CLUSTER_NAME = "001" # specify full or partial name i.e. "cluster-001" to select +QUEUE_NAME = QueueName.OR +PPN = 16 # queue OR on cluster-001 allows at most 16 cores per node +TIME_LIMIT = "24:00:00" # covers the optional relaxation of this 71-atom cell + +timestamp = datetime.now().strftime("%Y-%m-%d %H:%M") +POLL_INTERVAL = 60 # seconds +``` + +Cell 1.4 sets the DFT parameters: + +```python +MODEL_SUBTYPE = "lda" +FUNCTIONAL = "pz" # Kang et al. 2008 use LDA +PSEUDOPOTENTIAL_TYPE = "us" # GBRV ultrasoft, the only LDA family the platform publishes for Si, O and C +ECUTWFC = 40 # Ry, GBRV's recommended wavefunction cutoff +ECUTRHO = 200 # Ry, GBRV's recommended charge-density cutoff + +KPOINT_DENSITY = 4 # gives 6 x 6 x 1 on the 1x1 quartz cell, Kang et al. Sec. II +MODEL_TAG = f"{FUNCTIONAL}-{PSEUDOPOTENTIAL_TYPE} {ECUTWFC}-{ECUTRHO}Ry k{KPOINT_DENSITY}" + +SCF_UNIT = "pw_scf" +BANDS_UNIT = "pw_bands" +RELAX_UNIT = "pw_relax" +SMEARING_SETTINGS = {"degauss": 0.01} # Ry; the doped graphene has no gap at E_F +RELAXATION_SETTINGS = {"forc_conv_thr": 1.17e-3, "nstep": 100} # 0.03 eV/Å, Kang et al. 2008 Sec. II +# Names the relaxation job; the relaxed structure itself is found by content hash. +RELAX_TAG = f"{MODEL_TAG} f{RELAXATION_SETTINGS['forc_conv_thr']}" + +KPATH_STEPS = 20 +KPATH = [ + {"point": "K", "steps": KPATH_STEPS}, + {"point": "Γ", "steps": KPATH_STEPS}, + {"point": "M", "steps": KPATH_STEPS}, + {"point": "K", "steps": 1}, +] +``` + +| manuscript | this notebook | +|---|---| +| LDA | LDA (`pz`) | +| ultrasoft pseudopotentials | GBRV ultrasoft, 40/200 Ry | +| 6×6×1 k-mesh, 1×1 quartz cell (Sec. II) | `KPOINT_DENSITY = 4`, 6×6×1 | +| 2×2 graphene on 1×1 quartz | the same, as built by the structure notebook | +| 14 SiO2 bilayers, H-passivated back side | 21 Si planes, bare back side | +| 20 Å vacuum | as built by the structure notebook | +| manuscript quartz cell | standata quartz cell, 2.3% larger in a | +| d = 2.58 Å, metastable geometry (Sec. III) | d = 2.58 Å | + +The structure is the example as the structure notebook builds it. The bare back surface is the face the manuscript (p. 2) calls chemically inactive. Cell 3.1 re-sets the loaded cell to 120° with `create_supercell([[1, 0, 0], [-1, 1, 0], [0, 0, 1]])` and `lattice.type = "HEX"`, so the symbolic K point of `KPATH` lies on the band path. + +## 5. Step-by-step instructions + +### 5.1. Open the notebook + +Navigate to the API examples repository and open: + +``` +other/materials_designer/specific_examples/interface_2d_3d_graphene_silicon_dioxide_SIMULATION.ipynb +``` + +### 5.2. Configure parameters + +In cell 1.3, set `ORGANIZATION_NAME` and `CLUSTER_NAME` to the account's organization and cluster. `INTERFACE_NAME` in cell 1.2 already holds the name the structure notebook saves; leave it unchanged unless the material was renamed. + +### 5.3. Run the notebook + +Select *Run* > *Run All*. The notebook [authenticates with the platform]({{ interface_url }}/jupyterlite/authentication.md), loads the interface, re-sets its cell to 120° and prints its provenance (composition, number of atoms, gamma, valence electrons), saves it to the platform, configures the DFT model and the k-grid, creates the compute configuration, then submits the band structure job and waits for it to finish. Once finished, the notebook retrieves the band structure, prints E_F, E_D − E_F and the gap at K, and prints the comparison with the manuscript. + +### 5.4. Relax the interface (optional) + +Set `RELAX = True` in cell 1.3 and run the notebook. The interface is relaxed once (fixed cell, whole slab, force threshold 0.03 eV/Å, Sec. II) and saved to the account as ` relaxed`; the band structure is taken on that geometry. A relaxed structure already on the account is found by its content and reused. + +### 5.5. Re-run the notebook + +Running the notebook again finds the finished job by material and workflow name and reuses it rather than resubmitting. + +## 6. Expected results + +| quantity | manuscript | this notebook, `RELAX = False` | this notebook, `RELAX = True` | +|---|---|---|---| +| doping | p-type (Sec. III) | TODO(live run) | TODO(live run) | +| E_D − E_F (eV) | ≈ +1.2 (Fig. 3(a) read-off) | TODO(live run) | TODO(live run) | +| gap at K (eV) | 0.13 (Sec. III) | TODO(live run) | TODO(live run) | + +The notebook's final cell prints the doping sign, E_D − E_F and the gap at K beside the manuscript's values, with the deviation in percent. + +## 7. Customization options + +`KPOINT_DENSITY` sets the k-grid of the SCF calculation; `KPATH_STEPS` sets the number of points on each segment of the band path; `ECUTWFC` and `ECUTRHO` set the plane-wave cutoffs; `SMEARING_SETTINGS["degauss"]` sets the Gaussian smearing width. `MODEL_TAG` is built from the functional, pseudopotential type, cutoffs and k-density and is part of the workflow name, so changing any of them creates a new job rather than reusing the one already run. + +`RELAXATION_SETTINGS` sets the force convergence threshold and the maximum number of relaxation steps; `RELAX_TAG` carries the threshold into the relaxation job's name. + +To use a different interface, set `INTERFACE_NAME` to the name of another material saved in the `uploads` folder. + +## 8. Troubleshooting + +### 8.1. Material not found + +`ValueError: No material named …` means the structure notebook has not been run, or `INTERFACE_NAME` does not match. Run the [structure tutorial](interface-2d-3d-graphene-silicon-dioxide.md) first; the name must be exactly `C(001)-O2Si(001), Interface, Strain 1.875pct`. + +### 8.2. No number printed with `RELAX = True` + +On the first run with `RELAX = True` the notebook submits the relaxation job and prints no E_D − E_F or gap until the relaxed structure is available. Re-run the notebook once the relaxation has finished; it finds the relaxed structure and runs the band structure on it. + +### 8.3. Cluster not found + +`ValueError: Cluster '001' not found` means no cluster whose name contains `CLUSTER_NAME` is registered for the account. The error lists the available clusters; set `CLUSTER_NAME` to one of them. + +### 8.4. The gap or E_D − E_F is far from the manuscript + +Check the provenance print of cell 3.1 first: it must show `gamma = 120.000°`. Any other value means the cell was not re-set and K is not on the band path. + +## 9. Interactive JupyterLite notebook + +{% with origin_url=config.extra.jupyterlite.origin_url_lab %} +{% with notebooks_path_root=config.extra.jupyterlite.notebooks_path_root %} +{% with notebook_name='specific_examples/interface_2d_3d_graphene_silicon_dioxide_SIMULATION.ipynb' %} +{% include 'jupyterlite_embed.html' %} +{% endwith %} +{% endwith %} +{% endwith %} + +## 10. References diff --git a/lang/en/docs/tutorials/materials/specific/overview.md b/lang/en/docs/tutorials/materials/specific/overview.md index 8968f21fe..68877b955 100644 --- a/lang/en/docs/tutorials/materials/specific/overview.md +++ b/lang/en/docs/tutorials/materials/specific/overview.md @@ -49,7 +49,7 @@ This document provides a comprehensive catalog of materials science tutorials or ##### 2.1.1.2. Graphene/SiO2 Interface C-2D-INT-Z **Structure**: [Create Graphene/SiO2 Interface](interface-2d-3d-graphene-silicon-dioxide.md) -**Properties**: Calculate band structure (Coming Soon) +**Properties**: [Calculate Doping and Band Gap of Graphene on SiO2](interface-2d-3d-graphene-silicon-dioxide-simulation.md) **DOI**: [10.1103/PhysRevB.78.115404](https://doi.org/10.1103/PhysRevB.78.115404){:target='_blank'} ![Graphene on Silicon Dioxide](../../../images/tutorials/materials/interfaces/interface_2d_3d_graphene_silicon_dioxide/0-figure-from-manuscript.webp "Graphene on Silicon Dioxide, FIG. 1(b)"){ style="max-height:500px;width:auto;" } diff --git a/mkdocs-guide.yml b/mkdocs-guide.yml index ba00f7226..f0dc03b2c 100644 --- a/mkdocs-guide.yml +++ b/mkdocs-guide.yml @@ -211,6 +211,7 @@ nav: - Graphene / h-BN Interface: tutorials/materials/specific/interface-2d-2d-graphene-boron-nitride.md - Cu / SiO2 Interface: tutorials/materials/specific/interface-3d-3d-copper-silicon-dioxide.md - Graphene / SiO2 Interface: tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide.md + - Graphene on SiO2 (Doping and Band Gap): tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide-simulation.md - High-k Metal Gate Stack: tutorials/materials/specific/heterostructure-silicon-silicon-dioxide-hafnium-dioxide-titanium-nitride.md - Ripple Perturbation in Graphene: tutorials/materials/specific/perturbation-ripples-graphene.md - Grain Boundary in Cu (FCC): tutorials/materials/specific/defect-planar-grain-boundary-3d-fcc-metals-copper.md diff --git a/mkdocs.yml b/mkdocs.yml index 474190c5e..f2c7bcb51 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -172,6 +172,7 @@ nav: - Interface between Graphene and h-BN: tutorials/materials/specific/interface-2d-2d-graphene-boron-nitride.md - Interface between Copper and SiO2 (Cristobalite): tutorials/materials/specific/interface-3d-3d-copper-silicon-dioxide.md - Interface between Graphene and SiO2 (alpha-quartz): tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide.md + - Graphene on SiO2 (Doping and Band Gap): tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide-simulation.md - High-k Metal Gate Stack (Si/SiO2/HfO2/TiN): tutorials/materials/specific/heterostructure-silicon-silicon-dioxide-hafnium-dioxide-titanium-nitride.md - Ripple perturbation of a Graphene sheet: tutorials/materials/specific/perturbation-ripples-graphene.md - Grain Boundary in FCC Metals (Copper): tutorials/materials/specific/defect-planar-grain-boundary-3d-fcc-metals-copper.md From 230a67650d8f5061ee65456d88cfe80b2e0ed969 Mon Sep 17 00:00:00 2001 From: VsevolodX Date: Tue, 6 Oct 2026 18:35:53 -0700 Subject: [PATCH 02/10] SOF-8065: follow the example's 5-cell substrate and vacuum; re-quote simulation cells at current HEAD Co-Authored-By: Claude Sonnet 5.5 --- ...erface-2d-3d-graphene-silicon-dioxide-simulation.md | 10 +++++----- .../interface-2d-3d-graphene-silicon-dioxide.md | 8 ++++---- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide-simulation.md b/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide-simulation.md index 69608fe42..fbf8ef9d9 100644 --- a/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide-simulation.md +++ b/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide-simulation.md @@ -36,7 +36,7 @@ Run the [structure creation tutorial](interface-2d-3d-graphene-silicon-dioxide.m The notebook runs the Standata `band_structure.json` workflow, which chains `pw_scf` and `pw_bands`, as one job on the interface. With `RELAX = True` it first runs the Standata `fixed_cell_relaxation.json` workflow as a separate job and takes the band structure on the relaxed structure. -The notebook then reads the band structure at K, takes the Dirac point as the midpoint of the two bands adjacent to the Fermi level, and prints it and the gap beside the manuscript's values with the deviation in percent. Re-running the notebook finds an already-finished job by its material and workflow name and reuses it instead of resubmitting. +The notebook then reads the band structure at K, takes the Dirac point as the midpoint of the Dirac pair of bands, and prints it and the gap beside the manuscript's values with the deviation in percent. Re-running the notebook finds an already-finished job by its material and workflow name and reuses it instead of resubmitting. ## 4. Calculation parameters @@ -69,7 +69,7 @@ RELAX = False CLUSTER_NAME = "001" # specify full or partial name i.e. "cluster-001" to select QUEUE_NAME = QueueName.OR PPN = 16 # queue OR on cluster-001 allows at most 16 cores per node -TIME_LIMIT = "24:00:00" # covers the optional relaxation of this 71-atom cell +TIME_LIMIT = "04:00:00" timestamp = datetime.now().strftime("%Y-%m-%d %H:%M") POLL_INTERVAL = 60 # seconds @@ -110,8 +110,8 @@ KPATH = [ | ultrasoft pseudopotentials | GBRV ultrasoft, 40/200 Ry | | 6×6×1 k-mesh, 1×1 quartz cell (Sec. II) | `KPOINT_DENSITY = 4`, 6×6×1 | | 2×2 graphene on 1×1 quartz | the same, as built by the structure notebook | -| 14 SiO2 bilayers, H-passivated back side | 21 Si planes, bare back side | -| 20 Å vacuum | as built by the structure notebook | +| 14 SiO2 bilayers, H-passivated back side | 15 Si planes (5 conventional cells; one bilayer read as one Si plane with its O), bare back side | +| 20 Å vacuum | about 20 Å, as built by the structure notebook | | manuscript quartz cell | standata quartz cell, 2.3% larger in a | | d = 2.58 Å, metastable geometry (Sec. III) | d = 2.58 Å | @@ -133,7 +133,7 @@ In cell 1.3, set `ORGANIZATION_NAME` and `CLUSTER_NAME` to the account's organiz ### 5.3. Run the notebook -Select *Run* > *Run All*. The notebook [authenticates with the platform]({{ interface_url }}/jupyterlite/authentication.md), loads the interface, re-sets its cell to 120° and prints its provenance (composition, number of atoms, gamma, valence electrons), saves it to the platform, configures the DFT model and the k-grid, creates the compute configuration, then submits the band structure job and waits for it to finish. Once finished, the notebook retrieves the band structure, prints E_F, E_D − E_F and the gap at K, and prints the comparison with the manuscript. +Select *Run* > *Run All*. The notebook [authenticates with the platform]({{ interface_url }}/jupyterlite/authentication.md), loads the interface, re-sets its cell to 120° and prints its provenance (composition, number of atoms, gamma, valence electrons, occupied bands), saves it to the platform, configures the DFT model and the k-grid, creates the compute configuration, then submits the band structure job and waits for it to finish. For the example as built the provenance reads Si15O30C8, 53 atoms, gamma = 120.000°, 272 valence electrons and 136 occupied bands. Once finished, the notebook retrieves the band structure, prints the bands at K around the Fermi level and the Dirac pair, then E_F, E_D − E_F and the gap at K, and prints the comparison with the manuscript. ### 5.4. Relax the interface (optional) diff --git a/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide.md b/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide.md index faa2e83cb..2931ae9fd 100644 --- a/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide.md +++ b/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide.md @@ -55,9 +55,9 @@ Select the input materials with the first being the substrate (SiO₂) and the s Open the `create_interface_with_min_strain_zsl.ipynb` notebook and modify the parameters as follows: - Miller indices: `(0, 0, 1)` for both materials -- Thickness: `1` layer for graphene, `7` layers for SiO₂ (resulting in 14 bilayers as specified in the manuscript) +- Thickness: `1` layer for graphene, `5` layers for SiO₂ (5 conventional cells = 15 Si planes, the manuscript's 14 SiO₂ bilayers rounded to a whole cell) - Interface distance: `2.58` Å (as stated in the manuscript) -- Interface vacuum: `20.0` Å (as specified in the manuscript) +- Interface vacuum: `17.5` Å (gives about 20 Å above graphene, as specified in the manuscript) Let's set `MAX_AREA=150` Ų to allow for a larger search area for the superlattice search algorithm. @@ -79,14 +79,14 @@ FILM_USE_ORTHOGONAL_C = True SUBSTRATE_INDEX = 0 SUBSTRATE_MILLER_INDICES = (0, 0, 1) -SUBSTRATE_THICKNESS = 7 # in atomic layers (for 14 bilayers -- from manuscript) +SUBSTRATE_THICKNESS = 5 # conventional cells along c; 5 gives 15 Si planes, the manuscript's 14 SiO2 bilayers rounded to a whole cell SUBSTRATE_TERMINATION_FORMULA = None # if None, the first termination will be used SUBSTRATE_VACUUM = 0.0 # in angstroms SUBSTRATE_XY_SUPERCELL_MATRIX = [[1, 0], [0, 1]] SUBSTRATE_USE_ORTHOGONAL_C = True INTERFACE_DISTANCE = 2.58 # Gap between substrate and film, in Angstrom -INTERFACE_VACUUM = 20.0 # Vacuum over film, in Angstrom +INTERFACE_VACUUM = 17.5 # Vacuum over film, in Angstrom; gives about 20 A above graphene, as in the manuscript # Whether to convert materials to conventional cells before creating slabs. # To create interfaces with smaller cells, set this flag to False. (and pass already conventional cells as input) From 16fc94ad8dfa169b814d22f095dfaf245bd9acf4 Mon Sep 17 00:00:00 2001 From: VsevolodX Date: Tue, 6 Oct 2026 20:00:59 -0700 Subject: [PATCH 03/10] SOF-8065: measured results and runtime from the gate run Co-Authored-By: Claude Sonnet 5.5 --- ...-3d-graphene-silicon-dioxide-simulation.md | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide-simulation.md b/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide-simulation.md index fbf8ef9d9..7460f4c60 100644 --- a/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide-simulation.md +++ b/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide-simulation.md @@ -133,7 +133,7 @@ In cell 1.3, set `ORGANIZATION_NAME` and `CLUSTER_NAME` to the account's organiz ### 5.3. Run the notebook -Select *Run* > *Run All*. The notebook [authenticates with the platform]({{ interface_url }}/jupyterlite/authentication.md), loads the interface, re-sets its cell to 120° and prints its provenance (composition, number of atoms, gamma, valence electrons, occupied bands), saves it to the platform, configures the DFT model and the k-grid, creates the compute configuration, then submits the band structure job and waits for it to finish. For the example as built the provenance reads Si15O30C8, 53 atoms, gamma = 120.000°, 272 valence electrons and 136 occupied bands. Once finished, the notebook retrieves the band structure, prints the bands at K around the Fermi level and the Dirac pair, then E_F, E_D − E_F and the gap at K, and prints the comparison with the manuscript. +Select *Run* > *Run All*. The notebook [authenticates with the platform]({{ interface_url }}/jupyterlite/authentication.md), loads the interface, re-sets its cell to 120° and prints its provenance (composition, number of atoms, gamma, valence electrons, occupied bands), saves it to the platform, configures the DFT model and the k-grid, creates the compute configuration, then submits the band structure job and waits for it to finish. For the example as built the provenance reads Si15O30C8, 53 atoms, gamma = 120.000°, 272 valence electrons and 136 occupied bands. Once finished (measured on cluster-001, queue OR, 16 cores: SCF 49 min, band path 20 min, 74.5 min active in total), the notebook retrieves the band structure, prints the bands at K around the Fermi level and the Dirac pair, then E_F, E_D − E_F and the gap at K, and prints the comparison with the manuscript. ### 5.4. Relax the interface (optional) @@ -147,11 +147,20 @@ Running the notebook again finds the finished job by material and workflow name | quantity | manuscript | this notebook, `RELAX = False` | this notebook, `RELAX = True` | |---|---|---|---| -| doping | p-type (Sec. III) | TODO(live run) | TODO(live run) | -| E_D − E_F (eV) | ≈ +1.2 (Fig. 3(a) read-off) | TODO(live run) | TODO(live run) | -| gap at K (eV) | 0.13 (Sec. III) | TODO(live run) | TODO(live run) | +| doping | p-type (Sec. III) | p-type | not run | +| E_D − E_F (eV) | ≈ +1.2 (Fig. 3(a) read-off) | +1.115 (−7.1 %) | not run | +| gap at K (eV) | 0.13 (Sec. III) | 0.044 (−66.3 %) | not run | -The notebook's final cell prints the doping sign, E_D − E_F and the gap at K beside the manuscript's values, with the deviation in percent. +Kang's gap is for the relaxed metastable geometry (Sec. III). The notebook's final cell prints, for `RELAX = False`: + +``` +Regime: unrelaxed SCF +Doping: p-type (Kang et al., 2008: p-type) +E_D - E_F (Kang et al., 2008): +1.200 eV +E_D - E_F (this notebook): +1.115 eV (-7.1 % deviation) +Gap at K (Kang et al., 2008): 0.130 eV +Gap at K (this notebook): 0.044 eV (-66.3 % deviation) +``` ## 7. Customization options From d7e9101abd4e0a79ec3ad66c222689a92b9976a3 Mon Sep 17 00:00:00 2001 From: VsevolodX Date: Tue, 6 Oct 2026 20:30:25 -0700 Subject: [PATCH 04/10] SOF-8065: documentation review round 1: images, Troubleshooting and customization trimmed to what the notebook does, naming, re-quoted cells Co-Authored-By: Claude Sonnet 5.5 --- .../3-structure-5-cells.webp | 3 + .../band-structure-this-notebook.webp | 3 + .../kang2008-fig3a-band-structure.webp | 3 + lang/en/docs/index-guide.md | 2 +- ...-3d-graphene-silicon-dioxide-simulation.md | 68 ++++++++++--------- ...nterface-2d-3d-graphene-silicon-dioxide.md | 10 ++- .../tutorials/materials/specific/overview.md | 2 +- mkdocs-guide.yml | 2 +- mkdocs.yml | 2 +- 9 files changed, 52 insertions(+), 43 deletions(-) create mode 100644 images/tutorials/materials/interfaces/interface_2d_3d_graphene_silicon_dioxide/3-structure-5-cells.webp create mode 100644 images/tutorials/materials/interfaces/interface_2d_3d_graphene_silicon_dioxide/band-structure-this-notebook.webp create mode 100644 images/tutorials/materials/interfaces/interface_2d_3d_graphene_silicon_dioxide/kang2008-fig3a-band-structure.webp diff --git a/images/tutorials/materials/interfaces/interface_2d_3d_graphene_silicon_dioxide/3-structure-5-cells.webp b/images/tutorials/materials/interfaces/interface_2d_3d_graphene_silicon_dioxide/3-structure-5-cells.webp new file mode 100644 index 000000000..b7aa28ee4 --- /dev/null +++ b/images/tutorials/materials/interfaces/interface_2d_3d_graphene_silicon_dioxide/3-structure-5-cells.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1fc1edf6bb1d9e40ea3416fb2dc2bd936eb430fde7d11d1af8c861a0c06ab669 +size 42144 diff --git a/images/tutorials/materials/interfaces/interface_2d_3d_graphene_silicon_dioxide/band-structure-this-notebook.webp b/images/tutorials/materials/interfaces/interface_2d_3d_graphene_silicon_dioxide/band-structure-this-notebook.webp new file mode 100644 index 000000000..648e85188 --- /dev/null +++ b/images/tutorials/materials/interfaces/interface_2d_3d_graphene_silicon_dioxide/band-structure-this-notebook.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af86fc60d3246f768d677cbcec42d076390645d0b3b6018d754cf268c5a3f5d1 +size 32412 diff --git a/images/tutorials/materials/interfaces/interface_2d_3d_graphene_silicon_dioxide/kang2008-fig3a-band-structure.webp b/images/tutorials/materials/interfaces/interface_2d_3d_graphene_silicon_dioxide/kang2008-fig3a-band-structure.webp new file mode 100644 index 000000000..6fa75fe3f --- /dev/null +++ b/images/tutorials/materials/interfaces/interface_2d_3d_graphene_silicon_dioxide/kang2008-fig3a-band-structure.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:526879d80ea9cc78116565b120c3abcfbcc4a16b5a7882ad79846214b09875c4 +size 16428 diff --git a/lang/en/docs/index-guide.md b/lang/en/docs/index-guide.md index c74f6d172..8a845b84d 100644 --- a/lang/en/docs/index-guide.md +++ b/lang/en/docs/index-guide.md @@ -44,7 +44,7 @@ Step-by-step recipes reproducing published work, one row per publication: the st | Liu et al. (2014)[^9] | Twisted bilayer | [MoS2](tutorials/materials/specific/interface-bilayer-twisted-commensurate-lattices-molybdenum-disulfide.md) | [Band structure](tutorials/materials/specific/interface-bilayer-twisted-commensurate-lattices-molybdenum-disulfide-simulation.md) | | Jung et al. (2015)[^10] | 2D–2D interface | [Graphene / h-BN](tutorials/materials/specific/interface-2d-2d-graphene-boron-nitride.md) | Band structure, total energies (Coming Soon) | | Shan et al. (2011)[^11] | 3D–3D interface | [Cu / SiO2](tutorials/materials/specific/interface-3d-3d-copper-silicon-dioxide.md) | Band structure (Coming Soon) | -| Kang et al. (2008)[^12] | 2D–3D interface | [Graphene / SiO2](tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide.md) | [Doping and band gap](tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide-simulation.md) | +| Kang et al. (2008)[^12] | 2D–3D interface | [Graphene / SiO2](tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide.md) | [Doping and gap at the Dirac point](tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide-simulation.md) | | Dahal et al. (2014)[^13] | Interface optimization | [Graphene / Ni(111)](tutorials/materials/specific/optimization-interface-film-xy-position-graphene-nickel.md) | [Registry and work of adhesion](tutorials/materials/specific/optimization-interface-film-xy-position-graphene-nickel-simulation.md) | | Saidi et al. (2015)[^14] | Adatom island | [Pt on MoS2](tutorials/materials/specific/defect-point-adatom-island-molybdenum-disulfide-platinum.md) | Binding energy per Pt atom, density of states (Coming Soon) | | Aradi et al. (2007)[^15] | H-passivated nanowire | [Si](tutorials/materials/specific/passivation-edge-nanowire-silicon.md) | Band gap, density of states, formation energy (Coming Soon) | diff --git a/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide-simulation.md b/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide-simulation.md index 7460f4c60..4a3c28153 100644 --- a/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide-simulation.md +++ b/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide-simulation.md @@ -14,11 +14,12 @@ hide: render_macros: true --- -# Graphene on SiO2 (alpha-quartz) (Doping and Band Gap) +# Graphene on SiO2 (alpha-quartz): Doping and Gap at the Dirac Point + ## 1. Introduction -This tutorial calculates the band structure of the graphene on O-terminated α-quartz(0001) interface created in the structure tutorial, then reads the position of the Dirac point relative to the Fermi level and the gap at K, reproducing results from the following manuscript. +This tutorial calculates the band structure of the graphene on O-terminated α-quartz(0001) interface created in the structure tutorial, then reads the position of the Dirac point relative to the Fermi level and the gap at K, reproducing results from the following manuscript. The calculation uses density functional theory (DFT) in the local density approximation (LDA) with GBRV (Garrity-Bennett-Rabe-Vanderbilt) ultrasoft pseudopotentials; a self-consistent field (SCF) step precedes the band path. !!!note "Manuscript" **Yong-Ju Kang, Joongoo Kang, and K. J. Chang** @@ -28,16 +29,21 @@ This tutorial calculates the band structure of the graphene on O-terminated α-q The compared quantities are from Sec. III and Fig. 3(a) of the manuscript, for the metastable geometry with the graphene at d = 2.58 Å above the surface: graphene is p-doped, the gap at the Dirac point is 0.13 eV, and the Dirac point lies about 1.2 eV above the Fermi level (read off Fig. 3(a)). +![Band structure of graphene on SiO2 from the manuscript](../../../images/tutorials/materials/interfaces/interface_2d_3d_graphene_silicon_dioxide/kang2008-fig3a-band-structure.webp "Band structure of graphene on the O-terminated surface, metastable geometry (Kang et al. 2008, Fig. 3(a)); path Γ-M-K-Γ, Fermi level at 0") + + ## 2. Prerequisites Run the [structure creation tutorial](interface-2d-3d-graphene-silicon-dioxide.md) first. Its `interface_2d_3d_graphene_silicon_dioxide.ipynb` notebook saves the interface to the `uploads` folder under the name `C(001)-O2Si(001), Interface, Strain 1.875pct`, which this notebook loads. + ## 3. Workflow overview The notebook runs the Standata `band_structure.json` workflow, which chains `pw_scf` and `pw_bands`, as one job on the interface. With `RELAX = True` it first runs the Standata `fixed_cell_relaxation.json` workflow as a separate job and takes the band structure on the relaxed structure. The notebook then reads the band structure at K, takes the Dirac point as the midpoint of the Dirac pair of bands, and prints it and the gap beside the manuscript's values with the deviation in percent. Re-running the notebook finds an already-finished job by its material and workflow name and reuses it instead of resubmitting. + ## 4. Calculation parameters Cell 1.2 sets the material name: @@ -62,8 +68,7 @@ MY_WORKFLOW_NAME = "Band Structure" APPLICATION_NAME = "espresso" # NOTE: False reads the band structure as built; True relaxes the interface once (fixed cell, whole -# slab) before the band structure. Kang et al.'s 0.13 eV gap comes from the relaxed O positions, so -# RELAX = True is the regime that can reproduce it; it is also the slowest job. +# slab) and reads the band structure off the relaxed structure. RELAX = False CLUSTER_NAME = "001" # specify full or partial name i.e. "cluster-001" to select @@ -81,41 +86,45 @@ Cell 1.4 sets the DFT parameters: MODEL_SUBTYPE = "lda" FUNCTIONAL = "pz" # Kang et al. 2008 use LDA PSEUDOPOTENTIAL_TYPE = "us" # GBRV ultrasoft, the only LDA family the platform publishes for Si, O and C +GBRV_VALENCE = {"Si": 4, "O": 6, "C": 4} # valence electrons per atom of the GBRV pseudopotentials ECUTWFC = 40 # Ry, GBRV's recommended wavefunction cutoff ECUTRHO = 200 # Ry, GBRV's recommended charge-density cutoff KPOINT_DENSITY = 4 # gives 6 x 6 x 1 on the 1x1 quartz cell, Kang et al. Sec. II -MODEL_TAG = f"{FUNCTIONAL}-{PSEUDOPOTENTIAL_TYPE} {ECUTWFC}-{ECUTRHO}Ry k{KPOINT_DENSITY}" +SMEARING_SETTINGS = {"degauss": 0.01} # Ry; the doped graphene has no gap at E_F +KPATH_STEPS = 20 +MODEL_TAG = (f"{FUNCTIONAL}-{PSEUDOPOTENTIAL_TYPE} {ECUTWFC}-{ECUTRHO}Ry k{KPOINT_DENSITY} " + f"p{KPATH_STEPS} g{SMEARING_SETTINGS['degauss']}") SCF_UNIT = "pw_scf" BANDS_UNIT = "pw_bands" RELAX_UNIT = "pw_relax" -SMEARING_SETTINGS = {"degauss": 0.01} # Ry; the doped graphene has no gap at E_F RELAXATION_SETTINGS = {"forc_conv_thr": 1.17e-3, "nstep": 100} # 0.03 eV/Å, Kang et al. 2008 Sec. II # Names the relaxation job; the relaxed structure itself is found by content hash. RELAX_TAG = f"{MODEL_TAG} f{RELAXATION_SETTINGS['forc_conv_thr']}" -KPATH_STEPS = 20 KPATH = [ {"point": "K", "steps": KPATH_STEPS}, {"point": "Γ", "steps": KPATH_STEPS}, {"point": "M", "steps": KPATH_STEPS}, {"point": "K", "steps": 1}, ] +K_INDEX = 0 # KPATH starts at K, so the first point of the band structure's path is K ``` | manuscript | this notebook | |---|---| | LDA | LDA (`pz`) | -| ultrasoft pseudopotentials | GBRV ultrasoft, 40/200 Ry | +| ultrasoft pseudopotentials, VASP, 396 eV cutoff (Sec. II) | GBRV ultrasoft, 40/200 Ry | | 6×6×1 k-mesh, 1×1 quartz cell (Sec. II) | `KPOINT_DENSITY = 4`, 6×6×1 | -| 2×2 graphene on 1×1 quartz | the same, as built by the structure notebook | +| 2×2 graphene on 1×1 quartz | the same, as built by the structure notebook, graphene strained +1.875 % | | 14 SiO2 bilayers, H-passivated back side | 15 Si planes (5 conventional cells; one bilayer read as one Si plane with its O), bare back side | | 20 Å vacuum | about 20 Å, as built by the structure notebook | -| manuscript quartz cell | standata quartz cell, 2.3% larger in a | +| manuscript quartz cell | standata quartz cell, 2.3 % larger in a | | d = 2.58 Å, metastable geometry (Sec. III) | d = 2.58 Å | -The structure is the example as the structure notebook builds it. The bare back surface is the face the manuscript (p. 2) calls chemically inactive. Cell 3.1 re-sets the loaded cell to 120° with `create_supercell([[1, 0, 0], [-1, 1, 0], [0, 0, 1]])` and `lattice.type = "HEX"`, so the symbolic K point of `KPATH` lies on the band path. +The structure is the example as the structure notebook builds it. The bare back surface is the face the manuscript (p. 2) calls chemically inactive. The structure notebook's cell 3.5 sets the cell to the 120° hexagonal setting and types it `HEX`, so the symbolic K point of `KPATH` lies on the band path. + ## 5. Step-by-step instructions @@ -133,25 +142,26 @@ In cell 1.3, set `ORGANIZATION_NAME` and `CLUSTER_NAME` to the account's organiz ### 5.3. Run the notebook -Select *Run* > *Run All*. The notebook [authenticates with the platform]({{ interface_url }}/jupyterlite/authentication.md), loads the interface, re-sets its cell to 120° and prints its provenance (composition, number of atoms, gamma, valence electrons, occupied bands), saves it to the platform, configures the DFT model and the k-grid, creates the compute configuration, then submits the band structure job and waits for it to finish. For the example as built the provenance reads Si15O30C8, 53 atoms, gamma = 120.000°, 272 valence electrons and 136 occupied bands. Once finished (measured on cluster-001, queue OR, 16 cores: SCF 49 min, band path 20 min, 74.5 min active in total), the notebook retrieves the band structure, prints the bands at K around the Fermi level and the Dirac pair, then E_F, E_D − E_F and the gap at K, and prints the comparison with the manuscript. +Select *Run* > *Run All*. The notebook [authenticates with the platform]({{ interface_url }}/jupyterlite/authentication.md), loads the interface and prints its provenance (composition, number of atoms, gamma, interlayer distance, valence electrons, occupied bands), saves it to the platform, configures the DFT model and the k-grid, creates the compute configuration, then submits the band structure job and waits for it to finish. For the example as built the provenance reads Si15O30C8, 53 atoms, gamma = 120.000°, 272 valence electrons and 136 occupied bands. Once finished (measured on cluster-001, queue OR, 16 cores: SCF 49 min, band path 20 min, 74.5 min active in total), the notebook retrieves the band structure, prints the bands at K around the Fermi level and the Dirac pair, then E_F, E_D − E_F and the gap at K, and prints the comparison with the manuscript. ### 5.4. Relax the interface (optional) -Set `RELAX = True` in cell 1.3 and run the notebook. The interface is relaxed once (fixed cell, whole slab, force threshold 0.03 eV/Å, Sec. II) and saved to the account as ` relaxed`; the band structure is taken on that geometry. A relaxed structure already on the account is found by its content and reused. +Set `RELAX = True` in cell 1.3 and run the notebook. The notebook waits for the relaxation job and continues to the band structure in the same run. The interface is relaxed once (fixed cell, whole slab, force threshold 0.03 eV/Å, Sec. II) and saved to the account as ` relaxed`; the band structure is taken on that geometry. A relaxed structure already on the account is found by its content and reused. ### 5.5. Re-run the notebook Running the notebook again finds the finished job by material and workflow name and reuses it rather than resubmitting. + ## 6. Expected results -| quantity | manuscript | this notebook, `RELAX = False` | this notebook, `RELAX = True` | -|---|---|---|---| -| doping | p-type (Sec. III) | p-type | not run | -| E_D − E_F (eV) | ≈ +1.2 (Fig. 3(a) read-off) | +1.115 (−7.1 %) | not run | -| gap at K (eV) | 0.13 (Sec. III) | 0.044 (−66.3 %) | not run | +| quantity | manuscript | this notebook | +|---|---|---| +| doping | p-type (Sec. III) | p-type | +| E_D − E_F (eV) | ≈ +1.2 (Fig. 3(a) read-off) | +1.115 (−7.1 %) | +| gap at K (eV) | 0.13 (Sec. III) | 0.044 (−66.3 %) | -Kang's gap is for the relaxed metastable geometry (Sec. III). The notebook's final cell prints, for `RELAX = False`: +Kang's gap is for the relaxed metastable geometry (Sec. III); the values above are for `RELAX = False`. The notebook's final cell prints: ``` Regime: unrelaxed SCF @@ -162,13 +172,15 @@ Gap at K (Kang et al., 2008): 0.130 eV Gap at K (this notebook): 0.044 eV (-66.3 % deviation) ``` +![Band structure of graphene on SiO2 from this notebook](../../../images/tutorials/materials/interfaces/interface_2d_3d_graphene_silicon_dioxide/band-structure-this-notebook.webp "Band structure of the interface near the Fermi level, RELAX = False (job WLnHsEaMdy3gxbhQe); path K-Γ-M-K, energies relative to E_F") + + ## 7. Customization options -`KPOINT_DENSITY` sets the k-grid of the SCF calculation; `KPATH_STEPS` sets the number of points on each segment of the band path; `ECUTWFC` and `ECUTRHO` set the plane-wave cutoffs; `SMEARING_SETTINGS["degauss"]` sets the Gaussian smearing width. `MODEL_TAG` is built from the functional, pseudopotential type, cutoffs and k-density and is part of the workflow name, so changing any of them creates a new job rather than reusing the one already run. +Changing `ECUTWFC`, `ECUTRHO`, `KPOINT_DENSITY`, `KPATH_STEPS` or `SMEARING_SETTINGS["degauss"]` changes `MODEL_TAG`, which is part of the workflow name, so a new job is created rather than the finished one reused. -`RELAXATION_SETTINGS` sets the force convergence threshold and the maximum number of relaxation steps; `RELAX_TAG` carries the threshold into the relaxation job's name. +The relaxed structure is found by its content and reused regardless of `RELAXATION_SETTINGS`. -To use a different interface, set `INTERFACE_NAME` to the name of another material saved in the `uploads` folder. ## 8. Troubleshooting @@ -176,17 +188,6 @@ To use a different interface, set `INTERFACE_NAME` to the name of another materi `ValueError: No material named …` means the structure notebook has not been run, or `INTERFACE_NAME` does not match. Run the [structure tutorial](interface-2d-3d-graphene-silicon-dioxide.md) first; the name must be exactly `C(001)-O2Si(001), Interface, Strain 1.875pct`. -### 8.2. No number printed with `RELAX = True` - -On the first run with `RELAX = True` the notebook submits the relaxation job and prints no E_D − E_F or gap until the relaxed structure is available. Re-run the notebook once the relaxation has finished; it finds the relaxed structure and runs the band structure on it. - -### 8.3. Cluster not found - -`ValueError: Cluster '001' not found` means no cluster whose name contains `CLUSTER_NAME` is registered for the account. The error lists the available clusters; set `CLUSTER_NAME` to one of them. - -### 8.4. The gap or E_D − E_F is far from the manuscript - -Check the provenance print of cell 3.1 first: it must show `gamma = 120.000°`. Any other value means the cell was not re-set and K is not on the band path. ## 9. Interactive JupyterLite notebook @@ -198,4 +199,5 @@ Check the provenance print of cell 3.1 first: it must show `gamma = 120.000°`. {% endwith %} {% endwith %} + ## 10. References diff --git a/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide.md b/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide.md index 2931ae9fd..3ce0064d2 100644 --- a/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide.md +++ b/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide.md @@ -55,7 +55,7 @@ Select the input materials with the first being the substrate (SiO₂) and the s Open the `create_interface_with_min_strain_zsl.ipynb` notebook and modify the parameters as follows: - Miller indices: `(0, 0, 1)` for both materials -- Thickness: `1` layer for graphene, `5` layers for SiO₂ (5 conventional cells = 15 Si planes, the manuscript's 14 SiO₂ bilayers rounded to a whole cell) +- Thickness: `1` layer for graphene, `5` layers for SiO₂ (5 conventional cells = 15 Si planes, the nearest whole number of cells to the manuscript's 14 SiO₂ bilayers) - Interface distance: `2.58` Å (as stated in the manuscript) - Interface vacuum: `17.5` Å (gives about 20 Å above graphene, as specified in the manuscript) @@ -79,14 +79,14 @@ FILM_USE_ORTHOGONAL_C = True SUBSTRATE_INDEX = 0 SUBSTRATE_MILLER_INDICES = (0, 0, 1) -SUBSTRATE_THICKNESS = 5 # conventional cells along c; 5 gives 15 Si planes, the manuscript's 14 SiO2 bilayers rounded to a whole cell +SUBSTRATE_THICKNESS = 5 # in conventional cells along c: 15 Si planes, the manuscript's 14 bilayers SUBSTRATE_TERMINATION_FORMULA = None # if None, the first termination will be used SUBSTRATE_VACUUM = 0.0 # in angstroms SUBSTRATE_XY_SUPERCELL_MATRIX = [[1, 0], [0, 1]] SUBSTRATE_USE_ORTHOGONAL_C = True INTERFACE_DISTANCE = 2.58 # Gap between substrate and film, in Angstrom -INTERFACE_VACUUM = 17.5 # Vacuum over film, in Angstrom; gives about 20 A above graphene, as in the manuscript +INTERFACE_VACUUM = 17.5 # Angstrom; gives about 20 A above graphene, as the builder adds INTERFACE_DISTANCE above the film too # Whether to convert materials to conventional cells before creating slabs. # To create interfaces with smaller cells, set this flag to False. (and pass already conventional cells as input) @@ -104,8 +104,6 @@ MAX_ANGLE_TOLERANCE = 0.02 REDUCE_RESULT_CELL_TO_PRIMITIVE = True ``` -![Notebook Setup](../../../images/tutorials/materials/interfaces/interface_2d_3d_graphene_silicon_dioxide/2-jl-setup-notebook.webp "Notebook Setup") - ### 2.3 Run the Notebook Run the notebook to generate the interface structure between graphene and silicon dioxide with oxygen termination. @@ -117,7 +115,7 @@ Run the notebook to generate the interface structure between graphene and silico The generation might take some time. After that, the user can pass the material to the Materials Designer for further analysis. -![Gr/SiO2 Interface](../../../images/tutorials/materials/interfaces/interface_2d_3d_graphene_silicon_dioxide/3-jl-result-preview.webp "Gr/SiO2 Interface") +![Gr/SiO2 Interface](../../../images/tutorials/materials/interfaces/interface_2d_3d_graphene_silicon_dioxide/3-structure-5-cells.webp "Gr/SiO2 Interface, side view: graphene on 5 conventional quartz cells (Si15O30C8, 53 atoms)") ## 4. Pass the Material to Materials Designer diff --git a/lang/en/docs/tutorials/materials/specific/overview.md b/lang/en/docs/tutorials/materials/specific/overview.md index 68877b955..a32558590 100644 --- a/lang/en/docs/tutorials/materials/specific/overview.md +++ b/lang/en/docs/tutorials/materials/specific/overview.md @@ -49,7 +49,7 @@ This document provides a comprehensive catalog of materials science tutorials or ##### 2.1.1.2. Graphene/SiO2 Interface C-2D-INT-Z **Structure**: [Create Graphene/SiO2 Interface](interface-2d-3d-graphene-silicon-dioxide.md) -**Properties**: [Calculate Doping and Band Gap of Graphene on SiO2](interface-2d-3d-graphene-silicon-dioxide-simulation.md) +**Properties**: [Calculate Doping and Gap at the Dirac Point of Graphene on SiO2](interface-2d-3d-graphene-silicon-dioxide-simulation.md) **DOI**: [10.1103/PhysRevB.78.115404](https://doi.org/10.1103/PhysRevB.78.115404){:target='_blank'} ![Graphene on Silicon Dioxide](../../../images/tutorials/materials/interfaces/interface_2d_3d_graphene_silicon_dioxide/0-figure-from-manuscript.webp "Graphene on Silicon Dioxide, FIG. 1(b)"){ style="max-height:500px;width:auto;" } diff --git a/mkdocs-guide.yml b/mkdocs-guide.yml index f0dc03b2c..e36b452fc 100644 --- a/mkdocs-guide.yml +++ b/mkdocs-guide.yml @@ -211,7 +211,7 @@ nav: - Graphene / h-BN Interface: tutorials/materials/specific/interface-2d-2d-graphene-boron-nitride.md - Cu / SiO2 Interface: tutorials/materials/specific/interface-3d-3d-copper-silicon-dioxide.md - Graphene / SiO2 Interface: tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide.md - - Graphene on SiO2 (Doping and Band Gap): tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide-simulation.md + - Graphene on SiO2 (Doping and Gap at the Dirac Point): tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide-simulation.md - High-k Metal Gate Stack: tutorials/materials/specific/heterostructure-silicon-silicon-dioxide-hafnium-dioxide-titanium-nitride.md - Ripple Perturbation in Graphene: tutorials/materials/specific/perturbation-ripples-graphene.md - Grain Boundary in Cu (FCC): tutorials/materials/specific/defect-planar-grain-boundary-3d-fcc-metals-copper.md diff --git a/mkdocs.yml b/mkdocs.yml index f2c7bcb51..8e3be391a 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -172,7 +172,7 @@ nav: - Interface between Graphene and h-BN: tutorials/materials/specific/interface-2d-2d-graphene-boron-nitride.md - Interface between Copper and SiO2 (Cristobalite): tutorials/materials/specific/interface-3d-3d-copper-silicon-dioxide.md - Interface between Graphene and SiO2 (alpha-quartz): tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide.md - - Graphene on SiO2 (Doping and Band Gap): tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide-simulation.md + - Graphene on SiO2 (Doping and Gap at the Dirac Point): tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide-simulation.md - High-k Metal Gate Stack (Si/SiO2/HfO2/TiN): tutorials/materials/specific/heterostructure-silicon-silicon-dioxide-hafnium-dioxide-titanium-nitride.md - Ripple perturbation of a Graphene sheet: tutorials/materials/specific/perturbation-ripples-graphene.md - Grain Boundary in FCC Metals (Copper): tutorials/materials/specific/defect-planar-grain-boundary-3d-fcc-metals-copper.md From 6b0aec2bab67650ec21b7f210979c7c480901a61 Mon Sep 17 00:00:00 2001 From: VsevolodX Date: Tue, 6 Oct 2026 20:31:52 -0700 Subject: [PATCH 05/10] SOF-8065: band structure plotted in the manuscript's path order Gamma-M-K-Gamma Co-Authored-By: Claude Sonnet 5.5 --- .../band-structure-this-notebook.webp | 4 ++-- .../interface-2d-3d-graphene-silicon-dioxide-simulation.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/images/tutorials/materials/interfaces/interface_2d_3d_graphene_silicon_dioxide/band-structure-this-notebook.webp b/images/tutorials/materials/interfaces/interface_2d_3d_graphene_silicon_dioxide/band-structure-this-notebook.webp index 648e85188..22d924090 100644 --- a/images/tutorials/materials/interfaces/interface_2d_3d_graphene_silicon_dioxide/band-structure-this-notebook.webp +++ b/images/tutorials/materials/interfaces/interface_2d_3d_graphene_silicon_dioxide/band-structure-this-notebook.webp @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:af86fc60d3246f768d677cbcec42d076390645d0b3b6018d754cf268c5a3f5d1 -size 32412 +oid sha256:9d4c36d92dbd68a0f95f574b9172d6bd7d8ea1155ca9b1031ed85a7f6d751166 +size 31532 diff --git a/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide-simulation.md b/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide-simulation.md index 4a3c28153..3a00e598b 100644 --- a/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide-simulation.md +++ b/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide-simulation.md @@ -172,7 +172,7 @@ Gap at K (Kang et al., 2008): 0.130 eV Gap at K (this notebook): 0.044 eV (-66.3 % deviation) ``` -![Band structure of graphene on SiO2 from this notebook](../../../images/tutorials/materials/interfaces/interface_2d_3d_graphene_silicon_dioxide/band-structure-this-notebook.webp "Band structure of the interface near the Fermi level, RELAX = False (job WLnHsEaMdy3gxbhQe); path K-Γ-M-K, energies relative to E_F") +![Band structure of graphene on SiO2 from this notebook](../../../images/tutorials/materials/interfaces/interface_2d_3d_graphene_silicon_dioxide/band-structure-this-notebook.webp "Band structure of the interface near the Fermi level, RELAX = False (job WLnHsEaMdy3gxbhQe); path Γ-M-K-Γ, energies relative to E_F") ## 7. Customization options From 61392357bb61f0662d2600343f81701f699dddeb Mon Sep 17 00:00:00 2001 From: VsevolodX Date: Tue, 6 Oct 2026 20:33:39 -0700 Subject: [PATCH 06/10] SOF-8065: re-quote the structure notebook's thickness line at api-examples c06e072e Co-Authored-By: Claude Sonnet 5.5 --- .../specific/interface-2d-3d-graphene-silicon-dioxide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide.md b/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide.md index 3ce0064d2..b36cbbaa1 100644 --- a/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide.md +++ b/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide.md @@ -79,7 +79,7 @@ FILM_USE_ORTHOGONAL_C = True SUBSTRATE_INDEX = 0 SUBSTRATE_MILLER_INDICES = (0, 0, 1) -SUBSTRATE_THICKNESS = 5 # in conventional cells along c: 15 Si planes, the manuscript's 14 bilayers +SUBSTRATE_THICKNESS = 5 # conventional cells along c: 15 Si planes; the manuscript has 14 bilayers SUBSTRATE_TERMINATION_FORMULA = None # if None, the first termination will be used SUBSTRATE_VACUUM = 0.0 # in angstroms SUBSTRATE_XY_SUPERCELL_MATRIX = [[1, 0], [0, 1]] From cc793d67d18a58b88cc42550fae50da203c48127 Mon Sep 17 00:00:00 2001 From: VsevolodX Date: Tue, 6 Oct 2026 20:46:09 -0700 Subject: [PATCH 07/10] SOF-8065: documentation review round 2: prerequisite 120 deg note, distance value, neutral wording, caption axis Co-Authored-By: Claude Sonnet 5.5 --- ...interface-2d-3d-graphene-silicon-dioxide-simulation.md | 8 ++++---- .../specific/interface-2d-3d-graphene-silicon-dioxide.md | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide-simulation.md b/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide-simulation.md index 3a00e598b..9d423d968 100644 --- a/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide-simulation.md +++ b/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide-simulation.md @@ -29,12 +29,12 @@ This tutorial calculates the band structure of the graphene on O-terminated α-q The compared quantities are from Sec. III and Fig. 3(a) of the manuscript, for the metastable geometry with the graphene at d = 2.58 Å above the surface: graphene is p-doped, the gap at the Dirac point is 0.13 eV, and the Dirac point lies about 1.2 eV above the Fermi level (read off Fig. 3(a)). -![Band structure of graphene on SiO2 from the manuscript](../../../images/tutorials/materials/interfaces/interface_2d_3d_graphene_silicon_dioxide/kang2008-fig3a-band-structure.webp "Band structure of graphene on the O-terminated surface, metastable geometry (Kang et al. 2008, Fig. 3(a)); path Γ-M-K-Γ, Fermi level at 0") +![Band structure of graphene on SiO2 from the manuscript](../../../images/tutorials/materials/interfaces/interface_2d_3d_graphene_silicon_dioxide/kang2008-fig3a-band-structure.webp "Band structure of graphene on the O-terminated surface, metastable geometry (Kang et al. 2008, Fig. 3(a)); path Γ-M-K-Γ, energy in eV relative to the Fermi level") ## 2. Prerequisites -Run the [structure creation tutorial](interface-2d-3d-graphene-silicon-dioxide.md) first. Its `interface_2d_3d_graphene_silicon_dioxide.ipynb` notebook saves the interface to the `uploads` folder under the name `C(001)-O2Si(001), Interface, Strain 1.875pct`, which this notebook loads. +Run the [structure creation tutorial](interface-2d-3d-graphene-silicon-dioxide.md) first. Its `interface_2d_3d_graphene_silicon_dioxide.ipynb` notebook saves the interface in the 120° setting to the `uploads` folder under the name `C(001)-O2Si(001), Interface, Strain 1.875pct`, which this notebook loads. An interface from the generic ZSL notebook comes out at 60°, where the band path's K is not graphene's K. ## 3. Workflow overview @@ -142,7 +142,7 @@ In cell 1.3, set `ORGANIZATION_NAME` and `CLUSTER_NAME` to the account's organiz ### 5.3. Run the notebook -Select *Run* > *Run All*. The notebook [authenticates with the platform]({{ interface_url }}/jupyterlite/authentication.md), loads the interface and prints its provenance (composition, number of atoms, gamma, interlayer distance, valence electrons, occupied bands), saves it to the platform, configures the DFT model and the k-grid, creates the compute configuration, then submits the band structure job and waits for it to finish. For the example as built the provenance reads Si15O30C8, 53 atoms, gamma = 120.000°, 272 valence electrons and 136 occupied bands. Once finished (measured on cluster-001, queue OR, 16 cores: SCF 49 min, band path 20 min, 74.5 min active in total), the notebook retrieves the band structure, prints the bands at K around the Fermi level and the Dirac pair, then E_F, E_D − E_F and the gap at K, and prints the comparison with the manuscript. +Select *Run* > *Run All*. The notebook [authenticates with the platform]({{ interface_url }}/jupyterlite/authentication.md), loads the interface and prints its provenance (composition, number of atoms, gamma, interlayer distance of 2.580 Å, valence electrons, occupied bands), saves it to the platform, configures the DFT model and the k-grid, creates the compute configuration, then submits the band structure job and waits for it to finish. For the example as built the provenance reads Si15O30C8, 53 atoms, gamma = 120.000°, 272 valence electrons and 136 occupied bands. Once finished (measured on cluster-001, queue OR, 16 cores: SCF 49 min, band path 20 min, 74.5 min active in total), the notebook retrieves the band structure, prints the bands at K around the Fermi level and the Dirac pair, then E_F, E_D − E_F and the gap at K, and prints the comparison with the manuscript. ### 5.4. Relax the interface (optional) @@ -179,7 +179,7 @@ Gap at K (this notebook): 0.044 eV (-66.3 % deviation) Changing `ECUTWFC`, `ECUTRHO`, `KPOINT_DENSITY`, `KPATH_STEPS` or `SMEARING_SETTINGS["degauss"]` changes `MODEL_TAG`, which is part of the workflow name, so a new job is created rather than the finished one reused. -The relaxed structure is found by its content and reused regardless of `RELAXATION_SETTINGS`. +The relaxed structure is found by its content and reused regardless of the settings it was relaxed with. ## 8. Troubleshooting diff --git a/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide.md b/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide.md index b36cbbaa1..8dfc0b046 100644 --- a/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide.md +++ b/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide.md @@ -55,7 +55,7 @@ Select the input materials with the first being the substrate (SiO₂) and the s Open the `create_interface_with_min_strain_zsl.ipynb` notebook and modify the parameters as follows: - Miller indices: `(0, 0, 1)` for both materials -- Thickness: `1` layer for graphene, `5` layers for SiO₂ (5 conventional cells = 15 Si planes, the nearest whole number of cells to the manuscript's 14 SiO₂ bilayers) +- Thickness: `1` layer for graphene, `5` layers for SiO₂ (5 conventional cells: 15 Si planes; the manuscript has 14 bilayers) - Interface distance: `2.58` Å (as stated in the manuscript) - Interface vacuum: `17.5` Å (gives about 20 Å above graphene, as specified in the manuscript) From 2269fc88852dfce9a9829939a5180594647d5ca4 Mon Sep 17 00:00:00 2001 From: VsevolodX Date: Wed, 7 Oct 2026 18:55:00 -0700 Subject: [PATCH 08/10] SOF-8065: follow the final notebooks: registry shift, centering, relaxation in the same job, paper values side by side Co-Authored-By: Claude Sonnet 5.5 --- .../3-structure-5-cells.webp | 4 +- ...-3d-graphene-silicon-dioxide-simulation.md | 47 +++++++++---------- ...nterface-2d-3d-graphene-silicon-dioxide.md | 35 ++++++++++++++ 3 files changed, 60 insertions(+), 26 deletions(-) diff --git a/images/tutorials/materials/interfaces/interface_2d_3d_graphene_silicon_dioxide/3-structure-5-cells.webp b/images/tutorials/materials/interfaces/interface_2d_3d_graphene_silicon_dioxide/3-structure-5-cells.webp index b7aa28ee4..0e6779c68 100644 --- a/images/tutorials/materials/interfaces/interface_2d_3d_graphene_silicon_dioxide/3-structure-5-cells.webp +++ b/images/tutorials/materials/interfaces/interface_2d_3d_graphene_silicon_dioxide/3-structure-5-cells.webp @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1fc1edf6bb1d9e40ea3416fb2dc2bd936eb430fde7d11d1af8c861a0c06ab669 -size 42144 +oid sha256:e5ce6010c5644c44b589728c764584811ab9137b3c844334a6191ca34af9b104 +size 36100 diff --git a/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide-simulation.md b/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide-simulation.md index 9d423d968..7c14a215c 100644 --- a/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide-simulation.md +++ b/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide-simulation.md @@ -27,7 +27,7 @@ This tutorial calculates the band structure of the graphene on O-terminated α-q Physical Review B 78, 115404 (2008) [DOI: 10.1103/PhysRevB.78.115404](https://doi.org/10.1103/PhysRevB.78.115404){:target='_blank'} [@Kang2008] -The compared quantities are from Sec. III and Fig. 3(a) of the manuscript, for the metastable geometry with the graphene at d = 2.58 Å above the surface: graphene is p-doped, the gap at the Dirac point is 0.13 eV, and the Dirac point lies about 1.2 eV above the Fermi level (read off Fig. 3(a)). +The compared quantities are from Sec. III and Fig. 3(a) of the manuscript, for the metastable geometry with the graphene at d = 2.58 Å above the surface: graphene is p-doped, the gap at the Dirac point is 0.13 eV, and the Dirac point lies about 1.28 eV above the Fermi level (the midpoint of the two Dirac bands at K on Fig. 3(a), +1.21 and +1.35 eV). ![Band structure of graphene on SiO2 from the manuscript](../../../images/tutorials/materials/interfaces/interface_2d_3d_graphene_silicon_dioxide/kang2008-fig3a-band-structure.webp "Band structure of graphene on the O-terminated surface, metastable geometry (Kang et al. 2008, Fig. 3(a)); path Γ-M-K-Γ, energy in eV relative to the Fermi level") @@ -39,9 +39,9 @@ Run the [structure creation tutorial](interface-2d-3d-graphene-silicon-dioxide.m ## 3. Workflow overview -The notebook runs the Standata `band_structure.json` workflow, which chains `pw_scf` and `pw_bands`, as one job on the interface. With `RELAX = True` it first runs the Standata `fixed_cell_relaxation.json` workflow as a separate job and takes the band structure on the relaxed structure. +The notebook runs the Standata `band_structure.json` workflow, which chains `pw_scf` and `pw_bands`, as one job on the interface. With `RELAX = True`, `add_relaxation()` puts a relaxation (fixed cell, the `pw_vc-relax` unit with `calculation = 'relax'`, the same k-mesh as the SCF) in front of it in the same job, and the band structure runs on the relaxed structure. -The notebook then reads the band structure at K, takes the Dirac point as the midpoint of the Dirac pair of bands, and prints it and the gap beside the manuscript's values with the deviation in percent. Re-running the notebook finds an already-finished job by its material and workflow name and reuses it instead of resubmitting. +The notebook then reads the band structure at K, takes the Dirac point as the midpoint of the Dirac pair of bands, and prints it and the gap beside the manuscript's values. Re-running the notebook finds an already-finished job by its material and workflow name and reuses it instead of resubmitting. ## 4. Calculation parameters @@ -62,13 +62,14 @@ from mat3ra.ide.compute import QueueName ORGANIZATION_NAME = None # set to your organization name (full or partial); otherwise, your default one is used FOLDER = "./uploads" -RELAX_WORKFLOW_SEARCH_TERM = "fixed_cell_relaxation.json" BAND_STRUCTURE_WORKFLOW_SEARCH_TERM = "band_structure.json" MY_WORKFLOW_NAME = "Band Structure" APPLICATION_NAME = "espresso" -# NOTE: False reads the band structure as built; True relaxes the interface once (fixed cell, whole -# slab) and reads the band structure off the relaxed structure. +# NOTE: False reads the band structure of the structure as built: E_D - E_F +1.171 eV, gap at K +# 0.062 eV, about 1 h on OR/16. True relaxes all atoms at fixed cell to 0.03 eV/Å (Kang et al. +# Sec. II) before the band structure, in the same job; on OR/16 it did 5 BFGS steps in the 4 h +# TIME_LIMIT without converging, so it needs a longer TIME_LIMIT. RELAX = False CLUSTER_NAME = "001" # specify full or partial name i.e. "cluster-001" to select @@ -98,10 +99,9 @@ MODEL_TAG = (f"{FUNCTIONAL}-{PSEUDOPOTENTIAL_TYPE} {ECUTWFC}-{ECUTRHO}Ry k{KPOIN SCF_UNIT = "pw_scf" BANDS_UNIT = "pw_bands" -RELAX_UNIT = "pw_relax" +RELAX_UNIT = "pw_vc-relax" # the relaxation unit add_relaxation() prepends; calculation is set to "relax" below RELAXATION_SETTINGS = {"forc_conv_thr": 1.17e-3, "nstep": 100} # 0.03 eV/Å, Kang et al. 2008 Sec. II -# Names the relaxation job; the relaxed structure itself is found by content hash. -RELAX_TAG = f"{MODEL_TAG} f{RELAXATION_SETTINGS['forc_conv_thr']}" +WORKFLOW_TAG = MODEL_TAG + (f" relax f{RELAXATION_SETTINGS['forc_conv_thr']}" if RELAX else "") KPATH = [ {"point": "K", "steps": KPATH_STEPS}, @@ -121,7 +121,7 @@ K_INDEX = 0 # KPATH starts at K, so the first point of the band structure's pat | 14 SiO2 bilayers, H-passivated back side | 15 Si planes (5 conventional cells; one bilayer read as one Si plane with its O), bare back side | | 20 Å vacuum | about 20 Å, as built by the structure notebook | | manuscript quartz cell | standata quartz cell, 2.3 % larger in a | -| d = 2.58 Å, metastable geometry (Sec. III) | d = 2.58 Å | +| d = 2.58 Å, metastable geometry (Sec. III) | d = 2.58 Å, graphene shifted in-plane to the metastable registry (`REGISTRY_SHIFT` in the structure notebook) | The structure is the example as the structure notebook builds it. The bare back surface is the face the manuscript (p. 2) calls chemically inactive. The structure notebook's cell 3.5 sets the cell to the 120° hexagonal setting and types it `HEX`, so the symbolic K point of `KPATH` lies on the band path. @@ -142,11 +142,11 @@ In cell 1.3, set `ORGANIZATION_NAME` and `CLUSTER_NAME` to the account's organiz ### 5.3. Run the notebook -Select *Run* > *Run All*. The notebook [authenticates with the platform]({{ interface_url }}/jupyterlite/authentication.md), loads the interface and prints its provenance (composition, number of atoms, gamma, interlayer distance of 2.580 Å, valence electrons, occupied bands), saves it to the platform, configures the DFT model and the k-grid, creates the compute configuration, then submits the band structure job and waits for it to finish. For the example as built the provenance reads Si15O30C8, 53 atoms, gamma = 120.000°, 272 valence electrons and 136 occupied bands. Once finished (measured on cluster-001, queue OR, 16 cores: SCF 49 min, band path 20 min, 74.5 min active in total), the notebook retrieves the band structure, prints the bands at K around the Fermi level and the Dirac pair, then E_F, E_D − E_F and the gap at K, and prints the comparison with the manuscript. +Select *Run* > *Run All*. The notebook [authenticates with the platform]({{ interface_url }}/jupyterlite/authentication.md), loads the interface and prints its provenance (composition, number of atoms, gamma, interlayer distance of 2.580 Å, valence electrons, occupied bands), configures the DFT model and the k-grid, creates the compute configuration, then submits the band structure job and waits for it to finish. For the example as built the provenance reads Si15O30C8, 53 atoms, gamma = 120.000°, 272 valence electrons and 136 occupied bands. Once finished (measured with `RELAX = False` on cluster-001, queue OR, 16 cores: about 1 h), the notebook retrieves the band structure, prints the bands at K around the Fermi level and the Dirac pair, then E_F, E_D − E_F and the gap at K, and prints the comparison with the manuscript. ### 5.4. Relax the interface (optional) -Set `RELAX = True` in cell 1.3 and run the notebook. The notebook waits for the relaxation job and continues to the band structure in the same run. The interface is relaxed once (fixed cell, whole slab, force threshold 0.03 eV/Å, Sec. II) and saved to the account as ` relaxed`; the band structure is taken on that geometry. A relaxed structure already on the account is found by its content and reused. +Set `RELAX = True` in cell 1.3 and run the notebook. The relaxation (all atoms, fixed cell, force threshold 0.03 eV/Å, Sec. II) runs in the same job before the band structure, and the band structure is taken on the relaxed structure. On cluster-001, queue OR, 16 cores, it did 5 BFGS steps in the 4 h `TIME_LIMIT` without converging, so it needs a longer `TIME_LIMIT`. ### 5.5. Re-run the notebook @@ -155,31 +155,30 @@ Running the notebook again finds the finished job by material and workflow name ## 6. Expected results -| quantity | manuscript | this notebook | +| quantity | manuscript | this notebook, `RELAX = False` | |---|---|---| | doping | p-type (Sec. III) | p-type | -| E_D − E_F (eV) | ≈ +1.2 (Fig. 3(a) read-off) | +1.115 (−7.1 %) | -| gap at K (eV) | 0.13 (Sec. III) | 0.044 (−66.3 %) | +| E_D − E_F (eV) | 1.28 (midpoint of the two Dirac bands at K on Fig. 3(a), +1.21 and +1.35 eV) | +1.171 | +| gap at K (eV) | 0.13 (Sec. III) | 0.062 | -Kang's gap is for the relaxed metastable geometry (Sec. III); the values above are for `RELAX = False`. The notebook's final cell prints: +Kang's gap is for the relaxed metastable geometry (Sec. III); the values above are for `RELAX = False` on the shifted registry (job F6AmKDRpQ6nFqiokb, unrelaxed, about 1 h on OR/16). The relaxed regime did not converge within the 4 h limit (5 BFGS steps on OR/16). The notebook's final cell prints: ``` Regime: unrelaxed SCF -Doping: p-type (Kang et al., 2008: p-type) -E_D - E_F (Kang et al., 2008): +1.200 eV -E_D - E_F (this notebook): +1.115 eV (-7.1 % deviation) -Gap at K (Kang et al., 2008): 0.130 eV -Gap at K (this notebook): 0.044 eV (-66.3 % deviation) + this notebook Kang et al. (2008) +Doping p-type p-type +E_D - E_F 1.171 eV 1.280 eV +Gap at K 0.062 eV 0.130 eV ``` +TODO(partial): band structure of the partially relaxed structure. + ![Band structure of graphene on SiO2 from this notebook](../../../images/tutorials/materials/interfaces/interface_2d_3d_graphene_silicon_dioxide/band-structure-this-notebook.webp "Band structure of the interface near the Fermi level, RELAX = False (job WLnHsEaMdy3gxbhQe); path Γ-M-K-Γ, energies relative to E_F") ## 7. Customization options -Changing `ECUTWFC`, `ECUTRHO`, `KPOINT_DENSITY`, `KPATH_STEPS` or `SMEARING_SETTINGS["degauss"]` changes `MODEL_TAG`, which is part of the workflow name, so a new job is created rather than the finished one reused. - -The relaxed structure is found by its content and reused regardless of the settings it was relaxed with. +Changing `ECUTWFC`, `ECUTRHO`, `KPOINT_DENSITY`, `KPATH_STEPS`, `SMEARING_SETTINGS["degauss"]`, `RELAX` or `RELAXATION_SETTINGS["forc_conv_thr"]` changes the workflow name, so a new job is created rather than the finished one reused. ## 8. Troubleshooting diff --git a/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide.md b/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide.md index 8dfc0b046..8417360f1 100644 --- a/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide.md +++ b/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide.md @@ -87,6 +87,7 @@ SUBSTRATE_USE_ORTHOGONAL_C = True INTERFACE_DISTANCE = 2.58 # Gap between substrate and film, in Angstrom INTERFACE_VACUUM = 17.5 # Angstrom; gives about 20 A above graphene, as the builder adds INTERFACE_DISTANCE above the film too +REGISTRY_SHIFT = [-1.011, -0.725, 0.0] # Å, in-plane shift of graphene to the manuscript's metastable registry, Sec. III # Whether to convert materials to conventional cells before creating slabs. # To create interfaces with smaller cells, set this flag to False. (and pass already conventional cells as input) @@ -104,6 +105,40 @@ MAX_ANGLE_TOLERANCE = 0.02 REDUCE_RESULT_CELL_TO_PRIMITIVE = True ``` +The ZSL match leaves the registry of graphene on the quartz surface undefined. The notebook shifts the film in-plane by `REGISTRY_SHIFT` to the registry of the manuscript's metastable geometry (Sec. III), where one surface O sits near a C atom and the other near a hexagon centre, and prints each surface O's in-plane distance to the nearest C: + +```python +import numpy as np +from mat3ra.made.tools.modify import interface_displace_part + +interface = interface_displace_part(interface, displacement=REGISTRY_SHIFT, use_cartesian_coordinates=True) + +interface_in_cartesian = interface.clone() +interface_in_cartesian.to_cartesian() +coordinates = np.array(interface_in_cartesian.basis.coordinates.values) +elements = np.array(interface.basis.elements.values) +cell_xy = np.array(interface.lattice.vector_arrays)[:2, :2] +carbons = coordinates[elements == "C"] +oxygens = coordinates[elements == "O"] +for oxygen in oxygens[np.argsort(-oxygens[:, 2])[:2]]: + distances = [np.linalg.norm(oxygen[:2] - carbon[:2] - i * cell_xy[0] - j * cell_xy[1]) + for carbon in carbons for i in (-1, 0, 1) for j in (-1, 0, 1)] + print(f"surface O at z = {oxygen[2]:.3f} Å: nearest C in the plane {min(distances):.3f} Å") +``` + +The notebook then puts the cell in the 120° hexagonal setting and centers the slab along z, so that no atom sits at z = 0, where a relaxation would wrap it to the top of the cell: + +```python +from mat3ra.made.tools.helpers import create_supercell +from mat3ra.made.tools.modify import translate_to_center + +interface = create_supercell(interface, supercell_matrix=[[1, 0, 0], [-1, 1, 0], [0, 0, 1]]) +interface = translate_to_center(interface, axes=["z"]) +interface.lattice.type = "HEX" +print(f"{interface.basis.number_of_atoms} atoms, a = {interface.lattice.a:.4f} Å, " + f"gamma = {interface.lattice.gamma:.1f}°") +``` + ### 2.3 Run the Notebook Run the notebook to generate the interface structure between graphene and silicon dioxide with oxygen termination. From ed1dfc680be860ab3cfe2613a35b7752e6b42ee3 Mon Sep 17 00:00:00 2001 From: VsevolodX Date: Wed, 7 Oct 2026 19:42:40 -0700 Subject: [PATCH 09/10] SOF-8065: documentation review round 4: cells 3.5/3.6 labelled, metastable geometry, observed relaxation result, wording Co-Authored-By: Claude Sonnet 5.5 --- ...-3d-graphene-silicon-dioxide-simulation.md | 19 ++++++++++--------- ...nterface-2d-3d-graphene-silicon-dioxide.md | 13 ++++++++----- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide-simulation.md b/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide-simulation.md index 7c14a215c..18f702d4b 100644 --- a/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide-simulation.md +++ b/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide-simulation.md @@ -34,7 +34,7 @@ The compared quantities are from Sec. III and Fig. 3(a) of the manuscript, for t ## 2. Prerequisites -Run the [structure creation tutorial](interface-2d-3d-graphene-silicon-dioxide.md) first. Its `interface_2d_3d_graphene_silicon_dioxide.ipynb` notebook saves the interface in the 120° setting to the `uploads` folder under the name `C(001)-O2Si(001), Interface, Strain 1.875pct`, which this notebook loads. An interface from the generic ZSL notebook comes out at 60°, where the band path's K is not graphene's K. +Run the [structure creation tutorial](interface-2d-3d-graphene-silicon-dioxide.md) first. Its `interface_2d_3d_graphene_silicon_dioxide.ipynb` notebook saves the interface in the 120° setting to the `uploads` folder under the name `C(001)-O2Si(001), Interface, Strain 1.875pct`, which this notebook loads. It also shifts graphene to the metastable registry and centers the slab along z. An interface from the generic ZSL notebook comes out at 60°, where the band path's K is not graphene's K. ## 3. Workflow overview @@ -69,7 +69,7 @@ APPLICATION_NAME = "espresso" # NOTE: False reads the band structure of the structure as built: E_D - E_F +1.171 eV, gap at K # 0.062 eV, about 1 h on OR/16. True relaxes all atoms at fixed cell to 0.03 eV/Å (Kang et al. # Sec. II) before the band structure, in the same job; on OR/16 it did 5 BFGS steps in the 4 h -# TIME_LIMIT without converging, so it needs a longer TIME_LIMIT. +# TIME_LIMIT with the force still falling (job 25yp4K2SMNJgJMmBy). RELAX = False CLUSTER_NAME = "001" # specify full or partial name i.e. "cluster-001" to select @@ -99,8 +99,9 @@ MODEL_TAG = (f"{FUNCTIONAL}-{PSEUDOPOTENTIAL_TYPE} {ECUTWFC}-{ECUTRHO}Ry k{KPOIN SCF_UNIT = "pw_scf" BANDS_UNIT = "pw_bands" -RELAX_UNIT = "pw_vc-relax" # the relaxation unit add_relaxation() prepends; calculation is set to "relax" below -RELAXATION_SETTINGS = {"forc_conv_thr": 1.17e-3, "nstep": 100} # 0.03 eV/Å, Kang et al. 2008 Sec. II +RELAX_UNIT = "pw_vc-relax" +# Fixed cell, 0.03 eV/Å, Kang et al. 2008 Sec. II +RELAXATION_SETTINGS = {"calculation": "relax", "forc_conv_thr": 1.17e-3, "nstep": 100} WORKFLOW_TAG = MODEL_TAG + (f" relax f{RELAXATION_SETTINGS['forc_conv_thr']}" if RELAX else "") KPATH = [ @@ -121,9 +122,9 @@ K_INDEX = 0 # KPATH starts at K, so the first point of the band structure's pat | 14 SiO2 bilayers, H-passivated back side | 15 Si planes (5 conventional cells; one bilayer read as one Si plane with its O), bare back side | | 20 Å vacuum | about 20 Å, as built by the structure notebook | | manuscript quartz cell | standata quartz cell, 2.3 % larger in a | -| d = 2.58 Å, metastable geometry (Sec. III) | d = 2.58 Å, graphene shifted in-plane to the metastable registry (`REGISTRY_SHIFT` in the structure notebook) | +| d = 2.58 Å, metastable geometry (Sec. III) | d = 2.58 Å, graphene shifted in-plane to the metastable registry (`REGISTRY_SHIFT` in the structure notebook); surface O at 0.354 Å and 1.095 Å from the nearest C | -The structure is the example as the structure notebook builds it. The bare back surface is the face the manuscript (p. 2) calls chemically inactive. The structure notebook's cell 3.5 sets the cell to the 120° hexagonal setting and types it `HEX`, so the symbolic K point of `KPATH` lies on the band path. +The structure is the example as the structure notebook builds it. The bare back surface is the face the manuscript (p. 2) calls chemically inactive. The structure notebook's cell 3.6 sets the cell to the 120° hexagonal setting and types it `HEX`, so the symbolic K point of `KPATH` lies on the band path. ## 5. Step-by-step instructions @@ -142,11 +143,11 @@ In cell 1.3, set `ORGANIZATION_NAME` and `CLUSTER_NAME` to the account's organiz ### 5.3. Run the notebook -Select *Run* > *Run All*. The notebook [authenticates with the platform]({{ interface_url }}/jupyterlite/authentication.md), loads the interface and prints its provenance (composition, number of atoms, gamma, interlayer distance of 2.580 Å, valence electrons, occupied bands), configures the DFT model and the k-grid, creates the compute configuration, then submits the band structure job and waits for it to finish. For the example as built the provenance reads Si15O30C8, 53 atoms, gamma = 120.000°, 272 valence electrons and 136 occupied bands. Once finished (measured with `RELAX = False` on cluster-001, queue OR, 16 cores: about 1 h), the notebook retrieves the band structure, prints the bands at K around the Fermi level and the Dirac pair, then E_F, E_D − E_F and the gap at K, and prints the comparison with the manuscript. +Select *Run* > *Run All*. The notebook [authenticates with the platform]({{ interface_url }}/jupyterlite/authentication.md), loads the interface and prints its provenance (composition, number of atoms, gamma, interlayer distance of 2.580 Å, valence electrons, occupied bands), configures the DFT model and the k-grid, creates the compute configuration, saves the material to the account, then submits the band structure job and waits for it to finish. For the example as built the provenance reads Si15O30C8, 53 atoms, gamma = 120.000°, 272 valence electrons and 136 occupied bands. Once finished (measured with `RELAX = False` on cluster-001, queue OR with 16 cores, called OR/16 below: about 1 h), the notebook retrieves the band structure, prints the bands at K around the Fermi level and the Dirac pair, then E_F, E_D − E_F and the gap at K, and prints the comparison with the manuscript. ### 5.4. Relax the interface (optional) -Set `RELAX = True` in cell 1.3 and run the notebook. The relaxation (all atoms, fixed cell, force threshold 0.03 eV/Å, Sec. II) runs in the same job before the band structure, and the band structure is taken on the relaxed structure. On cluster-001, queue OR, 16 cores, it did 5 BFGS steps in the 4 h `TIME_LIMIT` without converging, so it needs a longer `TIME_LIMIT`. +Set `RELAX = True` in cell 1.3 and run the notebook. The relaxation (all atoms, fixed cell, force threshold 0.03 eV/Å, Sec. II) runs in the same job before the band structure, and the band structure is taken on the relaxed structure. On OR/16 it did 5 BFGS steps in the 4 h `TIME_LIMIT` with the force still falling (job 25yp4K2SMNJgJMmBy). ### 5.5. Re-run the notebook @@ -158,7 +159,7 @@ Running the notebook again finds the finished job by material and workflow name | quantity | manuscript | this notebook, `RELAX = False` | |---|---|---| | doping | p-type (Sec. III) | p-type | -| E_D − E_F (eV) | 1.28 (midpoint of the two Dirac bands at K on Fig. 3(a), +1.21 and +1.35 eV) | +1.171 | +| E_D − E_F (eV) | +1.28 (midpoint of the two Dirac bands at K on Fig. 3(a), +1.21 and +1.35 eV) | +1.171 | | gap at K (eV) | 0.13 (Sec. III) | 0.062 | Kang's gap is for the relaxed metastable geometry (Sec. III); the values above are for `RELAX = False` on the shifted registry (job F6AmKDRpQ6nFqiokb, unrelaxed, about 1 h on OR/16). The relaxed regime did not converge within the 4 h limit (5 BFGS steps on OR/16). The notebook's final cell prints: diff --git a/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide.md b/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide.md index 8417360f1..13b81e808 100644 --- a/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide.md +++ b/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide.md @@ -30,7 +30,7 @@ This tutorial demonstrates the process of creating interfaces between 2D and 3D We use the [Materials Designer]({{ interface_url }}/materials-designer/overview/) to create interfaces between graphene and silicon dioxide with oxygen termination, as shown in the manuscript. -We will focus on replicating the material from FIG. 1. (b) -- with Graphene on O-terminated SiO2. The material (a) requires relaxation to correctly reproduce the structure, which is not covered in this tutorial. +We will focus on replicating the metastable geometry of Kang et al. Sec. III: graphene 2.58 Å above the O-terminated surface, shifted from the C-over-O registry of Fig. 1(b). ![Graphene on Silicon Dioxide](../../../images/tutorials/materials/interfaces/interface_2d_3d_graphene_silicon_dioxide/0-figure-from-manuscript.webp "Graphene on Silicon Dioxide, FIG. 1(b)") @@ -86,8 +86,7 @@ SUBSTRATE_XY_SUPERCELL_MATRIX = [[1, 0], [0, 1]] SUBSTRATE_USE_ORTHOGONAL_C = True INTERFACE_DISTANCE = 2.58 # Gap between substrate and film, in Angstrom -INTERFACE_VACUUM = 17.5 # Angstrom; gives about 20 A above graphene, as the builder adds INTERFACE_DISTANCE above the film too -REGISTRY_SHIFT = [-1.011, -0.725, 0.0] # Å, in-plane shift of graphene to the manuscript's metastable registry, Sec. III +INTERFACE_VACUUM = 17.5 # in Angstrom # Whether to convert materials to conventional cells before creating slabs. # To create interfaces with smaller cells, set this flag to False. (and pass already conventional cells as input) @@ -105,7 +104,11 @@ MAX_ANGLE_TOLERANCE = 0.02 REDUCE_RESULT_CELL_TO_PRIMITIVE = True ``` -The ZSL match leaves the registry of graphene on the quartz surface undefined. The notebook shifts the film in-plane by `REGISTRY_SHIFT` to the registry of the manuscript's metastable geometry (Sec. III), where one surface O sits near a C atom and the other near a hexagon centre, and prints each surface O's in-plane distance to the nearest C: +The specific-example notebook `interface_2d_3d_graphene_silicon_dioxide.ipynb` continues after the ZSL step with two more cells, which the generic notebook does not have. The ZSL match leaves the registry of graphene on the quartz surface undefined. The notebook shifts the film in-plane by `REGISTRY_SHIFT` to the registry of the manuscript's metastable geometry (Sec. III), where one surface O sits near a C atom and the other near a hexagon centre, and prints each surface O's in-plane distance to the nearest C. Its parameter, set in the notebook's parameter cell, and cell 3.5: + +```python +REGISTRY_SHIFT = [-1.011, -0.725, 0.0] +``` ```python import numpy as np @@ -126,7 +129,7 @@ for oxygen in oxygens[np.argsort(-oxygens[:, 2])[:2]]: print(f"surface O at z = {oxygen[2]:.3f} Å: nearest C in the plane {min(distances):.3f} Å") ``` -The notebook then puts the cell in the 120° hexagonal setting and centers the slab along z, so that no atom sits at z = 0, where a relaxation would wrap it to the top of the cell: +Cell 3.6 puts the cell in the 120° hexagonal setting and centers the slab along z, so that no atom sits at z = 0, where a relaxation would wrap it to the top of the cell: ```python from mat3ra.made.tools.helpers import create_supercell From 830d0d4448b1b6046b607594223a18114a75b481 Mon Sep 17 00:00:00 2001 From: VsevolodX Date: Wed, 7 Oct 2026 20:17:04 -0700 Subject: [PATCH 10/10] SOF-8065: partially relaxed result and the band structure of the default run Co-Authored-By: Claude Sonnet 5.5 --- .../band-structure-this-notebook.webp | 4 ++-- .../interface-2d-3d-graphene-silicon-dioxide-simulation.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/images/tutorials/materials/interfaces/interface_2d_3d_graphene_silicon_dioxide/band-structure-this-notebook.webp b/images/tutorials/materials/interfaces/interface_2d_3d_graphene_silicon_dioxide/band-structure-this-notebook.webp index 22d924090..4fd426f1b 100644 --- a/images/tutorials/materials/interfaces/interface_2d_3d_graphene_silicon_dioxide/band-structure-this-notebook.webp +++ b/images/tutorials/materials/interfaces/interface_2d_3d_graphene_silicon_dioxide/band-structure-this-notebook.webp @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9d4c36d92dbd68a0f95f574b9172d6bd7d8ea1155ca9b1031ed85a7f6d751166 -size 31532 +oid sha256:4dfe306b9de10a5e7d9761c7d6a191de9a73661234958f4082cc049189bc7fc5 +size 31392 diff --git a/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide-simulation.md b/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide-simulation.md index 18f702d4b..7bbf18b15 100644 --- a/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide-simulation.md +++ b/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide-simulation.md @@ -172,9 +172,9 @@ E_D - E_F 1.171 eV 1.280 eV Gap at K 0.062 eV 0.130 eV ``` -TODO(partial): band structure of the partially relaxed structure. +The band structure of the structure after 5 BFGS steps of the `RELAX = True` relaxation (job domjmuR4659Rj8np5) is p-type, E_D − E_F +1.179 eV, gap at K 0.071 eV, beside the unrelaxed +1.171 eV and 0.062 eV. -![Band structure of graphene on SiO2 from this notebook](../../../images/tutorials/materials/interfaces/interface_2d_3d_graphene_silicon_dioxide/band-structure-this-notebook.webp "Band structure of the interface near the Fermi level, RELAX = False (job WLnHsEaMdy3gxbhQe); path Γ-M-K-Γ, energies relative to E_F") +![Band structure of graphene on SiO2 from this notebook](../../../images/tutorials/materials/interfaces/interface_2d_3d_graphene_silicon_dioxide/band-structure-this-notebook.webp "Band structure of the interface near the Fermi level, job F6AmKDRpQ6nFqiokb, shifted registry, unrelaxed; path Γ-M-K-Γ, energies relative to E_F") ## 7. Customization options