{
"cells": [
{
"cell_type": "markdown",
"id": "8aa651ab",
"metadata": {},
"source": [
"# A Complete Workflow for a Single Element\n",
"\n",
"This notebook runs the full ASSYST pipeline end-to-end on a unary system\n",
"(copper). The four canonical steps are:\n",
"\n",
"1. **Sampling** — generate symmetric random structures for every space group.\n",
"2. **Relaxing** — minimise volume first, then full cell + positions, to find\n",
" the relevant pockets of the potential energy surface.\n",
"3. **Perturbing** — apply random rattles and stretches around those minima\n",
" to populate the surrounding PES.\n",
"4. **Combining** — collect everything, filter unphysical configurations,\n",
" evaluate the reference and store the resulting training data.\n",
"\n",
"In a real workflow the relaxations and final evaluations are carried out\n",
"with DFT (or any other reference); here we use a Morse potential so the\n",
"notebook runs quickly."
]
},
{
"cell_type": "markdown",
"id": "28e70bb9",
"metadata": {},
"source": [
"## Imports"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "223212d4",
"metadata": {},
"outputs": [],
"source": [
"import pickle\n",
"from pathlib import Path\n",
"\n",
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"from tqdm.auto import tqdm\n",
"\n",
"from assyst.crystals import Formulas, sample\n",
"from assyst.filters import DistanceFilter, AspectFilter, VolumeFilter\n",
"from assyst.relaxations import VolumeRelax, FullRelax, relax\n",
"from assyst.perturbations import RandomChoice, Rattle, Stretch, perturb"
]
},
{
"cell_type": "markdown",
"id": "17e36b8e",
"metadata": {},
"source": [
"## Configuration\n",
"\n",
"`max_num` is the largest number of atoms per generated structure. `2` keeps\n",
"the example fast; `10` is the typical production value and yields ~10k\n",
"training structures."
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "55aa5375",
"metadata": {},
"outputs": [],
"source": [
"max_num = 2\n",
"out_dir = Path(f\"Unary/{max_num}\")\n",
"out_dir.mkdir(parents=True, exist_ok=True)"
]
},
{
"cell_type": "markdown",
"id": "91de86fe",
"metadata": {},
"source": [
"### Reference potential\n",
"\n",
"Any ASE calculator works. We pick a Morse potential whose parameters were\n",
"chosen so that its minimum sits near the experimental Cu-Cu bond length.\n",
"\n",
"For more interesting reference data the universal `Grace` graph-ACE models\n",
"in `assyst.calculators` are a good drop-in replacement (they require the\n",
"optional `tensorpotential` dependency)."
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "8c01df7c",
"metadata": {},
"outputs": [],
"source": [
"from ase.calculators.morse import MorsePotential\n",
"\n",
"reference = MorsePotential(epsilon=0.3, r0=2.55265548 * 1.10619396, rho0=4)"
]
},
{
"cell_type": "markdown",
"id": "721dfa7c",
"metadata": {},
"source": [
"## 1. Sampling random structures\n",
"\n",
"Build the formulas to sample (`Cu`, `Cu_2`, ..., up to `max_num`) and let\n",
"`sample` generate one structure for every compatible space group.\n",
"\n",
"`AspectFilter(6)` filters out very elongated unit cells that pyxtal\n",
"occasionally produces."
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "f80eb4c4",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Formulas(atoms=({'Cu': 0}, {'Cu': 1}, {'Cu': 2}))"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"formulas = Formulas.range('Cu', max_num + 1)\n",
"formulas"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "432d03ba",
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "3e50aa1989264d72be146c2d3650a98f",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
" 0%| | 0/3 [00:00, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "d526986b56a546dc85dcf9738066118b",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Spacegroups: 0%| | 0/230 [00:00, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "5cc6fdd0f5f0439492f34df8c9206461",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Spacegroups: 0%| | 0/230 [00:00, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Generated 167 symmetric seeds\n"
]
}
],
"source": [
"spg = list(filter(\n",
" AspectFilter(6),\n",
" sample(\n",
" formulas,\n",
" spacegroups=range(1, 230 + 1),\n",
" max_atoms=max_num,\n",
" )\n",
"))\n",
"print(f\"Generated {len(spg)} symmetric seeds\")"
]
},
{
"cell_type": "markdown",
"id": "01d20ccd2ab8",
"metadata": {},
"source": [
"Each entry is an :class:`ase.Atoms` carrying the sampled cell and positions. A small summary of the first few sampled structures:"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "55824c6b0f79",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" formula | \n",
" natoms | \n",
" volume_per_atom | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" Cu | \n",
" 1 | \n",
" 10.911529 | \n",
"
\n",
" \n",
" | 1 | \n",
" Cu | \n",
" 1 | \n",
" 11.704551 | \n",
"
\n",
" \n",
" | 2 | \n",
" Cu | \n",
" 1 | \n",
" 11.899922 | \n",
"
\n",
" \n",
" | 3 | \n",
" Cu | \n",
" 1 | \n",
" 12.247109 | \n",
"
\n",
" \n",
" | 4 | \n",
" Cu | \n",
" 1 | \n",
" 11.184826 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" formula natoms volume_per_atom\n",
"0 Cu 1 10.911529\n",
"1 Cu 1 11.704551\n",
"2 Cu 1 11.899922\n",
"3 Cu 1 12.247109\n",
"4 Cu 1 11.184826"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.DataFrame([\n",
" {\n",
" 'formula': s.get_chemical_formula(),\n",
" 'natoms': len(s),\n",
" 'volume_per_atom': s.cell.volume / len(s),\n",
" }\n",
" for s in spg[:5]\n",
"])"
]
},
{
"cell_type": "markdown",
"id": "2411351a-76bf-4f93-aaa3-0689e56d07d6",
"metadata": {},
"source": [
"Just to create a small check point, dump generated structures into a pickle file.\n",
"This is _not_ required for assyst."
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "c5322b41",
"metadata": {},
"outputs": [],
"source": [
"with open(out_dir / 'spg.pckl', 'wb') as f:\n",
" pickle.dump(spg, f)"
]
},
{
"cell_type": "markdown",
"id": "5cad474f",
"metadata": {},
"source": [
"## 2. Relaxation\n",
"\n",
"ASSYST applies a *two-step* relaxation:\n",
"\n",
"1. `VolumeRelax` — relax the volume only, keeping shape and internal positions\n",
" frozen. Quickly puts each seed near a sensible energy scale.\n",
"2. `FullRelax` — relax cell shape, volume and atomic positions together,\n",
" landing in a (local) minimum of the PES.\n",
"\n",
"In production both would be carried out with DFT; here the Morse potential\n",
"makes the cost negligible. For experimentation, `assyst.relaxations` also\n",
"provides `CellRelax` and `SymmetryRelax`."
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "b77f2cff",
"metadata": {},
"outputs": [],
"source": [
"volset = VolumeRelax(max_steps=100, force_tolerance=1e-3)\n",
"allset = FullRelax(max_steps=100, force_tolerance=1e-3)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "6fb32976",
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "e074e43c81a04a148bb7217289cbba27",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"volume: 0%| | 0/167 [00:00, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 1min 2s, sys: 55.4 ms, total: 1min 2s\n",
"Wall time: 21 s\n"
]
}
],
"source": [
"%%time\n",
"volmin = list(relax(tqdm(spg, desc='volume'), volset, reference))"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "d0114ccb",
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "ecaf0351454d4097848d9c6c3cd73577",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"full: 0%| | 0/167 [00:00, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 4min, sys: 414 ms, total: 4min\n",
"Wall time: 1min 25s\n"
]
}
],
"source": [
"%%time\n",
"allmin = list(relax(tqdm(volmin, desc='full'), allset, reference))"
]
},