Skip to content

feature/SOF-8044 Feature: add the h-BN boron-vacancy formation-energy tutorial page - #404

Draft
VsevolodX wants to merge 10 commits into
mainfrom
feature/SOF-8044
Draft

VsevolodX wants to merge 10 commits into
mainfrom
feature/SOF-8044

Conversation

@VsevolodX

Copy link
Copy Markdown
Member

Tutorial page for the h-BN boron-vacancy formation-energy Specific Example (api-examples PR: mat3ra/api-examples#367), Jira SOF-8044, epic SOF-7994.

What changed

  • New tutorials/materials/specific/defect-point-vacancy-boron-nitride-simulation.md: what is reproduced (QPOD 1BN-1.2d.v_B.0.1, 10.18 eV, standard states; only q = 0), the formation-energy definition, settings and where they differ from QPOD (GBRV ultrasoft vs PAW, 48- vs 84-atom cell, SCF vs relaxed — the two estimated offsets are 0.02 and 0.04 eV), theory vs experiment, what the default run submits, the JupyterLite embed.
  • mkdocs.yml and mkdocs-guide.yml: one nav line each, next to the structure page.
  • references.bib: Bertoldo2022 journal corrected to npj Computational Materials.

Verified

  • scripts/serve-all.sh --build + scripts/links/check-links.py: no broken internal links (332 664 checked); the page appears in the Guide nav next to its prerequisite; the citation renders.

Manual checks (merging accepts anything unticked)

  • The jupyterlite_embed opens specific_examples/defect_point_vacancy_boron_nitride_SIMULATION.ipynb on the preview — requires the api-examples PR merged and the JupyterLite build refreshed first.
  • Numbers on the page match the notebook's printed E_f after the production run.

Merge after mat3ra/api-examples#367.

VsevolodX and others added 8 commits September 12, 2026 21:28
Reproduces QPOD's neutral V_B formation energy (10.18 eV, standard
states) for the h-BN vacancy tutorial pair, mirroring the graphene
substitution simulation page's structure.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Review blockers: correct n_i to the signed atom-count change (the page
had E_f short by 2*mu_B), stop promising the four Total Energy jobs
always share one model (the notebook reuses an existing job per
material instead), state the 0.02 eV finite-size offset without
implying it bounds the tolerance, and register the page in
mkdocs-guide.yml (Tutorials site), which was missing it entirely.

Should-fix: numeric cutoff/k-grid in the settings table, npj (not
Nature) Computational Materials in the body, reconcile the nitrogen
reference job with its zero coefficient, $$...$$ for the equation, and
name the compute defaults in what the default run does.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The notebook's model is GBRV ultrasoft PBE at 40 Ry / 200 Ry, not PAW
PseudoDojo JTH -- ultrasoft PBE sets for B and N do exist. Update the
settings table and the surrounding sentence, and keep the pseudopotential
family as one of the differences the 0.5 eV tolerance covers.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Round-2 review: the "clean project" sentence described a project
selector the notebook doesn't have -- replace it with the actual
consistency check the results cell runs (recompute E_f from three
owned total energies, warn on mismatch). Note that PAW and ultrasoft
cutoffs aren't comparable numbers, and fold cutoff into the tolerance's
unestimated differences. Correct "jobs already finished are reused" --
only the three reference jobs are; the defect job always runs. Fix the
references.bib journal to npj Computational Materials (was Nature).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Round-3 review: the reference-reuse and cluster-fallback paragraphs
described notebook behaviour 64b562aa changed away from. Reuse is now
keyed to a per-material, per-model job name, so a cutoff change can't
silently reuse a stale reference -- the residual hazard is the
workflow's own elemental-energy resolution, which the results cell's
consistency check catches; a missing cluster now raises and lists the
available ones instead of falling back silently. Also: fix the
inverted "skipped otherwise" for reference jobs, add the third verdict
line form (reference mismatch), add k-point density to the unestimated
differences, and make the atom counts (pristine -> defective) explicit
in the settings table.

Prerequisite page: journal name and a line noting both materials
(h-BN supercell, B-vacancy h-BN) are saved by name, matching its own
notebook's cell 15.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
api-examples 144f2c2f lets CLUSTER_NAME be None to use the first listed
cluster; a name that is set but not found still raises and lists the
available ones. State both in the compute paragraph.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Round-4 blocker: the prerequisite page's generic create_nanoribbon /
create_point_defect route does not save two named materials -- only
the combined notebook embedded in its own section 6 does. Say so on
both pages, so the new page's prerequisite step names the right
notebook.

Should-fix: CLUSTER_NAME's shipped default is "cluster-001", not
unset; match cell 44's verdict suffix byte for byte (ASCII "--", not
an em dash); expand QPOD, GPAW, PBE, PAW at first use; state once that
the elemental references are the platform's own seeded materials
(why mu_B is alpha-boron specifically) and that an unseeded account
stops the notebook at that step.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
… ref

QPOD expands to "Quantum Point Defect database" (singular, lowercase
"database") per the manuscript itself, not "Quantum Point Defects
Database". Reflow that paragraph to the surrounding line width. The
prerequisite notebook lives in its section 6, not "its last section"
(References). Expand GBRV once (Garrity-Bennett-Rabe-Vanderbilt).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@netlify

netlify Bot commented Sep 13, 2026

Copy link
Copy Markdown

Deploy Preview for mat3ra-documentation ready!

Name Link
🔨 Latest commit 7c2c28e
🔍 Latest deploy log https://app.netlify.com/projects/mat3ra-documentation/deploys/6aa9da12e623d80008396359
😎 Deploy Preview https://deploy-preview-404--mat3ra-documentation.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

VsevolodX and others added 2 commits September 15, 2026 16:13
Physics decision (VB, 2026-09-15): the notebook now fixes the defect
cell's total magnetization to 1 uB, the doublet QPOD reports, instead
of a starting-magnetization guess. An unconstrained SCF on this cell
finds a quartet (3 uB) 0.22 eV lower -- state both, and that the
doublet is what is compared with QPOD.

Add the measured production result (10.46 eV vs QPOD's 10.18 eV,
+0.28 eV, inside tolerance, verdict yes; four jobs at 2-6 min each on
40 cores), and note in the offsets paragraph that the MACE estimates
were spin-blind and that the 0.28 eV gap is dominated by the doublet's
relaxation energy, which QPOD's cell includes and this SCF-only
workflow does not.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…n timing

Round-6 review: the offsets paragraph said skipping relaxation costs
0.04 eV and, two sentences later, that relaxation dominates the
measured 0.28 eV gap -- both cannot hold. Retire the 0.04 eV figure
for the doublet (it was a spin-blind MACE estimate) and back the
"largest single contributor" claim with the actual forces (2.0 eV/A
on the vacancy's N neighbours vs 0.01 eV/A pristine and QPOD's own
threshold) rather than stating an unmeasured relaxation energy as fact.

Also: the timing sentence now describes the doublet run that actually
produced 10.46 eV (one ~8 min defect job, three references reused from
an earlier run at 2-4 min each), not the earlier quartet run's range;
one sentence on why the doublet -- not the lower-energy quartet -- is
the state compared with QPOD (QPOD's entry is the relaxed doublet, and
relaxation's effect on the ordering is undetermined here); and Bohr
magneton written out at first use so muB (magnetization) and mu_B
(boron's chemical potential) are no longer one underscore apart.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant