Skip to content

Commit 46afbd6

Browse files
Merge branch 'main' into split_vacancies_benchmark
2 parents eaad363 + fc715e6 commit 46afbd6

22 files changed

Lines changed: 6044 additions & 4758 deletions

File tree

.jules/bolt.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
## 2024-05-19 - Caching YAML Load for Model Parsing
2+
**Learning:** `yaml.safe_load` on large configuration files like `models.yml` is significantly slower than parsing JSON or doing other basic IO. It can become a bottleneck when called repeatedly throughout an application's lifecycle (e.g., getting subsets of models, instantiating apps).
3+
**Action:** Always memoize or `@lru_cache` functions that load static, read-only configuration files (like `models.yml`) to prevent repeated disk I/O and parsing overhead.

docs/source/developer_guide/add_benchmarks.rst

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -501,3 +501,44 @@ Building those components and their interactivity should become increasingly aut
501501
but less standard plots/interactions will need setting up.
502502

503503
For now, please contact us to help with this process.
504+
505+
Framework credit tags
506+
+++++++++++++++++++++
507+
508+
If a benchmark comes from an external benchmarking framework (for example,
509+
MLIP Arena), add a framework credit tag as follows:
510+
511+
1. Add/update the framework entry in ``ml_peg/app/utils/frameworks.yml``.
512+
513+
.. code-block:: yaml
514+
515+
mlip_arena:
516+
label: MLIP Arena
517+
color: "#0f766e"
518+
text_color: "#ecfeff"
519+
url: "https://huggingface.co/spaces/atomind/mlip-arena"
520+
logo: "https://huggingface.co/front/assets/huggingface_logo-noborder.svg"
521+
522+
2. Set ``framework_id`` in the benchmark app constructor.
523+
524+
.. code-block:: python3
525+
526+
return SomeBenchmarkApp(
527+
name="SomeBenchmark",
528+
...,
529+
framework_id="mlip_arena",
530+
)
531+
532+
That is all that is required. The benchmark header badge and the additional
533+
framework pages for non-default frameworks are populated automatically from
534+
this metadata.
535+
536+
Framework sections group matching benchmarks by category, omit the category
537+
summary table, and reuse the same benchmark tables and controls. Updating
538+
weights or thresholds there therefore updates the same benchmark views shown in
539+
the category pages.
540+
541+
The ``logo`` field is optional. It can point to a remote image URL or a local
542+
Dash asset path such as ``/assets/frameworks/my_framework_logo.png``. Use a
543+
browser-supported image format such as ``.svg``, ``.png``, or ``.jpg``/``.jpeg``;
544+
``.pdf`` is not supported. For best results, use a square logo image.

docs/source/user_guide/benchmarks/surfaces.rst

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ Reference data:
102102
* Same as input data
103103
* PBE-D3(BJ), MPRelaxSet settings
104104

105+
105106
Elemental Slab Oxygen Adsorption
106107
================================
107108

@@ -184,3 +185,49 @@ Reference data:
184185
* Taken from the SI of the publication above (as the main text of the publication discusses mixed levels of theory). Values from the "Medium algorithm" are used in order to be consistent with the structures.
185186

186187
* PBE without dispersion
188+
189+
190+
Graphene Wetting Under Strain
191+
=============================
192+
193+
Summary
194+
-------
195+
196+
Performance in predicting adsorption energies for a water molecule on graphene under varying strain conditions.
197+
198+
Metrics
199+
-------
200+
201+
MAE of adsorption energies
202+
203+
For each combination of water molecule orientation, water-graphene distance, and strain
204+
condition, the adsorption energy is calculated by taking the difference between the
205+
energy of the combined water + graphene system and the sum of individual water and
206+
graphene energies. This is compared to the reference adsorption energy, calculated in the
207+
same way.
208+
209+
MAE of binding energies & lengths
210+
211+
The adsorption energies calculated above are fitted to Morse potentials, to obtain an
212+
effective binding energy and binding length (i.e. minimum of adsorption energy curve) for
213+
each strain condition. This is compared to the reference binding energy & length,
214+
calculated in the same way.
215+
216+
Computational cost
217+
------------------
218+
219+
Very low: tests are likely to take less than a minute to run on CPU.
220+
221+
Data availability
222+
-----------------
223+
224+
Input data:
225+
226+
* Structures were taken from:
227+
228+
* D. W. Lim, X. R. Advincula, W. C. Witt, F. L. Thiemann, C. Schran, “Revealing Strain Effects on the Graphene-Water Contact Angle Using a Machine Learning Potential,” *awaiting publication* (arXiv:2601.20134)
229+
230+
Reference data:
231+
232+
* Same as input data
233+
* PBE (with D3 dispersion correction), FHI-aims "intermediate" settings

0 commit comments

Comments
 (0)