
{
"cell_type": "markdown",
"id": "423303f85c73",
"metadata": {},
"source": [
"`relax` returns a new list of :class:`ase.Atoms`. Comparing the volume per atom before and after each relaxation step shows how the cells shrink towards their minima:"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "e943ea99961a",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" sampled | \n",
" volmin | \n",
" allmin | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 10.911529 | \n",
" 15.667167 | \n",
" 11.761170 | \n",
"
\n",
" \n",
" | 1 | \n",
" 11.704551 | \n",
" 13.639392 | \n",
" 11.761452 | \n",
"
\n",
" \n",
" | 2 | \n",
" 11.899922 | \n",
" 44.776388 | \n",
" 12.829227 | \n",
"
\n",
" \n",
" | 3 | \n",
" 12.247109 | \n",
" 13.261506 | \n",
" 12.829213 | \n",
"
\n",
" \n",
" | 4 | \n",
" 11.184826 | \n",
" 54.634555 | \n",
" 298.602200 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" sampled volmin allmin\n",
"0 10.911529 15.667167 11.761170\n",
"1 11.704551 13.639392 11.761452\n",
"2 11.899922 44.776388 12.829227\n",
"3 12.247109 13.261506 12.829213\n",
"4 11.184826 54.634555 298.602200"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pd.DataFrame({\n",
" 'sampled': [s.cell.volume / len(s) for s in spg[:5]],\n",
" 'volmin': [s.cell.volume / len(s) for s in volmin[:5]],\n",
" 'allmin': [s.cell.volume / len(s) for s in allmin[:5]],\n",
"})"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "154db5e7",
"metadata": {},
"outputs": [],
"source": [
"with open(out_dir / 'volmin.pckl', 'wb') as f:\n",
" pickle.dump(volmin, f)\n",
"with open(out_dir / 'allmin.pckl', 'wb') as f:\n",
" pickle.dump(allmin, f)"
]
},
{
"cell_type": "markdown",
"id": "a987e6da",
"metadata": {},
"source": [
"## 3. Random perturbations\n",
"\n",
"Around each minimum we sample the surrounding PES with three families of\n",
"random perturbations described in the ASSYST paper:\n",
"\n",
"1. mostly **positional noise** with a small cell change (`rattle`),\n",
"2. mostly **hydrostatic** cell change,\n",
"3. mostly **shear** cell change.\n",
"\n",
"The hydrostatic and shear strains are combined with `RandomChoice` so that\n",
"hydrostatic changes are drawn slightly more often. The final `mods`\n",
"sequence is applied to every fully-minimised structure. `DistanceFilter`\n",
"discards perturbations that placed atoms unphysically close."
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "e460ee18",
"metadata": {},
"outputs": [],
"source": [
"rattle = Rattle(0.25) + Stretch(hydro=0.05, shear=0.005)\n",
"hydro = Stretch(hydro=0.80, shear=0.05)\n",
"shear = Stretch(hydro=0.05, shear=0.20)\n",
"stretch = RandomChoice(hydro, shear, 0.7)\n",
"\n",
"# four rattles + four stretches per minimum reproduces the published settings\n",
"mods = 4 * [rattle] + 4 * [stretch]"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "a88dd83e",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Produced 1188 perturbed structures\n",
"CPU times: user 497 ms, sys: 6.98 ms, total: 504 ms\n",
"Wall time: 429 ms\n"
]
}
],
"source": [
"%%time\n",
"random = list(perturb(allmin, mods, filters=[DistanceFilter({'Cu': 1})]))\n",
"print(f\"Produced {len(random)} perturbed structures\")"
]
},
{
"cell_type": "markdown",
"id": "f3329e88ef5c",
"metadata": {},
"source": [
"Each relaxed minimum is expanded into a cloud of perturbed structures. Looking at the spread of volumes per atom around the first minimum gives a feel for the noise applied:"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "6402092e4dc2",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" natoms | \n",
" volume_per_atom | \n",
" rel_volume_change | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 2 | \n",
" 11.764033 | \n",
" 0.000484 | \n",
"
\n",
" \n",
" | 1 | \n",
" 2 | \n",
" 11.468011 | \n",
" -0.024692 | \n",
"
\n",
" \n",
" | 2 | \n",
" 2 | \n",
" 11.943824 | \n",
" 0.015774 | \n",
"
\n",
" \n",
" | 3 | \n",
" 2 | \n",
" 10.899526 | \n",
" -0.073039 | \n",
"
\n",
" \n",
" | 4 | \n",
" 2 | \n",
" 11.717989 | \n",
" -0.003432 | \n",
"
\n",
" \n",
" | 5 | \n",
" 2 | \n",
" 11.878374 | \n",
" 0.010208 | \n",
"
\n",
" \n",
" | 6 | \n",
" 2 | \n",
" 11.415293 | \n",
" -0.029175 | \n",
"
\n",
" \n",
" | 7 | \n",
" 2 | \n",
" 11.321541 | \n",
" -0.037148 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" natoms volume_per_atom rel_volume_change\n",
"0 2 11.764033 0.000484\n",
"1 2 11.468011 -0.024692\n",
"2 2 11.943824 0.015774\n",
"3 2 10.899526 -0.073039\n",
"4 2 11.717989 -0.003432\n",
"5 2 11.878374 0.010208\n",
"6 2 11.415293 -0.029175\n",
"7 2 11.321541 -0.037148"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ref = allmin[-1]\n",
"v0 = ref.cell.volume / len(ref)\n",
"siblings = [s for s in random if s.info['seed'] == ref.info['seed']]\n",
"pd.DataFrame([\n",
" {\n",
" 'natoms': len(s),\n",
" 'volume_per_atom': s.cell.volume / len(s),\n",
" 'rel_volume_change': s.cell.volume / len(s) / v0 - 1,\n",
" }\n",
" for s in siblings\n",
"])"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "23b2345f",
"metadata": {},
"outputs": [],
"source": [
"with open(out_dir / 'random.pckl', 'wb') as f:\n",
" pickle.dump(random, f)"
]
},
{
"cell_type": "markdown",
"id": "496553ff",
"metadata": {},
"source": [
"## 4. Combine and evaluate\n",
"\n",
"Concatenate the sampled, relaxed and perturbed structures, run the\n",
"distance and volume filters once more to reject any leftover pathological\n",
"configurations, and finally evaluate the reference to obtain a training\n",
"dataset of energies and forces."
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "d2cc39ef",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Final training set: 1565 structures\n"
]
}
],
"source": [
"everything = list(filter(\n",
" VolumeFilter(300),\n",
" filter(DistanceFilter({'Cu': 1}), spg + volmin + allmin + random),\n",
"))\n",
"print(f\"Final training set: {len(everything)} structures\")"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "e8eb50bb",
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "d6aae6d0fe4943b09b654c405c1d8f0e",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"evaluating: 0%| | 0/1565 [00:00, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" ase_atoms | \n",
" energy | \n",
" forces | \n",
" number_of_atoms | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" (Atom('Cu', [-1.0386276484191481, -0.194573218... | \n",
" -2.168733 | \n",
" [[3.191891195797325e-16, -2.8622937353617317e-... | \n",
" 1 | \n",
"
\n",
" \n",
" | 1 | \n",
" (Atom('Cu', [0.6736784829368637, -1.1197747671... | \n",
" -2.354713 | \n",
" [[-7.592633932598097e-17, 6.227072826023132e-1... | \n",
" 1 | \n",
"
\n",
" \n",
" | 2 | \n",
" (Atom('Cu', [0.0, -1.1901120180848723, -7.2873... | \n",
" -1.787319 | \n",
" [[4.0722633598555547e-16, -8.066464163292153e-... | \n",
" 1 | \n",
"
\n",
" \n",
" | 3 | \n",
" (Atom('Cu', [0.0, 0.0, -1.3521411060002535], i... | \n",
" -1.345679 | \n",
" [[-2.0643209364124004e-16, -5.204170427930421e... | \n",
" 1 | \n",
"
\n",
" \n",
" | 4 | \n",
" (Atom('Cu', [-1.0311953554480588, -1.031195355... | \n",
" -1.358783 | \n",
" [[-3.226585665316861e-16, -2.42861286636753e-1... | \n",
" 1 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" ase_atoms energy \\\n",
"0 (Atom('Cu', [-1.0386276484191481, -0.194573218... -2.168733 \n",
"1 (Atom('Cu', [0.6736784829368637, -1.1197747671... -2.354713 \n",
"2 (Atom('Cu', [0.0, -1.1901120180848723, -7.2873... -1.787319 \n",
"3 (Atom('Cu', [0.0, 0.0, -1.3521411060002535], i... -1.345679 \n",
"4 (Atom('Cu', [-1.0311953554480588, -1.031195355... -1.358783 \n",
"\n",
" forces number_of_atoms \n",
"0 [[3.191891195797325e-16, -2.8622937353617317e-... 1 \n",
"1 [[-7.592633932598097e-17, 6.227072826023132e-1... 1 \n",
"2 [[4.0722633598555547e-16, -8.066464163292153e-... 1 \n",
"3 [[-2.0643209364124004e-16, -5.204170427930421e... 1 \n",
"4 [[-3.226585665316861e-16, -2.42861286636753e-1... 1 "
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rows = []\n",
"for s in tqdm(everything, desc='evaluating'):\n",
" s.calc = reference\n",
" rows.append({\n",
" 'ase_atoms': s,\n",
" 'energy': s.get_potential_energy(),\n",
" 'forces': s.get_forces(),\n",
" 'number_of_atoms': len(s),\n",
" })\n",
"df = pd.DataFrame(rows)\n",
"df.to_pickle(out_dir / 'everything_training_data.pckl.gz')\n",
"df.head()"
]
},