From caa0bbee74145425ee821d7335db8696a9420f58 Mon Sep 17 00:00:00 2001 From: VsevolodX Date: Tue, 1 Sep 2026 09:57:54 -0700 Subject: [PATCH 1/5] SOF-8043: add Gr/Ni(111) registry and separation tutorial Companion page for the simulation notebook added in api-examples: what the manuscript (Dahal & Batzill, Nanoscale 6, 2548 (2014)) reports about the high-symmetry registries of graphene on Ni(111), which quantities are comparable across methods and which are not, the two-tier recipe (MACE-MP + D3 survey, then Total Energy jobs per registry), and the computational settings next to the manuscript's. Registered in both navs and linked from the index guide's Dahal row. Co-Authored-By: Claude Fable 5 --- lang/en/docs/index-guide.md | 2 +- ...-xy-position-graphene-nickel-simulation.md | 169 ++++++++++++++++++ mkdocs-guide.yml | 1 + mkdocs.yml | 1 + 4 files changed, 172 insertions(+), 1 deletion(-) create mode 100644 lang/en/docs/tutorials/materials/specific/optimization-interface-film-xy-position-graphene-nickel-simulation.md diff --git a/lang/en/docs/index-guide.md b/lang/en/docs/index-guide.md index 0a59279f..60511383 100644 --- a/lang/en/docs/index-guide.md +++ b/lang/en/docs/index-guide.md @@ -45,7 +45,7 @@ Step-by-step recipes reproducing published work, one row per publication: the st | 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) | -| Dahal et al. (2014)[^13] | Interface optimization | [Graphene / Ni(111)](tutorials/materials/specific/optimization-interface-film-xy-position-graphene-nickel.md) | Total energies versus lateral shift, band structure (Coming Soon) | +| Dahal et al. (2014)[^13] | Interface optimization | [Graphene / Ni(111)](tutorials/materials/specific/optimization-interface-film-xy-position-graphene-nickel.md) | [Registry and separation](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) | | Hansen et al. (1998)[^16] | H-passivated surface | [Si(100)](tutorials/materials/specific/passivation-surface-silicon.md) | Diffusion, reaction and desorption barriers (Coming Soon) | diff --git a/lang/en/docs/tutorials/materials/specific/optimization-interface-film-xy-position-graphene-nickel-simulation.md b/lang/en/docs/tutorials/materials/specific/optimization-interface-film-xy-position-graphene-nickel-simulation.md new file mode 100644 index 00000000..21b5f5a3 --- /dev/null +++ b/lang/en/docs/tutorials/materials/specific/optimization-interface-film-xy-position-graphene-nickel-simulation.md @@ -0,0 +1,169 @@ +--- +tags: + - graphene + - nickel + - interface + - registry + - adsorption + - total-energy + - machine-learned force field + - MACE + - C-2D-INT-Z + +hide: + - tags +# YAML header +render_macros: true +--- + +# Gr/Ni(111) Registry and Separation + +## 1. Introduction + +This tutorial computes which registry of graphene on Ni(111) is the most favorable and how far the +film sits above the surface, using the interface created in the +[structure creation tutorial](optimization-interface-film-xy-position-graphene-nickel.md), and +compares the result against the following manuscript. + +!!!note "Manuscript" + **Arjun Dahal, Matthias Batzill**, + "Graphene-nickel interfaces: a review" Nanoscale, 6(5), 2548 (2014) + [DOI: 10.1039/c3nr05279f](https://doi.org/10.1039/c3nr05279f) [@Dahal2014] + +### 1.1. What the manuscript reports + +Graphene and Ni(111) are lattice-matched to about one percent, so instead of a moiré pattern the +film locks into one of a few high-symmetry registries: **top-fcc**, **top-hcp**, **bridge-top**, and +the **hollow (fcc-hcp)** arrangement. The manuscript's key structural facts: + +* chemisorbed graphene sits ~0.21 nm above the top Ni plane — far below the ~0.33 nm van der Waals + spacing of graphite — with top-fcc the favorable registry; +* the hollow registry does not chemisorb: its minimum lies out near the van der Waals distance; +* the registries are separated by only tens of meV per carbon atom, which is why each one must be + evaluated at its own optimal separation rather than at a shared height. + +### 1.2. What is compared, and what is not + +The manuscript's adsorption energies come from dispersion-corrected calculations beyond semi-local +DFT, so absolute binding energies are not comparable here. What survives transfer between methods — +and what this tutorial reproduces — are the **ordering of the registries** and the **equilibrium +separations**, both computed as differences or geometric quantities with identical settings across +every configuration. + +## 2. Prerequisites + +Run the +[structure creation tutorial](optimization-interface-film-xy-position-graphene-nickel.md) first. +Its notebook builds the Gr/Ni(111) interface and saves it into the `uploads` folder as +`Graphene_Nickel_interface`. The simulation notebook loads it back by exactly that name and stops +if it is missing rather than substituting a different material. The reduced interface cell is the +1x1 match: 2 carbon and 4 nickel atoms. + +## 3. What is calculated + +The comparison runs in two tiers: + +1. **Energy vs. separation with MACE (fast, local).** The film is placed at each of the four + registries — the surface sites are located from the top three Ni layers of the structure itself — + and rigidly moved through a range of film-substrate distances. The + [MACE-MP](https://github.com/ACEsuit/mace) machine-learned force field with D3 dispersion + evaluates each configuration. A chemisorbing registry produces **two minima** — chemisorbed near + 2 A and dispersion-bound further out — so the registry comparison reads the chemisorbed branch, + each registry at its own minimum; the hollow registry has no chemisorbed minimum at all. This + tier runs in minutes and produces the energy-vs-distance curves, the minima, and the ordering. +2. **Total energy with DFT (platform jobs).** Each registry, held at its own MACE-optimized + separation, is submitted as a `Total Energy` job. A default run submits **one** registry; + activating the remaining three in the notebook's `DFT_REGISTRY_NAMES` cell computes the full + DFT comparison and the final verdict line. + +| registry | carbon sublattice A | carbon sublattice B | expectation from the manuscript | +|---|---|---|---| +| `top_fcc` | atop first-layer Ni | fcc hollow | favorable, chemisorbed near 2.1 A | +| `top_hcp` | atop first-layer Ni | hcp hollow | close to top-fcc | +| `bridge_top` | bridge between two Ni | mixed | close to top-fcc | +| `hollow_fcc_hcp` | fcc hollow | hcp hollow | not chemisorbed; only a dispersion-bound minimum | + +## 4. Calculation parameters + +| | this tutorial | manuscript | +|---|---|---| +| Fast tier | MACE-MP-0 (medium) + D3, rigid film | — | +| DFT functional | PBE (`pbe`) | collated vdW-corrected results | +| Pseudopotentials | ultrasoft (GBRV) | varies by cited study | +| Cutoffs | 50 Ry wavefunction, 400 Ry density | varies | +| k-grid | 12x12x1 on the 1x1 cell | varies | +| Spin | collinear, starting moment 0.7 on Ni | ferromagnetic Ni | +| Dispersion | D3 (`vdw_corr = "d3_grimme"`) | method-dependent | +| Geometry | film rigid at the MACE-optimized separation | relaxed | + +Nickel is ferromagnetic, so every DFT job runs spin-polarized. The D3 correction is applied in the +QE input because the separation of the hollow registry is a dispersion-bound minimum — without it +the physisorbed state does not bind at all. The in-plane k-grid divisions stay multiples of three so +the K point of the hexagonal cell is sampled exactly. + +The DFT jobs do not relax the film: each registry is computed at the separation the MACE scan +found for it. That keeps the DFT tier to single self-consistent calculations and avoids the +semi-local functional pulling the film away from the dispersion-bound geometry. + +## 5. Step-by-step instructions + +### 5.1. Create the structure + +Run the [structure creation notebook](optimization-interface-film-xy-position-graphene-nickel.md). +It saves `Graphene_Nickel_interface` into `uploads`. + +### 5.2. Open the simulation notebook + +``` +other/materials_designer/specific_examples/optimization_interface_film_xy_position_graphene_nickel_SIMULATION.ipynb +``` + +### 5.3. Run the fast tier + +*Run* > *Run All Cells*. Sections 2-4 need no platform account: they load the interface, derive +the registry placements (printing which surface site each carbon sublattice lands on), scan the +separations with MACE, and print the equilibrium distance and relative energy of every registry. + +### 5.4. Run the DFT tier + +Section 5 authenticates against the platform and submits one `Total Energy` job for the first +registry in `DFT_REGISTRY_NAMES`. Uncomment the remaining registries in that cell to submit all +four; the notebook then waits for the jobs and prints the DFT comparison. + +### 5.5. Read the verdict + +The final cell restates the manuscript's reference values, checks the favorable registry, the +chemisorption distance, and that the hollow registry does not chemisorb — the hollow's +dispersion-bound distance is reported for context but not gated, since MACE-MP + D3 places such +minima ~0.5 A beyond graphite's 3.3 A spacing — and, once all four DFT jobs have run, prints one +line: + +``` +Reproduces Dahal & Batzill (2014): yes +``` + +A default one-job run prints the fast-tier checks and names the registries still to activate +instead of a verdict — one DFT point cannot evaluate an ordering. + +## 6. Troubleshooting + +If a registry reports its minimum at the edge of the scan window, widen `Z_SCAN_START` / +`Z_SCAN_STOP`; the notebook prints a warning naming the registry. The first MACE call downloads the +foundation model, which takes a moment; subsequent runs use the cache. If the DFT energies of +different registries are identical, check that each job's material name carries a different +registry label and separation — the jobs are only as distinct as the materials submitted. + +## 7. Interactive JupyterLite notebook + +The notebook below runs the full comparison. Select *Run* > *Run All Cells*. + +{% with origin_url=config.extra.jupyterlite.origin_url_lab %} +{% with notebooks_path_root=config.extra.jupyterlite.notebooks_path_root %} +{% with notebook_name='specific_examples/optimization_interface_film_xy_position_graphene_nickel_SIMULATION.ipynb' %} +{% include 'jupyterlite_embed.html' %} +{% endwith %} +{% endwith %} +{% endwith %} + + +## 8. References diff --git a/mkdocs-guide.yml b/mkdocs-guide.yml index 31c6c13c..81e2cf0d 100644 --- a/mkdocs-guide.yml +++ b/mkdocs-guide.yml @@ -215,6 +215,7 @@ nav: - Grain Boundary in Cu (FCC): tutorials/materials/specific/defect-planar-grain-boundary-3d-fcc-metals-copper.md - Grain Boundary (2D) in h-BN: tutorials/materials/specific/defect-planar-grain-boundary-2d-boron-nitride.md - Gr/Ni(111) Interface Optimization: tutorials/materials/specific/optimization-interface-film-xy-position-graphene-nickel.md + - Gr/Ni(111) Registry and Separation: tutorials/materials/specific/optimization-interface-film-xy-position-graphene-nickel-simulation.md - Pt Adatoms Island on MoS2: tutorials/materials/specific/defect-point-adatom-island-molybdenum-disulfide-platinum.md # 2. Simulations diff --git a/mkdocs.yml b/mkdocs.yml index 17e81bb4..c2dbe2d1 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -175,6 +175,7 @@ nav: - Grain Boundary in FCC Metals (Copper): tutorials/materials/specific/defect-planar-grain-boundary-3d-fcc-metals-copper.md - Grain Boundary (2D) in h-BN: tutorials/materials/specific/defect-planar-grain-boundary-2d-boron-nitride.md - Gr/Ni(111) Interface Optimization: tutorials/materials/specific/optimization-interface-film-xy-position-graphene-nickel.md + - Gr/Ni(111) Registry and Separation: tutorials/materials/specific/optimization-interface-film-xy-position-graphene-nickel-simulation.md - Pt Adatoms Island on MoS2: tutorials/materials/specific/defect-point-adatom-island-molybdenum-disulfide-platinum.md # COMMON UI COMPONENTS From 2743f5a3a395a880efe083bdf5bbba9aefd2aa2c Mon Sep 17 00:00:00 2001 From: VsevolodX Date: Tue, 1 Sep 2026 10:44:53 -0700 Subject: [PATCH 2/5] SOF-8043: correct the Gr/Ni(111) tutorial after review The settings table documented the combination that inverts the result: MACE medium where the notebook uses large, and vdw_corr = "d3_grimme" where the notebook sets "grimme-d3". The medium model at float32 misses the shallow chemisorbed minimum entirely and reports every registry as physisorbed, so the page now says which model is required and why. Covers all four of the review's Fig. 1 registries under its own names, with the figure shown, and states plainly what is not claimed: which of the two atop registries is lowest is below the resolution of either method here. Documents the two same-cell reference jobs and the adsorption energy they produce. Co-Authored-By: Claude Fable 5 --- ...-xy-position-graphene-nickel-simulation.md | 100 +++++++++++------- 1 file changed, 64 insertions(+), 36 deletions(-) diff --git a/lang/en/docs/tutorials/materials/specific/optimization-interface-film-xy-position-graphene-nickel-simulation.md b/lang/en/docs/tutorials/materials/specific/optimization-interface-film-xy-position-graphene-nickel-simulation.md index 21b5f5a3..dbffa206 100644 --- a/lang/en/docs/tutorials/materials/specific/optimization-interface-film-xy-position-graphene-nickel-simulation.md +++ b/lang/en/docs/tutorials/materials/specific/optimization-interface-film-xy-position-graphene-nickel-simulation.md @@ -20,8 +20,8 @@ render_macros: true ## 1. Introduction -This tutorial computes which registry of graphene on Ni(111) is the most favorable and how far the -film sits above the surface, using the interface created in the +This tutorial computes which registry of graphene on Ni(111) is the most favourable, how far the film +sits above the surface, and the adsorption energy per carbon atom, using the interface created in the [structure creation tutorial](optimization-interface-film-xy-position-graphene-nickel.md), and compares the result against the following manuscript. @@ -30,17 +30,26 @@ compares the result against the following manuscript. "Graphene-nickel interfaces: a review" Nanoscale, 6(5), 2548 (2014) [DOI: 10.1039/c3nr05279f](https://doi.org/10.1039/c3nr05279f) [@Dahal2014] -### 1.1. What the manuscript reports +### 1.1. What is being reproduced Graphene and Ni(111) are lattice-matched to about one percent, so instead of a moiré pattern the -film locks into one of a few high-symmetry registries: **top-fcc**, **top-hcp**, **bridge-top**, and -the **hollow (fcc-hcp)** arrangement. The manuscript's key structural facts: +film locks into a single registry. The review's Fig. 1 sets out the four it considers, and this +tutorial computes all four under the review's own names: **hollow**, **atop/'fcc'**, **atop/'hcp'** +and **bridge**. Panel (b), atop/fcc, is the favourable position the review highlights and the one +the structure tutorial targets. -* chemisorbed graphene sits ~0.21 nm above the top Ni plane — far below the ~0.33 nm van der Waals - spacing of graphite — with top-fcc the favorable registry; -* the hollow registry does not chemisorb: its minimum lies out near the van der Waals distance; -* the registries are separated by only tens of meV per carbon atom, which is why each one must be - evaluated at its own optimal separation rather than at a shared height. +![The four registries of graphene on a close-packed metal surface](../../../images/tutorials/materials/optimization/optimization_interface_film_xy_position_graphene_nickel/0-figure-from-manuscript.webp "Registries of graphene on a close-packed metal surface") + +Two numbers are quoted in the review's abstract, and they are what this tutorial reproduces: +chemisorbed graphene sits **0.21 nm** above the top Ni plane, well below the **0.33 nm** van der +Waals spacing of graphite. Together with Fig. 1b naming the atop/fcc registry as the favourable one, +that gives three checks: an atop registry is the most favourable, it chemisorbs near 2.1 Å, and the +hollow arrangement does not chemisorb at all. + +!!!note "What is deliberately not claimed" + Which of the **two** atop registries is lowest is not asserted. They come out a few meV per + carbon atom apart, finer than either method here resolves, so they are treated as degenerate and + the atop family is compared against the hollow arrangement rather than against one another. ### 1.2. What is compared, and what is not @@ -73,27 +82,41 @@ The comparison runs in two tiers: tier runs in minutes and produces the energy-vs-distance curves, the minima, and the ordering. 2. **Total energy with DFT (platform jobs).** Each registry, held at its own MACE-optimized separation, is submitted as a `Total Energy` job. A default run submits **one** registry; - activating the remaining three in the notebook's `DFT_REGISTRY_NAMES` cell computes the full - DFT comparison and the final verdict line. - -| registry | carbon sublattice A | carbon sublattice B | expectation from the manuscript | + activating the others in the notebook's `DFT_REGISTRY_NAMES` cell computes the full DFT + comparison and the DFT-tier verdict. + + Two further jobs compute the **bare Ni slab** and the **free-standing graphene sheet** *in the + same cell*, which turns the interface energies into an adsorption energy per carbon atom: + `E_ads = [E(interface) − E(Ni slab) − E(graphene)] / N_C`. Because all three share the cell, + k-grid, cutoffs and smearing, those cancel out of the difference. Set + `COMPUTE_ADSORPTION_ENERGY = False` to skip them. The result is a PBE+D3 number: the review + collates adsorption energies from several methods, so compare the ordering and the magnitude + rather than the digits. + +| registry | Fig. 1 | carbon sublattices | expected | |---|---|---|---| -| `top_fcc` | atop first-layer Ni | fcc hollow | favorable, chemisorbed near 2.1 A | -| `top_hcp` | atop first-layer Ni | hcp hollow | close to top-fcc | -| `bridge_top` | bridge between two Ni | mixed | close to top-fcc | -| `hollow_fcc_hcp` | fcc hollow | hcp hollow | not chemisorbed; only a dispersion-bound minimum | +| `atop_fcc` | (b) | atop first-layer Ni + fcc hollow | favourable; chemisorbed near 2.1 Å | +| `atop_hcp` | (c) | atop first-layer Ni + hcp hollow | degenerate with atop/fcc at this level of theory | +| `bridge` | (d) | one carbon on the Ni–Ni midpoint | chemisorbed but clearly higher in energy | +| `hollow` | (a) | fcc hollow + hcp hollow | not chemisorbed; only a dispersion-bound minimum | + +The notebook derives these from the structure itself: the surface sites are located from the +substrate's top three Ni layers, and the three site-pair registries are labelled by measuring which +site the second carbon sublattice lands on — refusing to label a carbon that is equidistant from two +sites rather than picking one. The bridge registry is defined by its own geometry instead, since only +one of its carbons sits on a named site. ## 4. Calculation parameters | | this tutorial | manuscript | |---|---|---| -| Fast tier | MACE-MP-0 (medium) + D3, rigid film | — | +| Fast tier | MACE-MP-0 (large, float64) + D3, rigid film | — | | DFT functional | PBE (`pbe`) | collated vdW-corrected results | | Pseudopotentials | ultrasoft (GBRV) | varies by cited study | | Cutoffs | 50 Ry wavefunction, 400 Ry density | varies | | k-grid | 12x12x1 on the 1x1 cell | varies | -| Spin | collinear, starting moment 0.7 on Ni | ferromagnetic Ni | -| Dispersion | D3 (`vdw_corr = "d3_grimme"`) | method-dependent | +| Spin | collinear, starting moment 0.7 on Ni, `degauss = 0.01` Ry | ferromagnetic Ni | +| Dispersion | D3 (`vdw_corr = "grimme-d3"`) | method-dependent | | Geometry | film rigid at the MACE-optimized separation | relaxed | Nickel is ferromagnetic, so every DFT job runs spin-polarized. The D3 correction is applied in the @@ -101,6 +124,12 @@ QE input because the separation of the hollow registry is a dispersion-bound min the physisorbed state does not bind at all. The in-plane k-grid divisions stay multiples of three so the K point of the hexagonal cell is sampled exactly. +The MACE model size matters more than it looks: the **large** model at `float64` resolves the shallow +chemisorbed minimum, while the medium model at `float32` misses it entirely and reports every +registry as merely physisorbed — which inverts the result. The two dispersion-bound minima also come +out near 4 Å rather than graphite's 3.3 Å, so the hollow registry's distance is reported for context +and is not one of the checks; that it has no chemisorbed minimum is. + The DFT jobs do not relax the film: each registry is computed at the separation the MACE scan found for it. That keeps the DFT tier to single self-consistent calculations and avoids the semi-local functional pulling the film away from the dispersion-bound geometry. @@ -127,31 +156,30 @@ separations with MACE, and print the equilibrium distance and relative energy of ### 5.4. Run the DFT tier Section 5 authenticates against the platform and submits one `Total Energy` job for the first -registry in `DFT_REGISTRY_NAMES`. Uncomment the remaining registries in that cell to submit all -four; the notebook then waits for the jobs and prints the DFT comparison. +registry in `DFT_REGISTRY_NAMES`. Uncomment the other registries in that cell to submit all three; +the notebook then waits for the jobs and prints the DFT comparison. ### 5.5. Read the verdict -The final cell restates the manuscript's reference values, checks the favorable registry, the -chemisorption distance, and that the hollow registry does not chemisorb — the hollow's -dispersion-bound distance is reported for context but not gated, since MACE-MP + D3 places such -minima ~0.5 A beyond graphite's 3.3 A spacing — and, once all four DFT jobs have run, prints one -line: +The final cell states the two distances quoted in the review's abstract, checks the three claims, and +prints a verdict per tier: ``` -Reproduces Dahal & Batzill (2014): yes +Reproduces Dahal & Batzill (2014) [MACE tier]: yes ``` -A default one-job run prints the fast-tier checks and names the registries still to activate -instead of a verdict — one DFT point cannot evaluate an ordering. +The DFT-tier line appears once all three registries have finished — one job cannot evaluate an +ordering, so a default run names the registries still to activate instead. ## 6. Troubleshooting -If a registry reports its minimum at the edge of the scan window, widen `Z_SCAN_START` / -`Z_SCAN_STOP`; the notebook prints a warning naming the registry. The first MACE call downloads the -foundation model, which takes a moment; subsequent runs use the cache. If the DFT energies of -different registries are identical, check that each job's material name carries a different -registry label and separation — the jobs are only as distinct as the materials submitted. +If a registry's minimum sits at the low edge of the scan, the notebook says so by name; lower +`Z_SCAN_START` before trusting that number. If every registry comes back as physisorbed only, check +`MACE_MODEL` and `MACE_DEFAULT_DTYPE` first — the medium/float32 combination reproduces exactly that +symptom. The first MACE call downloads the foundation model, which takes a moment; later runs use the +cache. If the DFT energies of different registries are identical, check that each job's material name +carries its own registry label and separation — the jobs are only as distinct as the materials +submitted. ## 7. Interactive JupyterLite notebook From 4de2683e644457e1f66d9efec6d7d13f877aec64 Mon Sep 17 00:00:00 2001 From: VsevolodX Date: Tue, 1 Sep 2026 12:08:51 -0700 Subject: [PATCH 3/5] SOF-8043: correct the bridge registry and job counts in the tutorial The bridge registry is a C-C bond straddling a first-layer Ni, not a carbon on the Ni-Ni midpoint. Cutoffs follow the notebook at 40/320 Ry. The adsorption-energy references are described as off by default, and what their same-cell arrangement does and does not cancel is stated plainly. Job counts now match the notebook: four registries, and the two reference jobs add to whatever is active rather than being part of a default run. Co-Authored-By: Claude Fable 5 --- ...-xy-position-graphene-nickel-simulation.md | 33 +++++++++++-------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/lang/en/docs/tutorials/materials/specific/optimization-interface-film-xy-position-graphene-nickel-simulation.md b/lang/en/docs/tutorials/materials/specific/optimization-interface-film-xy-position-graphene-nickel-simulation.md index dbffa206..c1c129f8 100644 --- a/lang/en/docs/tutorials/materials/specific/optimization-interface-film-xy-position-graphene-nickel-simulation.md +++ b/lang/en/docs/tutorials/materials/specific/optimization-interface-film-xy-position-graphene-nickel-simulation.md @@ -85,26 +85,30 @@ The comparison runs in two tiers: activating the others in the notebook's `DFT_REGISTRY_NAMES` cell computes the full DFT comparison and the DFT-tier verdict. - Two further jobs compute the **bare Ni slab** and the **free-standing graphene sheet** *in the - same cell*, which turns the interface energies into an adsorption energy per carbon atom: - `E_ads = [E(interface) − E(Ni slab) − E(graphene)] / N_C`. Because all three share the cell, - k-grid, cutoffs and smearing, those cancel out of the difference. Set - `COMPUTE_ADSORPTION_ENERGY = False` to skip them. The result is a PBE+D3 number: the review - collates adsorption energies from several methods, so compare the ordering and the magnitude - rather than the digits. + Setting `COMPUTE_ADSORPTION_ENERGY = True` adds two further jobs — the **bare Ni slab** and the + **free-standing graphene sheet**, both *in the same cell* — which turn the interface energies into + an adsorption energy per carbon atom: + `E_ads = [E(interface) − E(Ni slab) − E(graphene)] / N_C`. Sharing the cell, k-grid, cutoffs and + smearing removes the cell- and sampling-dependent part of the error from the difference; basis-set + and smearing errors are system-specific and do not cancel exactly, so the number is good to tens + of meV rather than to the digit. It is off by default because it triples the job count. The result + is a PBE+D3 value, and the review collates adsorption energies from several methods, so compare + the ordering and magnitude rather than the digits. | registry | Fig. 1 | carbon sublattices | expected | |---|---|---|---| | `atop_fcc` | (b) | atop first-layer Ni + fcc hollow | favourable; chemisorbed near 2.1 Å | | `atop_hcp` | (c) | atop first-layer Ni + hcp hollow | degenerate with atop/fcc at this level of theory | -| `bridge` | (d) | one carbon on the Ni–Ni midpoint | chemisorbed but clearly higher in energy | +| `bridge` | (d) | the C–C bond straddles a first-layer Ni | chemisorbed, a little above the atop registries | | `hollow` | (a) | fcc hollow + hcp hollow | not chemisorbed; only a dispersion-bound minimum | The notebook derives these from the structure itself: the surface sites are located from the substrate's top three Ni layers, and the three site-pair registries are labelled by measuring which site the second carbon sublattice lands on — refusing to label a carbon that is equidistant from two -sites rather than picking one. The bridge registry is defined by its own geometry instead, since only -one of its carbons sits on a named site. +sites rather than picking one. The bridge registry is defined by its own geometry instead: neither +carbon is on a site, and what fixes it is that a first-layer Ni sits directly under the midpoint of a +C–C bond — the vertical bonds in Fig. 1d run through the centres of the surface atoms. The notebook +verifies that placement rather than trusting it. ## 4. Calculation parameters @@ -113,7 +117,7 @@ one of its carbons sits on a named site. | Fast tier | MACE-MP-0 (large, float64) + D3, rigid film | — | | DFT functional | PBE (`pbe`) | collated vdW-corrected results | | Pseudopotentials | ultrasoft (GBRV) | varies by cited study | -| Cutoffs | 50 Ry wavefunction, 400 Ry density | varies | +| Cutoffs | 40 Ry wavefunction, 320 Ry density | varies | | k-grid | 12x12x1 on the 1x1 cell | varies | | Spin | collinear, starting moment 0.7 on Ni, `degauss = 0.01` Ry | ferromagnetic Ni | | Dispersion | D3 (`vdw_corr = "grimme-d3"`) | method-dependent | @@ -156,8 +160,9 @@ separations with MACE, and print the equilibrium distance and relative energy of ### 5.4. Run the DFT tier Section 5 authenticates against the platform and submits one `Total Energy` job for the first -registry in `DFT_REGISTRY_NAMES`. Uncomment the other registries in that cell to submit all three; -the notebook then waits for the jobs and prints the DFT comparison. +registry in `DFT_REGISTRY_NAMES`. Uncomment the other registries in that cell to submit all four; the +notebook then waits for the jobs and prints the DFT comparison. Enabling +`COMPUTE_ADSORPTION_ENERGY` adds two more jobs on top of whatever is active. ### 5.5. Read the verdict @@ -168,7 +173,7 @@ prints a verdict per tier: Reproduces Dahal & Batzill (2014) [MACE tier]: yes ``` -The DFT-tier line appears once all three registries have finished — one job cannot evaluate an +The DFT-tier line appears once all four registries have finished — one job cannot evaluate an ordering, so a default run names the registries still to activate instead. ## 6. Troubleshooting From 82862c3bc6631a90b6b3baaa4b0a1ad59b00046d Mon Sep 17 00:00:00 2001 From: VsevolodX Date: Tue, 1 Sep 2026 12:41:26 -0700 Subject: [PATCH 4/5] SOF-8043: state what each calculation setting rests on MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cutoffs corrected to the 40 / 200 Ry pair GBRV publishes for its ultrasoft set. The settings section now says, for every value, whether it is a platform default, the pseudopotential set's published value, or something this system's physics requires — including what the SCF defaults did on a first attempt and which three changes address it. Co-Authored-By: Claude Fable 5 --- ...m-xy-position-graphene-nickel-simulation.md | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/lang/en/docs/tutorials/materials/specific/optimization-interface-film-xy-position-graphene-nickel-simulation.md b/lang/en/docs/tutorials/materials/specific/optimization-interface-film-xy-position-graphene-nickel-simulation.md index c1c129f8..9bba4311 100644 --- a/lang/en/docs/tutorials/materials/specific/optimization-interface-film-xy-position-graphene-nickel-simulation.md +++ b/lang/en/docs/tutorials/materials/specific/optimization-interface-film-xy-position-graphene-nickel-simulation.md @@ -117,9 +117,10 @@ verifies that placement rather than trusting it. | Fast tier | MACE-MP-0 (large, float64) + D3, rigid film | — | | DFT functional | PBE (`pbe`) | collated vdW-corrected results | | Pseudopotentials | ultrasoft (GBRV) | varies by cited study | -| Cutoffs | 40 Ry wavefunction, 320 Ry density | varies | +| Cutoffs | 40 Ry wavefunction, 200 Ry density | varies | | k-grid | 12x12x1 on the 1x1 cell | varies | -| Spin | collinear, starting moment 0.7 on Ni, `degauss = 0.01` Ry | ferromagnetic Ni | +| Spin | collinear, started near Ni's bulk moment (0.7 μB) | ferromagnetic Ni | +| Smearing | Marzari-Vanderbilt cold, `degauss = 0.01` Ry | varies | | Dispersion | D3 (`vdw_corr = "grimme-d3"`) | method-dependent | | Geometry | film rigid at the MACE-optimized separation | relaxed | @@ -128,6 +129,19 @@ QE input because the separation of the hollow registry is a dispersion-bound min the physisorbed state does not bind at all. The in-plane k-grid divisions stay multiples of three so the K point of the hexagonal cell is sampled exactly. +Every value in that table is either a platform default, the value the pseudopotential set is +published with, or something this system's physics requires. The cutoffs are the 40/200 Ry pair GBRV +publishes for its ultrasoft set. The in-plane k-point divisions are a multiple of three so that K, +at (1/3, 1/3), lies on the grid, and dense enough for a metal's Fermi surface. + +A spin-polarized metal slab is the hard case for the SCF, and the platform defaults do not converge +it — a first attempt stopped at *convergence NOT achieved after 100 iterations*, with the total +energy oscillating in its fourth decimal, which is charge sloshing rather than divergence. Three +changes address that and nothing else: cold smearing, which is the standard metal choice because it +leaves the free energy insensitive to `degauss`; `local-TF` mixing, built for the long-wavelength +charge oscillation a slab supports; and a smaller mixing fraction with more iterations so the +magnetic moment can settle. + The MACE model size matters more than it looks: the **large** model at `float64` resolves the shallow chemisorbed minimum, while the medium model at `float32` misses it entirely and reports every registry as merely physisorbed — which inverts the result. The two dispersion-bound minima also come From 52d25342a4170c08f05b5167310863a9542d3321 Mon Sep 17 00:00:00 2001 From: VsevolodX Date: Tue, 1 Sep 2026 19:52:53 -0700 Subject: [PATCH 5/5] SOF-8043: rewrite the tutorial around the published targets The page now leads with Lahiri et al. Table 1 as the quantitative target, states the published recipe (LDA, spin-polarized, relaxation with the bottom substrate layers fixed) and why relaxation is not optional, explains that the fast tier is expected to fail the energetic targets and why that is the physics working as documented, and lists the divergences from the paper in one place. Co-Authored-By: Claude Fable 5 --- ...-xy-position-graphene-nickel-simulation.md | 228 ++++++++---------- 1 file changed, 97 insertions(+), 131 deletions(-) diff --git a/lang/en/docs/tutorials/materials/specific/optimization-interface-film-xy-position-graphene-nickel-simulation.md b/lang/en/docs/tutorials/materials/specific/optimization-interface-film-xy-position-graphene-nickel-simulation.md index 9bba4311..84caffa0 100644 --- a/lang/en/docs/tutorials/materials/specific/optimization-interface-film-xy-position-graphene-nickel-simulation.md +++ b/lang/en/docs/tutorials/materials/specific/optimization-interface-film-xy-position-graphene-nickel-simulation.md @@ -5,7 +5,8 @@ tags: - interface - registry - adsorption - - total-energy + - work of adhesion + - relaxation - machine-learned force field - MACE - C-2D-INT-Z @@ -16,14 +17,14 @@ hide: render_macros: true --- -# Gr/Ni(111) Registry and Separation +# Gr/Ni(111) Registry and Work of Adhesion ## 1. Introduction -This tutorial computes which registry of graphene on Ni(111) is the most favourable, how far the film -sits above the surface, and the adsorption energy per carbon atom, using the interface created in the -[structure creation tutorial](optimization-interface-film-xy-position-graphene-nickel.md), and -compares the result against the following manuscript. +This tutorial reproduces the structure and energetics of graphene on Ni(111) — which registry the +film adopts, how far it sits above the surface, and the work of adhesion of each arrangement — +using the interface created in the +[structure creation tutorial](optimization-interface-film-xy-position-graphene-nickel.md). !!!note "Manuscript" **Arjun Dahal, Matthias Batzill**, @@ -32,125 +33,89 @@ compares the result against the following manuscript. ### 1.1. What is being reproduced -Graphene and Ni(111) are lattice-matched to about one percent, so instead of a moiré pattern the -film locks into a single registry. The review's Fig. 1 sets out the four it considers, and this -tutorial computes all four under the review's own names: **hollow**, **atop/'fcc'**, **atop/'hcp'** -and **bridge**. Panel (b), atop/fcc, is the favourable position the review highlights and the one -the structure tutorial targets. +Graphene and Ni(111) are lattice-matched to within a fraction of a percent, so the film locks into +a 1×1 registry. The review's section 2.1 collects the established structural facts: LEED I–V and +ion scattering identify the adsorbed structure as one carbon **atop** a first-layer Ni atom and the +other in the **fcc hollow**, 0.211 nm above the surface, with a 0.005 nm buckling in which the atop +carbon sits further out. The review's computed values come from Lahiri *et al.*, New J. Phys. 13, +025001 (2011) — open access, and the quantitative target here (its Table 1): -![The four registries of graphene on a close-packed metal surface](../../../images/tutorials/materials/optimization/optimization_interface_film_xy_position_graphene_nickel/0-figure-from-manuscript.webp "Registries of graphene on a close-packed metal surface") +| interface | work of adhesion (J/m²) | separation (Å) | +|---|---|---| +| fcc (atop + fcc hollow) | 0.81 | 2.16 | +| hcp (atop + hcp hollow) | 0.77 | 2.17 | +| hollow (fcc + hcp hollows) | 0.31 | 3.26 | -Two numbers are quoted in the review's abstract, and they are what this tutorial reproduces: -chemisorbed graphene sits **0.21 nm** above the top Ni plane, well below the **0.33 nm** van der -Waals spacing of graphite. Together with Fig. 1b naming the atop/fcc registry as the favourable one, -that gives three checks: an atop registry is the most favourable, it chemisorbs near 2.1 Å, and the -hollow arrangement does not chemisorb at all. +The review's text quotes the hollow as 0.38 J/m²; the source paper's Table 1 says 0.31, and the +notebook targets the source. The bridge registry (Fig. 1d of the review) is not quantified in +either paper and is computed as an extra point beyond the published set. -!!!note "What is deliberately not claimed" - Which of the **two** atop registries is lowest is not asserted. They come out a few meV per - carbon atom apart, finer than either method here resolves, so they are treated as degenerate and - the atop family is compared against the hollow arrangement rather than against one another. +![The four registries of graphene on a close-packed metal surface](../../../images/tutorials/materials/optimization/optimization_interface_film_xy_position_graphene_nickel/0-figure-from-manuscript.webp "Registries of graphene on a close-packed metal surface") -### 1.2. What is compared, and what is not +### 1.2. The published recipe, and why relaxation is not optional -The manuscript's adsorption energies come from dispersion-corrected calculations beyond semi-local -DFT, so absolute binding energies are not comparable here. What survives transfer between methods — -and what this tutorial reproduces — are the **ordering of the registries** and the **equilibrium -separations**, both computed as differences or geometric quantities with identical settings across -every configuration. +Lahiri *et al.* state their method plainly: **LDA**, because "GGA does not provide an adequate +description of Ni–graphene bonding" for this interface; spin-polarized throughout; and **geometry +relaxation** with the bottom substrate layers fixed. The buckling is itself one of the published +numbers, and no rigid placement can produce a buckling — so every result in this tutorial comes +from a relaxed structure, and rigid scans are used only to bracket the starting separations. ## 2. Prerequisites -Run the -[structure creation tutorial](optimization-interface-film-xy-position-graphene-nickel.md) first. -Its notebook builds the Gr/Ni(111) interface and saves it into the `uploads` folder as -`Graphene_Nickel_interface`. The simulation notebook loads it back by exactly that name and stops -if it is missing rather than substituting a different material. The reduced interface cell is the -1x1 match: 2 carbon and 4 nickel atoms. +Run the [structure creation tutorial](optimization-interface-film-xy-position-graphene-nickel.md) +first. Its notebook builds the Gr/Ni(111) interface and saves it into the `uploads` folder as +`Graphene_Nickel_interface`; the simulation notebook loads it back by exactly that name and stops +if it is missing. The reduced cell is the 1×1 match: 2 carbon and 4 nickel atoms. ## 3. What is calculated -The comparison runs in two tiers: - -1. **Energy vs. separation with MACE (fast, local).** The film is placed at each of the four - registries — the surface sites are located from the top three Ni layers of the structure itself — - and rigidly moved through a range of film-substrate distances. The - [MACE-MP](https://github.com/ACEsuit/mace) machine-learned force field with D3 dispersion - evaluates each configuration. A chemisorbing registry produces **two minima** — chemisorbed near - 2 A and dispersion-bound further out — so the registry comparison reads the chemisorbed branch, - each registry at its own minimum; the hollow registry has no chemisorbed minimum at all. This - tier runs in minutes and produces the energy-vs-distance curves, the minima, and the ordering. -2. **Total energy with DFT (platform jobs).** Each registry, held at its own MACE-optimized - separation, is submitted as a `Total Energy` job. A default run submits **one** registry; - activating the others in the notebook's `DFT_REGISTRY_NAMES` cell computes the full DFT - comparison and the DFT-tier verdict. - - Setting `COMPUTE_ADSORPTION_ENERGY = True` adds two further jobs — the **bare Ni slab** and the - **free-standing graphene sheet**, both *in the same cell* — which turn the interface energies into - an adsorption energy per carbon atom: - `E_ads = [E(interface) − E(Ni slab) − E(graphene)] / N_C`. Sharing the cell, k-grid, cutoffs and - smearing removes the cell- and sampling-dependent part of the error from the difference; basis-set - and smearing errors are system-specific and do not cancel exactly, so the number is good to tens - of meV rather than to the digit. It is off by default because it triples the job count. The result - is a PBE+D3 value, and the review collates adsorption energies from several methods, so compare - the ordering and magnitude rather than the digits. - -| registry | Fig. 1 | carbon sublattices | expected | +Two tiers, both relaxed: + +1. **Fast tier — MACE-MP + D3, in the browser.** Each registry is placed (the surface sites are + measured from the substrate's own top layers, and each registry label is re-verified after + relaxation, so a structure that slid into a neighbouring registry cannot be reported under the + wrong name), bracketed by a rigid scan, then relaxed with the bottom substrate layers fixed — + the paper's scheme. Same-cell relaxed references (bare Ni slab, free-standing graphene) turn the + energies into works of adhesion: `W = [E(slab) + E(graphene) − E(interface)] / A`. + + **The fast tier is expected to fail the energetic targets, and says so.** MACE-MP is PBE-trained, + and PBE-level physics is exactly what the paper rejects for this interface: chemisorption comes + out several times too weak. What the fast tier is good for is the geometry survey — the E(z) + curves, the two-minimum structure, and the dispersion-bound hollow, whose work of adhesion it + nearly matches (0.30 vs 0.31 J/m²). Its comparison table prints against the paper's values with + pass/fail per check and an honest per-tier verdict line. + +2. **Precise tier — the paper's LDA on the platform.** One relaxation + total-energy job per + selected registry, starting from the MACE-relaxed geometry, plus the two same-cell references — + LDA (`pz`, GBRV ultrasoft — the platform carries the LDA set for both Ni and C), spin-polarized, + **no dispersion correction**, matching the paper: LDA binds this interface unaided, which is the + stated reason its authors chose it. This tier carries the reproduction claim. + +| registry | Fig. 1 | carbon sublattices | published target | |---|---|---|---| -| `atop_fcc` | (b) | atop first-layer Ni + fcc hollow | favourable; chemisorbed near 2.1 Å | -| `atop_hcp` | (c) | atop first-layer Ni + hcp hollow | degenerate with atop/fcc at this level of theory | -| `bridge` | (d) | the C–C bond straddles a first-layer Ni | chemisorbed, a little above the atop registries | -| `hollow` | (a) | fcc hollow + hcp hollow | not chemisorbed; only a dispersion-bound minimum | - -The notebook derives these from the structure itself: the surface sites are located from the -substrate's top three Ni layers, and the three site-pair registries are labelled by measuring which -site the second carbon sublattice lands on — refusing to label a carbon that is equidistant from two -sites rather than picking one. The bridge registry is defined by its own geometry instead: neither -carbon is on a site, and what fixes it is that a first-layer Ni sits directly under the midpoint of a -C–C bond — the vertical bonds in Fig. 1d run through the centres of the surface atoms. The notebook -verifies that placement rather than trusting it. +| `atop_fcc` | (b) | atop + fcc hollow | 0.81 J/m² at 2.16 Å, favourable | +| `atop_hcp` | (c) | atop + hcp hollow | 0.77 J/m² at 2.17 Å | +| `hollow` | (a) | fcc + hcp hollows | 0.31 J/m² at 3.26 Å — dispersion-bound | +| `bridge` | (d) | C–C bond straddling a first-layer Ni | beyond the published set | ## 4. Calculation parameters -| | this tutorial | manuscript | -|---|---|---| -| Fast tier | MACE-MP-0 (large, float64) + D3, rigid film | — | -| DFT functional | PBE (`pbe`) | collated vdW-corrected results | -| Pseudopotentials | ultrasoft (GBRV) | varies by cited study | -| Cutoffs | 40 Ry wavefunction, 200 Ry density | varies | -| k-grid | 12x12x1 on the 1x1 cell | varies | -| Spin | collinear, started near Ni's bulk moment (0.7 μB) | ferromagnetic Ni | -| Smearing | Marzari-Vanderbilt cold, `degauss = 0.01` Ry | varies | -| Dispersion | D3 (`vdw_corr = "grimme-d3"`) | method-dependent | -| Geometry | film rigid at the MACE-optimized separation | relaxed | - -Nickel is ferromagnetic, so every DFT job runs spin-polarized. The D3 correction is applied in the -QE input because the separation of the hollow registry is a dispersion-bound minimum — without it -the physisorbed state does not bind at all. The in-plane k-grid divisions stay multiples of three so -the K point of the hexagonal cell is sampled exactly. - -Every value in that table is either a platform default, the value the pseudopotential set is -published with, or something this system's physics requires. The cutoffs are the 40/200 Ry pair GBRV -publishes for its ultrasoft set. The in-plane k-point divisions are a multiple of three so that K, -at (1/3, 1/3), lies on the grid, and dense enough for a metal's Fermi surface. - -A spin-polarized metal slab is the hard case for the SCF, and the platform defaults do not converge -it — a first attempt stopped at *convergence NOT achieved after 100 iterations*, with the total -energy oscillating in its fourth decimal, which is charge sloshing rather than divergence. Three -changes address that and nothing else: cold smearing, which is the standard metal choice because it -leaves the free energy insensitive to `degauss`; `local-TF` mixing, built for the long-wavelength -charge oscillation a slab supports; and a smaller mixing fraction with more iterations so the -magnetic moment can settle. - -The MACE model size matters more than it looks: the **large** model at `float64` resolves the shallow -chemisorbed minimum, while the medium model at `float32` misses it entirely and reports every -registry as merely physisorbed — which inverts the result. The two dispersion-bound minima also come -out near 4 Å rather than graphite's 3.3 Å, so the hollow registry's distance is reported for context -and is not one of the checks; that it has no chemisorbed minimum is. - -The DFT jobs do not relax the film: each registry is computed at the separation the MACE scan -found for it. That keeps the DFT tier to single self-consistent calculations and avoids the -semi-local functional pulling the film away from the dispersion-bound geometry. +| | fast tier | precise tier | Lahiri et al. | +|---|---|---|---| +| Method | MACE-MP-0 (large, float64) + D3 | LDA (`pz`), GBRV ultrasoft | LDA, all-electron LCAO (DMol) | +| Spin | via training data | collinear, moment started at 0.7 μB on Ni | spin-polarized (bulk Ni: 0.56 μB) | +| Relaxation | BFGS, bottom 2 Ni layers fixed | platform relaxation + total energy | bottom 2 of 5 Ni layers fixed | +| Cutoffs | — | 40 / 200 Ry (GBRV's published pair) | all-electron | +| k-grid | — | 12×12×1 (multiple of 3, so K is on the mesh) | converged, not stated | +| Smearing | — | Marzari-Vanderbilt cold, `degauss = 0.01` Ry | not stated | +| Dispersion | D3 | none — matching the paper | none | + +Stated divergences from the paper: the slab is the structure tutorial's 4 Ni layers rather than 5; +the vacuum is 20 Å rather than 90; the platform relaxation cannot hold the bottom layers fixed +(the fast tier can, and does); plane-wave pseudopotentials rather than all-electron LCAO. The SCF +convergence settings (cold smearing, `local-TF` mixing, `mixing_beta = 0.2`, 200 iterations) exist +because the platform defaults stop at "convergence NOT achieved after 100 iterations" on this +spin-polarized metal slab, with the energy oscillating in its fourth decimal — charge sloshing. ## 5. Step-by-step instructions @@ -167,42 +132,43 @@ other/materials_designer/specific_examples/optimization_interface_film_xy_positi ### 5.3. Run the fast tier -*Run* > *Run All Cells*. Sections 2-4 need no platform account: they load the interface, derive -the registry placements (printing which surface site each carbon sublattice lands on), scan the -separations with MACE, and print the equilibrium distance and relative energy of every registry. +*Run* > *Run All Cells*. Sections 2–4 need no platform account: they load the interface, derive and +verify the registries, relax each one with MACE, and print the comparison against Lahiri Table 1 — +including the honest `[MACE tier]` verdict. -### 5.4. Run the DFT tier +### 5.4. Run the precise tier -Section 5 authenticates against the platform and submits one `Total Energy` job for the first -registry in `DFT_REGISTRY_NAMES`. Uncomment the other registries in that cell to submit all four; the -notebook then waits for the jobs and prints the DFT comparison. Enabling -`COMPUTE_ADSORPTION_ENERGY` adds two more jobs on top of whatever is active. +Section 5 authenticates and submits, per selected registry, a relaxation + total-energy job at the +paper's LDA, plus the two reference jobs. A default run selects one registry — three jobs. Leaving +`DFT_REGISTRY_NAMES` **empty** skips the platform tier entirely; the automated test does exactly +that, because relaxation jobs outlast what a browser test may wait for. ### 5.5. Read the verdict -The final cell states the two distances quoted in the review's abstract, checks the three claims, and -prints a verdict per tier: +The final cell restates the published targets and prints one verdict per tier: ``` -Reproduces Dahal & Batzill (2014) [MACE tier]: yes +Reproduces Lahiri et al. Table 1 [MACE tier]: no +Reproduces Lahiri et al. Table 1 [DFT tier]: yes ``` -The DFT-tier line appears once all four registries have finished — one job cannot evaluate an -ordering, so a default run names the registries still to activate instead. +The fast tier failing its energetic checks is the physics working as documented, not a bug — see +section 3. The DFT-tier line appears once the selected registries and both references have +finished. ## 6. Troubleshooting -If a registry's minimum sits at the low edge of the scan, the notebook says so by name; lower -`Z_SCAN_START` before trusting that number. If every registry comes back as physisorbed only, check -`MACE_MODEL` and `MACE_DEFAULT_DTYPE` first — the medium/float32 combination reproduces exactly that -symptom. The first MACE call downloads the foundation model, which takes a moment; later runs use the -cache. If the DFT energies of different registries are identical, check that each job's material name -carries its own registry label and separation — the jobs are only as distinct as the materials -submitted. +If a registry's rigid scan finds no bracketed minimum, widen the scan window. If every registry +comes back physisorbed-only in the fast tier, check `MACE_MODEL` and `MACE_DEFAULT_DTYPE` — the +medium/float32 combination misses the chemisorbed minimum entirely. The first MACE call downloads +the foundation model; later runs use the cache. If a platform job stops at "convergence NOT +achieved", the smearing/mixing block in the parameters cell is the knob — those settings exist +precisely because the defaults do not converge this slab. ## 7. Interactive JupyterLite notebook -The notebook below runs the full comparison. Select *Run* > *Run All Cells*. +The notebook below runs the fast tier and, when registries are selected, the platform tier. +Select *Run* > *Run All Cells*. {% with origin_url=config.extra.jupyterlite.origin_url_lab %} {% with notebooks_path_root=config.extra.jupyterlite.notebooks_path_root %}