
{
"cell_type": "markdown",
"id": "ab14cb93",
"metadata": {},
"source": [
"### Inspect the training data\n",
"\n",
"Energy per atom, energy vs volume and force component distributions are a\n",
"quick sanity check that the dataset spans the expected ranges."
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "e0c24cf0",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABdIAAAGGCAYAAAB/pnNVAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjYsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvq6yFwwAAAAlwSFlzAAAPYQAAD2EBqD+naQAA1Z9JREFUeJzs3Xl8VPW9//HXmX0my2QjIUAIqyyCioAI1gWtVLDaaovaVsWtvVQUl1qrtXVrFX9tVWqN220Vl7bXorWtlVvrbRWtqAWEKoIoa0IIhGwzk8w+c35/xESyQQJJJgnvZx951Dlz5pzPzEQH3uczn69hmqaJiIiIiIiIiIiIiIi0y5LqAkRERERERERERERE+jIF6SIiIiIiIiIiIiIiB6AgXURERERERERERETkABSki4iIiIiIiIiIiIgcgIJ0EREREREREREREZEDUJAuIiIiIiIiIiIiInIACtJFRERERERERERERA5AQbqIiIiIiIiIiIiIyAHYUl1AqiWTSXbv3k1GRgaGYaS6HBEROUKYpkkgEGDIkCFYLLqufTj0WS4iIqmiz/Puoc9yERFJla58lh/xQfru3bspKipKdRkiInKEKisrY9iwYakuo1/TZ7mIiKSaPs8Pjz7LRUQk1TrzWX7EB+kZGRlA44uVmZmZ4mpERORI4ff7KSoqav4ckkOnz3IREUkVfZ53D32Wi4hIqnTls/yID9KbvjaWmZmpD2wREel1+vry4dNnuYiIpJo+zw+PPstFRCTVOvNZriFuIiIiIiIiIiIiIiIHoCBdRERERERERHpdSUkJEydOZPr06akuRURE5KAUpIuIiIiIiIhIr1u0aBEbN25k9erVqS5FRETkoPp9kF5WVsZpp53GxIkTOeaYY1i+fHmqSxIRERERERERERGRAaTfLzZqs9lYunQpxx13HJWVlRx//PHMmzePtLS0VJcmIiIiIiIiIiIiIgNAvw/SCwsLKSwsBCA/P5+cnBxqamoUpIuIiIiIiIiIiIhIt0j5aJc333yTc845hyFDhmAYBn/605/a7PPII48wcuRIXC4XU6dO5a233mr3WGvWrCGZTFJUVNTDVYuIiIiIiIiIiIjIkSLlQXpDQwPHHnssDz/8cLv3P//881x//fXcdtttrFu3jpNPPpm5c+dSWlraYr/q6mouvfRSnnjiid4oW0REREREREQOQ0lJCRMnTmT69OmpLkVEROSgDNM0zVQX0cQwDF566SW++tWvNm+bMWMGxx9/PI8++mjztgkTJvDVr36VJUuWABCJRDjzzDP59re/zSWXXNKlc/r9frxeLz6fj8zMzG55HiIiIgejz5/uo9dSRERSRZ9B3UOvo4iIpEpXPoNS3pF+INFolLVr1zJnzpwW2+fMmcOqVasAME2Tyy67jNNPP71TIXokEsHv97f4ERERERGRRoFwjLKaIIFwLNWliIiIiIj0GX06SK+qqiKRSFBQUNBie0FBAXv27AHg7bff5vnnn+dPf/oTxx13HMcddxwffvhhh8dcsmQJXq+3+Ufz1EVEREREGm0o9/GLv2/m/r9v5hd/38yGcl+qSxIRERER6RNsqS6gMwzDaHHbNM3mbV/4whdIJpOdPtatt97KjTfe2Hzb7/crTBcRERGRI14gHGP52jJq6qMUet1U+EIsX1tGca6HDJc91eWJiIiIiKRUnw7S8/LysFqtzd3nTSorK9t0qXeW0+nE6XR2R3ntGnHLK83/vOO+s3vsPCIiIiIi3akuGMMXjFHodeN2WCn0uqkMhKkLxhSki4iI9DH750+gDEqkN/Tp0S4Oh4OpU6fy2muvtdj+2muvMWvWrBRVJSIiIiIy8GR57Hg9dip8IULRBBW+EF6PnSyPQnQRERERkZR3pNfX17Nly5bm29u3b2f9+vXk5OQwfPhwbrzxRi655BKmTZvGzJkzeeKJJygtLWXhwoUprFpEREREZGDJcNmZP7WI5WvLqAyEyUl3MH9qkbrRRUREREToA0H6mjVrmD17dvPtpvnlCxYsYNmyZVx44YVUV1dz9913U1FRwaRJk1ixYgXFxcWpKllEREREZECaNNRLca6HumCMLI9dIbqI9KiSkhJKSkpIJBKpLkVEROSgUh6kn3baaZimecB9rr76aq6++upuPa8+sEVERERE2spwKUAXkd6xaNEiFi1ahN/vx+v1procERGRA+rTM9J70qJFi9i4cSOrV69OdSkiIiIiIiIiIiIi0ocdsUG6iIiIiIiIiIiIiEhnKEgXERERERERERERETkABekiIiIiIiIiIiIiIgeQ8sVGpWeMuOWV5n/ecd/ZKaxEREREREREREREpH9TR7qIiIiIiIiIiIiIyAEoSBcREREREREREREROYAjNkgvKSlh4sSJTJ8+PdWliIiIiIiIiIiIiEgfdsQG6YsWLWLjxo2sXr061aWIiIiIiIiIHHHU4CYiIv3JERuki4iIiIiIiEjqqMFNRET6EwXpIiIiIiIiIiIiIiIHoCBdREREREREREREROQAFKSLiIiIiIiIiIiIiByAgnQRERERERERERERkQNQkC4iIiIiIiIiIiIicgBHbJBeUlLCxIkTmT59eqpLERERGVAeeeQRRo4cicvlYurUqbz11lsd7vvGG29gGEabn48//rgXKxYRERERERE5sCM2SF+0aBEbN25k9erVqS5FRERkwHj++ee5/vrrue2221i3bh0nn3wyc+fOpbS09ICP27x5MxUVFc0/Y8eO7aWKRURERERERA7uiA3SRUREpPs98MADXHnllVx11VVMmDCBpUuXUlRUxKOPPnrAx+Xn5zN48ODmH6vV2ksVi4iIiIiIiBycgnQRERHpFtFolLVr1zJnzpwW2+fMmcOqVasO+NgpU6ZQWFjIGWecweuvv37AfSORCH6/v8WPiIiIiIiISE+ypboA6d9G3PJKi9s77js7RZWI9E36d0SOJFVVVSQSCQoKClpsLygoYM+ePe0+prCwkCeeeIKpU6cSiUR49tlnOeOMM3jjjTc45ZRT2n3MkiVLuOuuu7q9fhEREREREZGOKEgXERGRbmUYRovbpmm22dZk3LhxjBs3rvn2zJkzKSsr4xe/+EWHQfqtt97KjTfe2Hzb7/dTVFTUDZWLiIiIiIiItE+jXURERKRb5OXlYbVa23SfV1ZWtulSP5ATTzyRTz/9tMP7nU4nmZmZLX5EREREREREepKCdBEREekWDoeDqVOn8tprr7XY/tprrzFr1qxOH2fdunUUFhZ2d3kiIiLSx5SUlDBx4kSmT5+e6lJEREQOSqNdREREpNvceOONXHLJJUybNo2ZM2fyxBNPUFpaysKFC4HGsSzl5eU888wzACxdupQRI0Zw9NFHE41Gee6553jxxRd58cUXU/k0REREpBcsWrSIRYsW4ff78Xq9qS5HRETkgBSki4iISLe58MILqa6u5u6776aiooJJkyaxYsUKiouLAaioqKC0tLR5/2g0yk033UR5eTlut5ujjz6aV155hXnz5qXqKYiIiIiIiIi0ccQG6SUlJZSUlJBIJFJdioiIyIBy9dVXc/XVV7d737Jly1rcvvnmm7n55pt7oar2BcIx6oIxsjx2Mlz2lNUhIiIiIiIifdsRG6TrK2QiIiJHtg3lPpavLcMXjOH12Jk/tYhJQ/VnAhERERHpf0bc8kqL2zvuOztFlYgMXFpsVERERI44gXCM5WvLqKmPkp/hoqY+yvK1ZQTCsVSXJiIiIiIiIn2QgnQRERE54tQFY/iCMQq9btwOK4VeN75g45gXERERERERkdYUpIuIiMgRJ8tjx+uxU+ELEYomqPCF8HrsZHk0J11ERERERETaUpAuIiIiR5wMV+NM9Jx0B5WBMDnpDuZPLdKCoyIiIiIiItKuI3axURERETmyTRrqpTjXQ10wRpbHrhBdREREREREOqQgfYBovTqziIiIHFyGSwG6iIiIiIiIHJxGu4iIiIhIuwLhGGU1QQJhLcIqIiIiIiJHNnWki4iIiEgbG8p9LF9bhi8Yw+tpnCk/aag31WWJiIiIiIikhDrSRURERKSFQDjG8rVl1NRHyc9wUVMfZfnaMnWmi4iIiIjIEUsd6Uegg81T33Hf2b1UiYiIiPRFdcEYvmCMQq8bt8NKoddNZSBMXTCmmfIiIiIiInJEOmKD9JKSEkpKSkgkEqkupcdpIVIRERHpiiyPHa/HToUvRKHXTYUvRE66gyyPQnQRERERETkyHbGjXRYtWsTGjRtZvXp1qksRERER6VMyXI0z0XPSHVQGwuSkO5g/tUjd6CIiIiIicsQ6YjvSRURERKRjk4Z6Kc71UBeMkeWxK0QXEREREZEj2hHbkS4iIiIiB5bhslOU41GILiIiBxUIBJg+fTrHHXcckydP5r//+79TXZKIiEi3Uke6iPSa1vP6tbCtiIiIiMjA4PF4WLlyJR6Ph2AwyKRJkzj//PPJzc1NdWkiIiLdQh3pIiIiIiIiInJYrFYrHo8HgHA4TCKRwDTNFFclIiLSfRSki4iIiIiIiBzh3nzzTc455xyGDBmCYRj86U9/arPPI488wsiRI3G5XEydOpW33nqrxf11dXUce+yxDBs2jJtvvpm8vLxeql5ERKTnKUgXEREREREROcI1NDRw7LHH8vDDD7d7//PPP8/111/Pbbfdxrp16zj55JOZO3cupaWlzftkZWXxn//8h+3bt/O73/2OvXv39lb5IiIiPU4z0vup1rOmRURERERERA7V3LlzmTt3bof3P/DAA1x55ZVcddVVACxdupRXX32VRx99lCVLlrTYt6CggGOOOYY333yT+fPntzlWJBIhEok03/b7/d30LERERHqOgnTpEgX4IiIiIiIiR5ZoNMratWu55ZZbWmyfM2cOq1atAmDv3r243W4yMzPx+/28+eabfPe73233eEuWLOGuu+7q8bpFRES6k4J0ERGRAeDGG2/s8mN+9KMfkZOT0wPViIiIyEBSVVVFIpGgoKCgxfaCggL27NkDwK5du7jyyisxTRPTNLnmmms45phj2j3erbfe2uLPLn6/n6Kiop57AiIiIt1AQbqIiMgAsHTpUmbOnInD4ejU/v/617+45pprFKSLiIhIpxmG0eK2aZrN26ZOncr69es7dRyn04nT6ezu8kRERHqUgnQREZEB4qWXXiI/P79T+2ZkZPRwNSIiIjJQ5OXlYbVam7vPm1RWVrbpUhcRERmoLKkuQERERA7fU089hdfr7fT+jz/+uP7iKyIiIp3icDiYOnUqr732Wovtr732GrNmzTrk45aUlDBx4kSmT59+uCWKiIj0uCO2I72kpISSkhISiUSqSxERETlsCxYs6NL+3/zmN3uokv4pEI5RF4yR5bGT4bKnuhwREZFeV19fz5YtW5pvb9++nfXr15OTk8Pw4cO58cYbueSSS5g2bRozZ87kiSeeoLS0lIULFx7yORctWsSiRYvw+/1daggQERFJhSM2SNcHtoiIHAnq6+tJJpMttmVmZqaomr5pQ7mP5WvL8AVjeD125k8tYtJQ/dlARESOLGvWrGH27NnNt5sWA12wYAHLli3jwgsvpLq6mrvvvpuKigomTZrEihUrKC4uTlXJIiIiveqIDdJFREQGqu3bt3PNNdfwxhtvEA6Hm7c3LQimb2N9LhCOsXxtGTX1UQq9bip8IZavLaM416POdBEROaKcdtppmKZ5wH2uvvpqrr766l6qSEREpG9RkC4HNeKWV7rlsTvuO7s7yhERkYP41re+BcCTTz5JQUEBhmH06vkfeeQRfv7zn1NRUcHRRx/N0qVLOfnkkzvcf+XKldx444189NFHDBkyhJtvvvmwvibeFXXBGL5gjEKvG7fDSqHXTWUgTF0wpiBdRESkh2nkqoiI9CcK0kVERAaYDz74gLVr1zJu3LheP/fzzz/P9ddfzyOPPMJJJ53E448/zty5c9m4cSPDhw9vs//27duZN28e3/72t3nuued4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EGFQhott+xoIxxLEkiZnHzOEU48aRDxpYrMYPPTPT3HYDAoyXXy028+2fQ14nBay3Q4y3Y3B+v7BdJanMah22yxkeRzUBaPke11keRpnqP9w3oSDXmTIcNkZmg2njy/gHx/vPeTu/tZz5B2DrFQGwtQFY+oSFxHpwMMPP8xXvvIVRowYQVFREYZhUFpayuTJk3nuuedSXV6nlJSUUFJSQiLRzteyRAag/tJ41VPNdiL9XZeD9J07dzJy5Mg224uLiyktLe2Worpq9uzZvPHGGyk5t4iISF/T0NDAtddeyzPPPNP81W6r1cqll17Kr371KzyejhdePBx33XUXAMuWLevU/qZpsnTpUm677bbmUTRPP/00BQUF/O53v+O//uu/eqTO7hYIxzrd1R4Ix1i+toya+ijDc9JYv6uO8rpIu/u6bBbSHXbipolhGASjCSxG44KjBvDutmoKMp2MH5xJPGkSiibwuu18sMvHjqoGQrEEuWlukiY0ROIEQrEWwfT+41l8wRj5XleLALwzFxmaLgr4gjE8DitfPmYIM0bldDn87u6Z9SIiR4KioiLef/99XnvtNT7++GNM02TixIl88YtfTHVpnaYZ6SIi0p9YuvqA/Px8Pvjggzbb//Of/5Cbm9vOIw7szTff5JxzzmHIkCEYhsGf/vSnNvs88sgjjBw5EpfLxdSpU3nrrbe6fB4REZEjxY033sjKlSt5+eWXqauro66ujj//+c+sXLmS733ve6kur9n27dvZs2dPiwXRnE4np556KqtWrerwcZFIBL/f3+KntwTCMcpqggTCMaAxSF6yYhM/+etGlqzYxIZy3wEfv3/n9aBMJ0O9rg73ddotJEyTWCLJ2Px0PA4rhgHpLht56Q7++XElt774AZcvW82/tlThcVh5v7SOumCUeDKJxTCoCcawWw3qQjEsFoP6SKy5dmgcz3LTnHF8b844bpozjklDOx9i7H9RID/DRSAc560t+6gPx1u8Rp3RFOrnpDu6bWa9iMiR4swzz+Taa69l8eLF/SpEFxER6W+63JF+0UUXsXjxYjIyMjjllFMAWLlyJddddx0XXXRRlwtoaGjg2GOP5fLLL+drX/tam/uff/55rr/+eh555BFOOukkHn/8cebOncvGjRsZPnx4l88nIiIy0L344ou88MILnHbaac3b5s2bh9vt5oILLuDRRx9N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IDc3t/n2v/71L04//fTm20cffTS7d+/u3upERESkyy6++GL+/e9/c+yxx+J2u8nJyWnxI1BRF+LXb20jHE1gtVpImhCMJnFYwOu2t9jv+TWl5HjsZLnt1DREicRNBmU4sFosOGwWwMBttzI0291iZEssYRKPxwETzCRuuxVf6POOdRERkcPx5S9/me985zu89957mKaJaZq8++67LFy4kHPPPTfV5YmIiAw4nR7tMmTIEDZt2sTw4cOpr6/nP//5Dw8++GDz/dXV1Xg8nh4pUkRERDpv6dKlqS6hzyutCRKMxDEMg0TSxGqBaMJkS1UDv/nXNhbMGgnAU29v59/bavC6HUwozMQE1uysJcdjxxeKEwhHyc9wccOZYzltXH5ziF4XjFFbHyFhWojGktisFmoaIrjsWVpkVEREusVDDz3EggULmDlzJnZ742dLPB7n3HPP5Ze//GWKqxMRERl4Oh2kf/3rX+f666/nhz/8IStWrGDw4MGceOKJzfevWbOGcePG9UiRIiIi0nkLFixIdQl93vAcD26HjeqGKBbDJJoAA/C67NQ0xPjtezsxgGAkjtdtpzYYZVNFgKIcN8OzPezxhwnHEmS6HXz75FGcc+xQAuEYZTVBsjx2IrEE22uCgIndahCNJzGBL07I13x0ERHpFllZWfz5z39my5YtbNq0CdM0mThxImPGjEl1aSJ9jtbB6p+0dpz0NZ0O0u+44w52797N4sWLGTx4MM899xxWq7X5/t///vecc845PVKkiIiIdM3WrVt56qmn2Lp1K7/85S/Jz8/nb3/7G0VFRRx99NGpLi/lCrPcfOeUUdz3t48JReJYLSZZbgf5mS6KctyU14YwDIMRuWmkuWysL6ujNhhldH4aNqtBujONLI+DumCUTXv8vLetmhUbKvAFY3g9dsYXZOKwWrC6bJgmuOwmdquF3HRnizoC4cZRL1keuwJ2ERHpNL/fT3p6OhaLhTFjxjSH58lkEr/fT2ZmZoorFOlfFLSnhl536W86PSPd4/Hw7LPPUltby6ZNmzj55JNb3P/666/zgx/8oNsLFBERka5ZuXIlkydP5r333uOPf/wj9fX1AHzwwQfccccdKa6u77johOEsveA4Tj4qjyFZbtJdNkYPSqO6PkpehpO8dAcf7/Gzabefhkgct8PKtOJsonGTAq/rs9A9japAhD+sKaOm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madnZmZWa6VemUqlgkqlqueeEBERERERETUcE+lERERUq4rEeENUtESv3J95ZREREQgMDMS2bdvQu3dvAIBer8euXbvwxhtvNCxgIiIiIiIioibArl2IiIjohh08eBDvv/8+EhMTcenSJezYsQOPPPII2rdvb9EavUuXLti0aROA6126zJkzB6+99ho2bdqEEydOYMqUKdBoNHjkkUfstStERERERERE1bBFOhEREd0wtVqNb7/9FosXL0ZRURGCgoIwcuRIbNiwwaIbluTkZOTl5Znfz58/HyUlJZg5cyZycnIwYMAAbN26FVqt1h67QURERM0oLi4OcXFxMBqN9g6FiIioTi6bSK/4wi4vLwcA5OfnN8p6TWXFjbIeIqK6VP7cquuzp+pnXOXyjfX5V1Mcda27vuXtoalirFhPXQNxthQ9evTA9u3b6yxXdX8lScKSJUuwZMmSBm+7Yp2OeP4QEZFzc7bv8+YWGxuL2NhY5OXlwdvbu9nuy29kO8257qa8Tieilsee9+71WVdzrPdG113Temz5LpeEi3/jX758GaGhofYOg4iIXFRqaipCQkLsHUaLdv78ebRv397eYRARkQs7d+4c2rVrZ+8wWizelxMRkb3Zcm/u8ol0k8mEtLQ0aLVaSJJUbX5+fj5CQ0ORmpoKLy8vO0TYeLgvjon74pi4L47JmfZFCIGCggIEBwdDJuOQJTciNzcXPj4+SElJgU6ns3c4DsGZ/lYaE+ulOtZJzVgv1bFOapaXl4e2bdsiJycH3t7e9g6nxarrvryp8Lxueqzj5sF6bnqs46Znrzquz725y3btUkEmk9nUEtDLy8tp/lC4L46J++KYuC+OyVn2hUnfxlFxsaPT6ZzivGhMzvK30thYL9WxTmrGeqmOdVIzPhS/MbbelzcVntdNj3XcPFjPTY913PTsUce23pvz256IiIiIiIiIiIiIyAom0omIiIiIiIiIiIiIrGAivQ4qlQqLFy+GSqWydyg3jPvimLgvjon74picaV+o8fC8qI51UjPWS3Wsk5qxXqpjndSM9dKy8fg1PdZx82A9Nz3WcdNrCXXs8oONEhERERERERERERFZwxbpRERERERERERERERWMJFORERERERERERERGQFE+lERERERERERERERFYwkV7F2LFj0bZtW7i7uyMoKAiTJk1CWlqa1WWEEFiy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wt3dXfj4+IghQ4aIzZs32yFqshdr54srmDhxoggKChIKhUIEBweLBx54QJw8edI831E/bxvTjh07avweio6OFkLYVgclJSVi1qxZwtfXV6jVajFmzBiH+I69EdbqxdbvL2eql9quI+t7feJMdSJE3fXiiufKE088Yf5eadWqlRg+fLg5iS6Ea54nzsqW+5hLly6Je+65R6jVauHr6ytmzZpl0ciO6ufw4cNiwIABQqfTCXd3d9G5c2exePFiUVRUZO/QWjRXvx5uanVdb1P9Ncb1u71IQtQxiiYRERERERERERERkQurf6fZREREREREREREREQuhIl0IiIiIiIiIiIiIiIrmEgnIiIiIiIiIiIiIrKCiXQiIiIiIiIiIiIiIiuYSCciIiIiIiIiIiIisoKJdCIiIiIiIiIiIiIiK5hIJyIiIiIiIiIiIiKygol0IiIiIiIiIiIiIiIrmEgnohYhMjISkiRBkiQkJibaO5xmt3btWvP+z5kzx97hEBERERERERG5FCbSySlMmTLFnGSs/Bo5cqS9Q3MaU6ZMwX333WfXGKZNm4b09HR0797dpvJRUVG48847a5y3b98+SJKEI0eOmKddunQJKpUK+fn5Nq1fkiR89913NpW9URMnTkR6ejoGDRrULNsjIiLXtHr1aoSEhGD48OH466+/LOYVFBSgX79+6NWrF3r06IGPP/7YTlESERERETU/JtLJaYwcORLp6ekWry+//LJJt6nX65t0/Y3NaDTCZDLZO4wG02g0CAwMhJubm03lY2JisH37dly6dKnavE8//RS9evVCnz59zNO+//57REZGwsvLq9FibixqtRqBgYFQKpX2DoWIiJxUQUEBXn75ZXz99de46aabsGLFCov5Go0Gu3btQmJiIg4cOIClS5ciKyvLTtESERER2c5aYwEiWzGRTk5DpVIhMDDQ4uXj42OeL0kSPvnkE9x///3QaDTo2LEjfvjhB4t1JCUlYfTo0fD09ERAQAAmTZqEa9eumedHRkZi1qxZmDdvHvz9/XHXXXcBAH744Qd07NgRarUaw4YNw7p16yBJEnJzc1FUVAQvLy/861//stjWjz/+CA8PDxQUFNS4PxXbmjVrFry9veHn54cXX3wRQghzGb1ej/nz56NNmzbw8PDAgAEDsHPnTvP8tWvXwtvbG//+97/RrVs3qFSqGpPK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dDS6deuGkpISXLhwAeHh4fWuXyIicj6VH6z6+vqibdu2WLZsmU0PVt3d3fH8889j/vz5UCqVuPXWW3H16lWcPHkSMTEx5ofQJpMJQ4YMQX5+Pvbu3QtPT0+LBnG2ru9GYrVFamoq5s2bhyeffBJHjhzBe++9h+XLl99wPVWo/GDe1jqpSeUH5J6envD19bXaTW5DYqjc2CEvL6/aL/ArHu5/9913ACwbC1S9zqloLFDXr+6IKmMinagRvP3223j77bdrnb9kyRIsWbKkXuusrRsZV1X1512uRqvVQqvV2jsMIiKXUVuXYMD1G+p3330X7777bo3zq36He3l5YePGjRbTqt6U2trtWdWYJEnC7NmzMXv27BpjscXPP/9c67w+ffrU2dVY5ZZfld15551ISkqymFZ5XZ06dcK+ffuqLVff+gVsqysiImpZbuTB6t///ne4ubnhpZdeQlpaGoKCgjB9+nQADXsIbW19NxprXSqPnSaXy6uNndYY226MB/O1PSBv7BisNXao+nD/RhsLEFUlCV5hEhERERG5jMjISOzduxdKpRL79u2zGOisIZYtW4aHH3643oOdN7fp06fj888/R1FRETZt2oT77rvP3iERERFZFRkZiV69emHlypX2DqXRNOU+jR07FkOGDMH8+fMbvA5JknidQLViH+lERERERC5k/fr1SEpKQmJiIjp37nzD65s/f77DJ9EB4JVXXkFiYiLOnDmDu+66y97hEBERuaymGP8MAIYMGYKHH364QctOnz4dnp6ejRoPOR+2SCciIiIiIiIiInIwztgi/cqVKxbjnymVSjtHdF1mZiby8/MBAEFBQfDw8LBzROSImEgnIiIiIiIiIiIiIrKCXbsQEREREREREREREVnBRDoRERERERERERERkRVMpBMRERERERERERERWcFEOhERERERERERERGRFUykExERERERERERERFZwUQ6EREREREREREREZEVTKQTEREREREREREREVnBRDoRERERERERERERkRVMpBMRERERERERERERWcFEOhERERERERERERGRFUykExERERERERERERFZ8f99ENdt8Fvy0gAAAABJRU5ErkJggg==",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, axes = plt.subplots(1, 3, figsize=(15, 4))\n",
"\n",
"(df['energy'] / df['number_of_atoms']).plot.hist(bins=100, log=True, ax=axes[0])\n",
"axes[0].set_xlabel('Energy per atom [eV/atom]')\n",
"axes[0].set_ylabel('# Structures')\n",
"\n",
"axes[1].scatter(\n",
" df['ase_atoms'].map(lambda s: s.cell.volume / len(s)),\n",
" df['energy'] / df['number_of_atoms'],\n",
" marker='.', alpha=0.5,\n",
")\n",
"axes[1].set_xlim(0, 300)\n",
"axes[1].set_xlabel(r'Volume [$\\mathrm{\\AA}^3$/atom]')\n",
"axes[1].set_ylabel('Energy per atom [eV/atom]')\n",
"\n",
"df['forces'].explode().explode().infer_objects().plot.hist(bins=100, log=True, ax=axes[2])\n",
"axes[2].set_xlabel(r'Force component [eV/$\\mathrm{\\AA}$]')\n",
"axes[2].set_ylabel('# Components')\n",
"\n",
"plt.tight_layout()"
]
},
{
"cell_type": "markdown",
"id": "ee44867e",
"metadata": {},
"source": [
"### Optional: post-hoc filtering\n",
"\n",
"If the resulting energies and forces still cover ranges that are too\n",
"extreme, `EnergyFilter` and `ForceFilter` (or pandas `query`) can prune\n",
"them. These act on `ase.Atoms` objects that carry a\n",
"`SinglePointCalculator`, which is what `relax` and the loop above\n",
"attach."
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "d4c51d8b",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" ase_atoms | \n",
" energy | \n",
" forces | \n",
" number_of_atoms | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" (Atom('Cu', [-1.0386276484191481, -0.194573218... | \n",
" -2.168733 | \n",
" [[3.191891195797325e-16, -2.8622937353617317e-... | \n",
" 1 | \n",
"
\n",
" \n",
" | 1 | \n",
" (Atom('Cu', [0.6736784829368637, -1.1197747671... | \n",
" -2.354713 | \n",
" [[-7.592633932598097e-17, 6.227072826023132e-1... | \n",
" 1 | \n",
"
\n",
" \n",
" | 2 | \n",
" (Atom('Cu', [0.0, -1.1901120180848723, -7.2873... | \n",
" -1.787319 | \n",
" [[4.0722633598555547e-16, -8.066464163292153e-... | \n",
" 1 | \n",
"
\n",
" \n",
" | 3 | \n",
" (Atom('Cu', [0.0, 0.0, -1.3521411060002535], i... | \n",
" -1.345679 | \n",
" [[-2.0643209364124004e-16, -5.204170427930421e... | \n",
" 1 | \n",
"
\n",
" \n",
" | 4 | \n",
" (Atom('Cu', [-1.0311953554480588, -1.031195355... | \n",
" -1.358783 | \n",
" [[-3.226585665316861e-16, -2.42861286636753e-1... | \n",
" 1 | \n",
"
\n",
" \n",
" | ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" | 1560 | \n",
" (Atom('Cu', [0.1381167850060396, -0.1182780644... | \n",
" -4.905344 | \n",
" [[-3.971783227794896, 1.8061865367255856, 1.07... | \n",
" 2 | \n",
"
\n",
" \n",
" | 1561 | \n",
" (Atom('Cu', [0.0, 0.0, 0.0], index=0), Atom('C... | \n",
" -4.404489 | \n",
" [[-1.345494896054511e-15, -7.971054372113429e-... | \n",
" 2 | \n",
"
\n",
" \n",
" | 1562 | \n",
" (Atom('Cu', [0.0, 0.0, 0.0], index=0), Atom('C... | \n",
" -4.565983 | \n",
" [[-5.88938620094126e-16, -6.934557095217286e-1... | \n",
" 2 | \n",
"
\n",
" \n",
" | 1563 | \n",
" (Atom('Cu', [0.0, 0.0, 0.0], index=0), Atom('C... | \n",
" -4.377709 | \n",
" [[-4.077282877100984e-15, 5.11729872886002e-16... | \n",
" 2 | \n",
"
\n",
" \n",
" | 1564 | \n",
" (Atom('Cu', [0.0, 0.0, 0.0], index=0), Atom('C... | \n",
" -5.381921 | \n",
" [[3.2067447655603765e-15, 2.912600716165059e-1... | \n",
" 2 | \n",
"
\n",
" \n",
"
\n",
"
1565 rows × 4 columns
\n",
"
"
],
"text/plain": [
" ase_atoms energy \\\n",
"0 (Atom('Cu', [-1.0386276484191481, -0.194573218... -2.168733 \n",
"1 (Atom('Cu', [0.6736784829368637, -1.1197747671... -2.354713 \n",
"2 (Atom('Cu', [0.0, -1.1901120180848723, -7.2873... -1.787319 \n",
"3 (Atom('Cu', [0.0, 0.0, -1.3521411060002535], i... -1.345679 \n",
"4 (Atom('Cu', [-1.0311953554480588, -1.031195355... -1.358783 \n",
"... ... ... \n",
"1560 (Atom('Cu', [0.1381167850060396, -0.1182780644... -4.905344 \n",
"1561 (Atom('Cu', [0.0, 0.0, 0.0], index=0), Atom('C... -4.404489 \n",
"1562 (Atom('Cu', [0.0, 0.0, 0.0], index=0), Atom('C... -4.565983 \n",
"1563 (Atom('Cu', [0.0, 0.0, 0.0], index=0), Atom('C... -4.377709 \n",
"1564 (Atom('Cu', [0.0, 0.0, 0.0], index=0), Atom('C... -5.381921 \n",
"\n",
" forces number_of_atoms \n",
"0 [[3.191891195797325e-16, -2.8622937353617317e-... 1 \n",
"1 [[-7.592633932598097e-17, 6.227072826023132e-1... 1 \n",
"2 [[4.0722633598555547e-16, -8.066464163292153e-... 1 \n",
"3 [[-2.0643209364124004e-16, -5.204170427930421e... 1 \n",
"4 [[-3.226585665316861e-16, -2.42861286636753e-1... 1 \n",
"... ... ... \n",
"1560 [[-3.971783227794896, 1.8061865367255856, 1.07... 2 \n",
"1561 [[-1.345494896054511e-15, -7.971054372113429e-... 2 \n",
"1562 [[-5.88938620094126e-16, -6.934557095217286e-1... 2 \n",
"1563 [[-4.077282877100984e-15, 5.11729872886002e-16... 2 \n",
"1564 [[3.2067447655603765e-15, 2.912600716165059e-1... 2 \n",
"\n",
"[1565 rows x 4 columns]"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.query('-3 <= energy / number_of_atoms < 10')"
]
},
{
"cell_type": "markdown",
"id": "4096a047",
"metadata": {},
"source": [
"## Next steps\n",
"\n",
"This notebook stops at the training set. Fitting a potential is then the\n",
"job of a downstream MLIP package — e.g. ACE via `python-ace`, MTP via\n",
"`mlip-3`, or any other framework that reads a list of structures with\n",
"energies and forces. The dataframe saved in\n",
"`Unary//everything_training_data.pckl.gz` is in the format\n",
"consumed by `pyace.linearacefit.LinearACEDataset`.\n",
"\n",
"The companion notebook `ACEFitting.ipynb` walks through training a small linear ACE potential on the dataset produced here."
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.0"
},
"widgets": {
"application/vnd.jupyter.widget-state+json": {
"state": {
"00267cce1c8f4d968b42a21b992330f0": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"05287fb93583431ba2a9746f9dd1facf": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "ProgressStyleModel",
"state": {
"description_width": ""
}
},
"0ca1b839b06a408f97f2a72618166c64": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "HTMLModel",
"state": {
"layout": "IPY_MODEL_484d25272dbf4e3ca85af11b82a2963c",
"style": "IPY_MODEL_4db6659f295f4ab6a96af3651a4ddb15",
"value": "Cu2: 100%"
}
},
"168886c14c274b91bc8b9ae775b7e392": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "ProgressStyleModel",
"state": {
"description_width": ""
}
},
"1937818634df49e0b724331139efb4b8": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "FloatProgressModel",
"state": {
"bar_style": "success",
"layout": "IPY_MODEL_47367810e067441ea376337cf6928cf6",
"max": 167,
"style": "IPY_MODEL_c974c5026ee04d5bbb0cd47c73a76151",
"value": 167
}
},
"1cd36f22f5eb46edafb05532da535d6f": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "HTMLModel",
"state": {
"layout": "IPY_MODEL_7d4cbaf2973b46e8ba44a6dab39dc182",
"style": "IPY_MODEL_ec98ecf5a0e845b792439e2e52c558bf",
"value": "Spacegroups: 100%"
}
},
"21dc7153e5f849d087247a1b25b11359": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"23308845493642768be2ebc1d9d4ead4": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"2374942b463541f1b90d4be651324c6f": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "FloatProgressModel",
"state": {
"bar_style": "success",
"layout": "IPY_MODEL_746197396a02443baaa0542a8d6d6cb9",
"max": 1565,
"style": "IPY_MODEL_168886c14c274b91bc8b9ae775b7e392",
"value": 1565
}
},
"29d88fe464cd4fdfad206f44b2959b0a": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "HTMLStyleModel",
"state": {
"description_width": "",
"font_size": null,
"text_color": null
}
},
"2fbe7f7eec2f493b91d97a7dee60e16e": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "FloatProgressModel",
"state": {
"bar_style": "success",
"layout": "IPY_MODEL_44d8e25f15a54bdb9773a0fe6e37d289",
"max": 3,
"style": "IPY_MODEL_05287fb93583431ba2a9746f9dd1facf",
"value": 3
}
},
"3573f0282d6c4aef87fe32c65cddb929": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "HTMLStyleModel",
"state": {
"description_width": "",
"font_size": null,
"text_color": null
}
},
"3b05c4b055154fdfb71cfb5031a24c16": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"3e50aa1989264d72be146c2d3650a98f": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "HBoxModel",
"state": {
"children": [
"IPY_MODEL_0ca1b839b06a408f97f2a72618166c64",
"IPY_MODEL_2fbe7f7eec2f493b91d97a7dee60e16e",
"IPY_MODEL_9cce600c406b4445adad7d161acbb035"
],
"layout": "IPY_MODEL_95662e9eca14414da16a203993575dcf"
}
},
"3fddcab45cb84567b124fafbe66b8679": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"44d8e25f15a54bdb9773a0fe6e37d289": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"4523e3fcb5a34597aaf4c2ad5834a4fd": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"47367810e067441ea376337cf6928cf6": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"484d25272dbf4e3ca85af11b82a2963c": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"4db6659f295f4ab6a96af3651a4ddb15": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "HTMLStyleModel",
"state": {
"description_width": "",
"font_size": null,
"text_color": null
}
},
"50dc29c2e1aa42fd85480dde08953ef6": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"5116a678bb0d4a55b1aca125b87dffed": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "HTMLModel",
"state": {
"layout": "IPY_MODEL_5d139f39bb544749b1999b29fedbcf06",
"style": "IPY_MODEL_fed068fab6da4d7aa8eabb04e8f10b7a",
"value": "volume: 100%"
}
},
"5180ec413b0d4130b1dfa202737d4ac3": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "HTMLStyleModel",
"state": {
"description_width": "",
"font_size": null,
"text_color": null
}
},
"554d91ab7b754b97852548a76c7ec435": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"55e11051cf014573969ada61084dbf09": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "FloatProgressModel",
"state": {
"bar_style": "success",
"layout": "IPY_MODEL_e46d9013a3b64648828f167b9faa50b7",
"max": 230,
"style": "IPY_MODEL_db3bd77e5cd14e1da0f14a6314a4da6f",
"value": 230
}
},
"5cc6fdd0f5f0439492f34df8c9206461": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "HBoxModel",
"state": {
"children": [
"IPY_MODEL_8c1c1712a83f45f7b745baa284bf4c28",
"IPY_MODEL_55e11051cf014573969ada61084dbf09",
"IPY_MODEL_6d775543ac784c94b33da20fd7cb9891"
],
"layout": "IPY_MODEL_00267cce1c8f4d968b42a21b992330f0"
}
},
"5d139f39bb544749b1999b29fedbcf06": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"6a77d226a2b74eb0bef65c09a134e37a": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "FloatProgressModel",
"state": {
"bar_style": "success",
"layout": "IPY_MODEL_b544c49438d24b9591b60e0e75425824",
"max": 167,
"style": "IPY_MODEL_81bc7804b87c4d51a3441075ef5f4642",
"value": 167
}
},
"6d775543ac784c94b33da20fd7cb9891": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "HTMLModel",
"state": {
"layout": "IPY_MODEL_e7603017a49445ac9c1b8ae44988ec43",
"style": "IPY_MODEL_deb9e5830d5143458f49f545649202b5",
"value": " 230/230 [00:03<00:00, 38.05it/s]"
}
},
"6ed0c842c28c4f2c8179e449883e9d68": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "HTMLModel",
"state": {
"layout": "IPY_MODEL_21dc7153e5f849d087247a1b25b11359",
"style": "IPY_MODEL_9b9839b01ce84357a1e88232a2f002ec",
"value": "full: 100%"
}
},
"746197396a02443baaa0542a8d6d6cb9": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"7903d622cbd8451a9e792f60b6c78e51": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"7a5a6c679ec6406684dfaf1207468ce2": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "FloatProgressModel",
"state": {
"bar_style": "success",
"layout": "IPY_MODEL_d1c073c7f07f4413a57c335550bf6e6c",
"max": 230,
"style": "IPY_MODEL_aa5852c1cab84a6a84193356246dbbd7",
"value": 230
}
},
"7d4cbaf2973b46e8ba44a6dab39dc182": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"81bc7804b87c4d51a3441075ef5f4642": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "ProgressStyleModel",
"state": {
"description_width": ""
}
},
"82210315a5ca4625bbf700333c242dc2": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "HTMLStyleModel",
"state": {
"description_width": "",
"font_size": null,
"text_color": null
}
},
"8c1c1712a83f45f7b745baa284bf4c28": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "HTMLModel",
"state": {
"layout": "IPY_MODEL_3b05c4b055154fdfb71cfb5031a24c16",
"style": "IPY_MODEL_82210315a5ca4625bbf700333c242dc2",
"value": "Spacegroups: 100%"
}
},
"95662e9eca14414da16a203993575dcf": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"958a2b64f5ca452486f2081d69c0cbfe": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"9b9839b01ce84357a1e88232a2f002ec": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "HTMLStyleModel",
"state": {
"description_width": "",
"font_size": null,
"text_color": null
}
},
"9cce600c406b4445adad7d161acbb035": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "HTMLModel",
"state": {
"layout": "IPY_MODEL_3fddcab45cb84567b124fafbe66b8679",
"style": "IPY_MODEL_c93532d9a784474abe11f62a2fefd806",
"value": " 3/3 [00:04<00:00, 1.79s/it]"
}
},
"a80627dc0bd84905a97ef5735e4d8516": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "HTMLStyleModel",
"state": {
"description_width": "",
"font_size": null,
"text_color": null
}
},
"a97dc62e0cea4424b2ff81305de0657e": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "HTMLModel",
"state": {
"layout": "IPY_MODEL_23308845493642768be2ebc1d9d4ead4",
"style": "IPY_MODEL_5180ec413b0d4130b1dfa202737d4ac3",
"value": "evaluating: 100%"
}
},
"aa5852c1cab84a6a84193356246dbbd7": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "ProgressStyleModel",
"state": {
"description_width": ""
}
},
"aa7c9e49b1724c4295f19423cfc445fb": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"b544c49438d24b9591b60e0e75425824": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"b5e6282290224699bced862af7527d5a": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"c93532d9a784474abe11f62a2fefd806": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "HTMLStyleModel",
"state": {
"description_width": "",
"font_size": null,
"text_color": null
}
},
"c974c5026ee04d5bbb0cd47c73a76151": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "ProgressStyleModel",
"state": {
"description_width": ""
}
},
"d0ec12e4c4c5414ab84ce8a5d83d4319": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "HTMLModel",
"state": {
"layout": "IPY_MODEL_4523e3fcb5a34597aaf4c2ad5834a4fd",
"style": "IPY_MODEL_3573f0282d6c4aef87fe32c65cddb929",
"value": " 230/230 [00:01<00:00, 182.21it/s]"
}
},
"d1c073c7f07f4413a57c335550bf6e6c": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"d230053f23684fd5b42c8508c0bdb220": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "HTMLModel",
"state": {
"layout": "IPY_MODEL_b5e6282290224699bced862af7527d5a",
"style": "IPY_MODEL_a80627dc0bd84905a97ef5735e4d8516",
"value": " 167/167 [01:25<00:00, 8.86it/s]"
}
},
"d47fac8b77d340ad94a2ce44efc44881": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"d526986b56a546dc85dcf9738066118b": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "HBoxModel",
"state": {
"children": [
"IPY_MODEL_1cd36f22f5eb46edafb05532da535d6f",
"IPY_MODEL_7a5a6c679ec6406684dfaf1207468ce2",
"IPY_MODEL_d0ec12e4c4c5414ab84ce8a5d83d4319"
],
"layout": "IPY_MODEL_aa7c9e49b1724c4295f19423cfc445fb"
}
},
"d6aae6d0fe4943b09b654c405c1d8f0e": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "HBoxModel",
"state": {
"children": [
"IPY_MODEL_a97dc62e0cea4424b2ff81305de0657e",
"IPY_MODEL_2374942b463541f1b90d4be651324c6f",
"IPY_MODEL_d7b9510892824106aa051d25a517709c"
],
"layout": "IPY_MODEL_7903d622cbd8451a9e792f60b6c78e51"
}
},
"d7b9510892824106aa051d25a517709c": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "HTMLModel",
"state": {
"layout": "IPY_MODEL_d47fac8b77d340ad94a2ce44efc44881",
"style": "IPY_MODEL_fbdc8d5fb7454e01ac308bee288dc49f",
"value": " 1565/1565 [00:14<00:00, 116.79it/s]"
}
},
"db3bd77e5cd14e1da0f14a6314a4da6f": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "ProgressStyleModel",
"state": {
"description_width": ""
}
},
"deb9e5830d5143458f49f545649202b5": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "HTMLStyleModel",
"state": {
"description_width": "",
"font_size": null,
"text_color": null
}
},
"e074e43c81a04a148bb7217289cbba27": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "HBoxModel",
"state": {
"children": [
"IPY_MODEL_5116a678bb0d4a55b1aca125b87dffed",
"IPY_MODEL_1937818634df49e0b724331139efb4b8",
"IPY_MODEL_f8d788916436402291fb5579687ed1d4"
],
"layout": "IPY_MODEL_554d91ab7b754b97852548a76c7ec435"
}
},
"e46d9013a3b64648828f167b9faa50b7": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"e7603017a49445ac9c1b8ae44988ec43": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {}
},
"ec98ecf5a0e845b792439e2e52c558bf": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "HTMLStyleModel",
"state": {
"description_width": "",
"font_size": null,
"text_color": null
}
},
"ecaf0351454d4097848d9c6c3cd73577": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "HBoxModel",
"state": {
"children": [
"IPY_MODEL_6ed0c842c28c4f2c8179e449883e9d68",
"IPY_MODEL_6a77d226a2b74eb0bef65c09a134e37a",
"IPY_MODEL_d230053f23684fd5b42c8508c0bdb220"
],
"layout": "IPY_MODEL_958a2b64f5ca452486f2081d69c0cbfe"
}
},
"f8d788916436402291fb5579687ed1d4": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "HTMLModel",
"state": {
"layout": "IPY_MODEL_50dc29c2e1aa42fd85480dde08953ef6",
"style": "IPY_MODEL_29d88fe464cd4fdfad206f44b2959b0a",
"value": " 167/167 [00:20<00:00, 17.56it/s]"
}
},
"fbdc8d5fb7454e01ac308bee288dc49f": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "HTMLStyleModel",
"state": {
"description_width": "",
"font_size": null,
"text_color": null
}
},
"fed068fab6da4d7aa8eabb04e8f10b7a": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "2.0.0",
"model_name": "HTMLStyleModel",
"state": {
"description_width": "",
"font_size": null,
"text_color": null
}
}
},
"version_major": 2,
"version_minor": 0
}
}
},
"nbformat": 4,
"nbformat_minor": 5
}