nanoparticlesims/cnapQuenchMelting.ipynb

1024 lines
224 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"id": "58765919",
"metadata": {},
"source": [
"Define pySnow location and allow python to look it up"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "48a9927a",
"metadata": {},
"outputs": [],
"source": [
"import sys\n",
"from pathlib import Path\n",
"# 1. Define the absolute path to the directory containing the 'snow' folder\n",
"# (Replace this with the actual path where your 'snow' directory lives)\n",
"local_packages_path = Path(\"/home/tmlkyza/Documents/Universita/Master/nanopants/lcm/pySNOW\")\n",
"\n",
"# 2. Convert to an absolute string and inject it into Python's search path\n",
"sys.path.append(str(local_packages_path.resolve()))"
]
},
{
"cell_type": "markdown",
"id": "0afb3497",
"metadata": {},
"source": [
"Get all the sims dir and look at all the runs"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "31b9d741",
"metadata": {},
"outputs": [],
"source": [
"script_dir= Path('.')\n",
"\n",
"# Find all directories in the current folder ending with 'Sims'\n",
"sims_root = [\n",
" p for p in script_dir.iterdir() \n",
" if p.is_dir() and p.name.endswith('quenchMeltingSims')\n",
"]"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "49bf3ba8",
"metadata": {},
"outputs": [],
"source": [
"# Extract the real, absolute path of every subfolder inside the Sims directories\n",
"sims_runs = []\n",
"for sim in sims_root:\n",
" sims_runs.append([\n",
" run.resolve() for run in sim.iterdir() \n",
" if run.is_dir()\n",
" ])"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "78fa3bb1",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[]\n",
"[]\n"
]
}
],
"source": [
"# Safely print the true absolute paths of every single item inside those runs\n",
"movies = []\n",
"outs = []\n",
"for root in sims_runs:\n",
" for run in root:\n",
" for item in run.glob('*.xyz'):\n",
" if item.name == \"movie.xyz\":\n",
" movies.append(item)\n",
" # 2. Grab all out[number].xyz files in this folder\n",
" out_files = list(run.glob('out*.xyz'))\n",
" \n",
" if out_files:\n",
" # Find the file with the maximum numeric value\n",
" # item.stem gives us 'out11', [3:] strips 'out' to leave '11', int() makes it 11\n",
" highest_out = max(out_files, key=lambda item: int(item.stem[3:]))\n",
" outs.append(highest_out)\n",
"\n",
"print(movies)\n",
"print(outs)"
]
},
{
"cell_type": "markdown",
"id": "680746c9",
"metadata": {},
"source": [
"Start by computing the coordination number and appending it to xyz, such that we can read it with ovito. The output dir is cns/[processType]/run_natoms.xyz"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "ddc8d398",
"metadata": {},
"outputs": [],
"source": [
"#define some useful functions, you can ignore this\n",
"\n",
"def getProcess(file):\n",
" return file.parent.parent.name\n",
"\n",
"def FileOut(file, subDirName, filename):\n",
" run_folder = file.parent # This gives 'run_14'\n",
" process_folder = run_folder.parent # This gives 'growthSims'\n",
"\n",
" process_type = process_folder.name # Extracts the text string 'growthSims'\n",
" run_name = run_folder.name # Extracts the text string 'run_14'\n",
"\n",
" output_dir = script_dir / subDirName / process_type\n",
" output_dir.mkdir(parents=True, exist_ok=True) # Automatically creates the cns/ and [processtype]/ folders if they don't exist\n",
"\n",
" #return output_dir / f\"{run_name}.xyz\"\n",
" return output_dir / filename\n",
"\n",
"def writeDict(data_dict, file_path):\n",
" field_names = list(data_dict.keys())\n",
" columns = [data_dict[key] for key in field_names]\n",
" with open(file_path, \"w\") as outfile:\n",
" header_line = \"# \" + \" \".join(field_names) + \"\\n\"\n",
" outfile.write(header_line)\n",
" for row in zip(*columns):\n",
" row_line = \" \".join(str(val) for val in row) + \"\\n\"\n",
" outfile.write(row_line)\n",
" \n"
]
},
{
"cell_type": "markdown",
"id": "9a7abba6",
"metadata": {},
"source": [
"Generate PDDF RDF in .dat files and append CNS and CNAPS to existing .xyz"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "863a210c",
"metadata": {},
"outputs": [],
"source": [
"from snow.io.xyz import read_xyz, write_xyz\n",
"from snow.descriptors.coordination import coordination_number\n",
"from snow.descriptors import cna\n",
"from snow.descriptors.distributions import pddf_calculator, com_rdf_calculator\n",
"from collections import Counter\n",
"\n",
"alat = 4.087077141 # a lattice for Ag also checksout with https://reference.wolfram.com/language/ref/ElementData.html\n",
"cutoff = 0.85*alat\n",
"\n",
"for file in outs:\n",
" el, coords = read_xyz(file)\n",
" cns = coordination_number(coords, cutoff)\n",
" cnaps = cna.cnap_peratom(coords, cutoff)\n",
"\n",
" write_xyz(FileOut(file, \"GCN\", f\"{file.parent.name}.xyz\"), el, coords, additional_data={\"cns\":cns,\"cnaps\":cnaps})\n",
" \n"
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "55a63173",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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6quv9MADD6hMmTKKjY3Vrbfeqv379zuXs+redezYMQ0YMEClS5dW8eLF1bVrV/35558yDENjx451W9af/WS32zV+/HjVrl3beS+88sor9eqrr/p1fNLS0jR8+HDFxcWpaNGiatOmjX744Qfn5wsWLJBhGF5nij733HMqUqSI237y5tdff1WvXr1Uvnx5RUREqEqVKrrnnnt8PvJDWdyTvN1vcnNflJ9tgOM+8/333+v2229XqVKldPnll/uM//Tp03rsscecj08pXbq0mjZtqsWLF3vU6eA4F739c90XpmlqxowZzvavVKlSuv322/Xnn3/6jAcAABQcDOACAIKmefPm+vbbb/Xwww/r22+/1blz57wut3TpUlWvXl2NGzd2/pm149maZ8+eVUpKih577DEtW7ZMixcvVqtWrXTrrbd6PEOzX79+euSRR3T11VdryZIleu+993TjjTf6/BNZ0zT12GOPadiwYXrrrbecMwwXLlyoTp06qWTJkpo/f77ef/99lS5dWp07d3b7Bf6LL77QTTfdpBIlSui9997T1KlT9f7772vu3LmW7D/HYJ7rAG5m7733noYMGaI2bdpo6dKlWrZsmR599FGlpqZKkrp27aoXXnhBkvTGG28492/Xrl2ddSQnJ+vuu+9W7969tWLFCg0ZMiTLuKZPn66VK1dq2rRpWrhwoUJCQpSQkJCjP/vduHGjihYtqi5dujhjy+qxDYsWLdJNN92kkiVLavHixZozZ46OHj2qtm3bav369R7L33bbbapVq5Y+/PBDjRw5UosWLdKjjz6abVwTJ07UgAEDVK9ePX300Ud69dVX9dNPP6l58+bauXOndGHg/+mnn5YkzZ07Vxs3btQzzzzjtT6bzaYvv/xSTZo00WWXXRbAHpJ69uypJk2a6Omnn/Z5Dbl6++23VaFCBSUkJOjee++V3W73+0/8z507p7/++ktly5aVJNWpU0cxMTEaN26cZs+ebdmfm2fezvbt23X11Vfr559/1ksvvaRPPvlEXbt21cMPP+w289dh1KhR2rNnj2bNmqWPP/5Y5cqV05w5c9SlSxfZ7XZn+cMPP+z2GJKvvvpKLVu21LFjxzRr1iz997//VaNGjdSzZ0+v+2jgwIEqUqSIFi1apClTpmjNmjXOQXtZdO+y2+3q3r27Fi1apCeffFJLly5Vs2bNvD772N/9NGXKFI0dO1a9evXSp59+qiVLlmjAgAHZPp/Z4amnntKff/6pt956S2+99Zb279+vtm3bOgcDe/bsqbi4OI+B44yMDL355pu65ZZbVLFiRZ/1//jjj7r66qu1adMmPffcc/rss880ceJEnT17Vunp6X7FmJXc3hf9bQMcbr31VtWoUUMffPCBZs2a5TOu4cOHa+bMmXr44Ye1cuVKLViwQHfccYfzixJvunbt6ozP8e/ll1+WJNWrV8+53P33369hw4bp+uuv17JlyzRjxgz98ssvatGihQ4ePJiLvQkAAPKFCQBAkBw+fNhs1aqVKcmUZBYpUsRs0aKFOXHiRPPkyZNuy9arV89s06ZNtnVmZGSY586dMwcMGGA2btzYWb5u3TpTkjl69Ogs169atarZtWtX8/Tp0+Ztt91mRkdHm59//rnz89TUVLN06dJm9+7d3daz2Wxmw4YNzWuuucZZ1qxZM7NixYrmmTNnnGUnTpwwS5cubfrTBPft29eMiory+fmOHTtMSeYDDzzgLGvTpo3bfnrooYfMmJiYLLfzwQcfmJLMr776yuOzNm3amJLML774wutnrttKSkoyJfnM+frrr3fLrWrVqh51Pvvssx77Jioqyuzbt6/Hsl999ZVb3DabzaxYsaLZoEED02azOZc7efKkWa5cObNFixYe25kyZYpbnUOGDDEjIyNNu93uY2+Z5tGjR82iRYuaXbp0cSvfs2ePGRERYfbu3dtZNnfuXFOSuXnzZp/1maZpHjhwwJRk3nnnnVku56pNmzZmvXr1TNM0zc8//9yUZL7++uum6XIspk6d6raO4zoYOXKkaZqmabfbzfj4eLNq1aoeOVetWtXs0qWLee7cOfPcuXNmUlKS2bdvX1OS+fjjjzuX+/TTT80yZco4r+PY2FjzjjvuMJcvX+5XHv5sp3PnzmblypXN48ePu6370EMPmZGRkWZKSoppupwT1113ndtyJ0+eNEuWLGm2atUqy2N7xRVXmI0bNzbPnTvnVt6tWzezQoUKzvPKcVyHDBnittyUKVNMSWZycrKzLLf3rk8//dSUZM6cOdNt+YkTJ5qSzGeffdZZ5u9+6tatm9moUaNsY8rMsX+vuuoqt/24e/dus0iRIubAgQOdZc8++6wZHh5uHjx40Fm2ZMkSU5K5du3aLLfTvn17MyYmxjx06FC2sbjetzLfkxwy329yc18MpA1w3GfGjBmT5bYc6tevb958881ZLuPtHunq119/NWNjY8127dqZZ8+eNU3TNDdu3GhKMl966SW3Zf/++2+zaNGi5hNPPOFXfAAAIHiYgQsACJrY2Fh9/fXX2rx5syZNmqSbbrpJv//+u0aNGqUGDRro8OHDftXzwQcfqGXLlipevLjCwsJUpEgRzZkzx+3P2T/77DNJ0oMPPphtfUeOHFH79u313Xffaf369erQoYPzsw0bNiglJUV9+/ZVRkaG85/dbtcNN9ygzZs3KzU1Vampqdq8ebNuvfVWRUZGOtcvUaKEunfvHuCe8s40zWyXueaaa3Ts2DH16tVL//3vf/3ep65KlSql9u3b+728r5zXrVsnm80W8Pb99dtvv2n//v3q06eP25/uFy9eXLfddps2bdqk06dPu62T+ZEEV155pdLS0nTo0CGf29m4caPOnDnj8TiEyy67TO3bt/c6Ay+vdejQQZ06ddJzzz2nkydP+lzO8fIyx2MwHI91+Ouvv7zGvWLFChUpUkRFihRRfHy83n//fQ0dOlTjx493LtOlSxft2bNHS5cu1WOPPaZ69epp2bJluvHGG/XQQw/5FX9W20lLS9MXX3yhW265RcWKFXO77rp06aK0tDS350DrwsxqVxs2bNCJEyc0ZMgQn88J3rVrl3799Vfddddd0oXZoq7bSU5O1m+//ea2jrfzR5Lfj6Tw5961du1aSVKPHj3c1u3Vq5fbz4Hsp2uuuUY//vijhgwZolWrVunEiRN+xevQu3dvt/1YtWpVtWjRQl999ZWzzPHs4v/85z/OsunTp6tBgwa67rrrfNZ9+vRprV27Vj169HDOwLZabu6L/rYBrjKfj1nF9dlnn2nkyJFas2aNzpw5E1BeBw4c0A033KAKFSpo6dKlCg8PlyR98sknMgxDd999t1vMcXFxatiwocdjaAAAQMHDAC4AIOiaNm2qJ598Uh988IH279+vRx99VLt37/brRWYfffSRevTooUqVKmnhwoXauHGjNm/erHvvvVdpaWnO5f755x+FhoYqLi4u2zp///13ffvtt0pISFD9+vXdPnP8qentt9/uHHBy/Js8ebJM01RKSoqOHj0qu93udXv+xOAPxyBRVn+K3KdPH7399tv666+/dNttt6lcuXJq1qyZVq9e7fd2fD3f1BdfOaenp+vUqVMB1RWIrJ7HWrFiRdntdh09etStPDY21u1nx7Nnsxo4yW47Wf25sy9lypRRsWLFlJSUFPC6DpMnT9bhw4d9Pmf55MmT+uCDD3TNNdeobNmyOnbsmI4dO6ZbbrlFhmE4B3ddtWrVSps3b9aWLVu0fft2HTt2TK+99ppzYMihaNGiuvnmmzV16lStXbtWu3btUt26dfXGG284X+SWlay2c+TIEWVkZOj111/3uOa6dOkiSR4DcJmPzT///CNdeAGUL45r+7HHHvPYjuOxIZm3k5Pzx8Hfe9eRI0cUFham0qVLu61fvnx5t58D2U+jRo3Siy++qE2bNikhIUGxsbHq0KGDtmzZkm3cyuIadz33y5cvr549e+rNN9+UzWbTTz/9pK+//jrbQf2jR4/KZrPl6Yu6cnNf9LcNcOXvPfS1117Tk08+qWXLlqldu3YqXbq0br75ZudjWbJy8uRJdenSRefOndNnn32m6Ohot5hN01T58uU9Yt60aVOOvtgDAAD5i9fxAgAKlCJFiujZZ5/VK6+8op9//jnb5RcuXKj4+HgtWbLEbUZY5hfdlC1bVjabTQcOHMj2l+nmzZvrjjvu0IABA6QLL7txzOgsU6aMJOn111/Xtdde63X98uXL69yFN98fOHDA43NvZTnhePmat5f2uOrfv7/69++v1NRUrVu3Ts8++6y6deum33//XVWrVs12O75mLPriK+fw8HAVL15ckhQZGen1ZUS5GUhwDKYlJyd7fLZ//36FhISoVKlSOa7f3+04zpFAhIaGqkOHDvrss8+0d+/eHA1eNWrUSL169dLLL7/sHLBztXjxYp0+fVrfffed1/2wdOlSHT161O2z6OhoNW3aNOBYqlSpovvuu0/Dhg3TL7/84vYsTm+y2k6pUqUUGhqqPn36+JxBHx8f7/Zz5nPWMZPT9Xm3mTmO26hRo3Trrbd6XaZ27dpZ5hEIf+9dsbGxysjIUEpKitsgbubrLJD9FBYWpuHDh2v48OE6duyYPv/8cz311FPq3Lmz/v77bxUrVizL2H1d45kHtB955BEtWLBA//3vf7Vy5UrFxMQ4Zzj7Urp0aYWGhmZ5rHyJjIz0+hJCb/eVnN4X/W0DXPl7D42KitK4ceM0btw4HTx40Dkbt3v37vr11199rnfu3Dnddttt+uOPP/T111973D/KlCkjwzD09ddfe31BorcyAABQsDADFwAQNN4GwCQ5/3zYdWZpRESE11lthmEoPDzc7RfkAwcOeLzJPSEhQbowGOuPvn376r333tPcuXN1zz33OP/0v2XLloqJidH27dvVtGlTr//Cw8MVFRWla665Rh999JHbbLqTJ0/q448/9iuGrKxevVpvvfWWWrRooVatWvm1TlRUlBISEjR69Gilp6c7Z0YGMmvQH75ybt26tUJDQyVJ1apV06FDh9xenpOenq5Vq1Z51Ofr2GdWu3ZtVapUSYsWLXJ7vERqaqo+/PBDNW/ePNuBKX80b95cRYsW1cKFC93K9+7dqy+//NLtkRuBGDVqlEzT1KBBg7y+qOncuXPZnjvjx49Xenq61xd7zZkzRyVKlNAXX3yhr776yu3f1KlTdfbsWb377rsBxXzy5Emfs6q9Xcc5UaxYMbVr104//PCDrrzySq/XXOaBw8xatGih6OhozZo1y+ejR2rXrq2aNWvqxx9/9HltlyhRIuD4c3vvatOmjSRpyZIlbuXvvfee28853U8xMTG6/fbb9eCDDyolJcWvF9EtXrzYbT/+9ddf2rBhg8eXSU2aNFGLFi00efJkvfvuu+rXr5+ioqKyrLto0aJq06aNPvjgg4C/0KlWrZp+//13t0HwI0eOaMOGDT7XCfS+6G8bkFvly5dXv3791KtXL/32228ej39xNWDAAK1Zs0YfffSR8zEerrp16ybTNLVv3z6v8TZo0CDX8QIAgLzFDFwAQNB07txZlStXVvfu3XXFFVfIbrcrMTFRL730kooXL65HHnnEuWyDBg303nvvacmSJapevboiIyPVoEEDdevWTR999JGGDBmi22+/XX///beef/55VahQwe3PTlu3bq0+ffpo/PjxOnjwoLp166aIiAj98MMPKlasmIYOHeoR3+23365ixYrp9ttv15kzZ7R48WIVL15cr7/+uvr27auUlBTdfvvtKleunP755x/9+OOP+ueff5yDxM8//7xuuOEGdezYUSNGjJDNZtPkyZMVFRXl8Se2vtjtdudzK8+ePas9e/bos88+0/vvv686dero/fffz3L9QYMGqWjRomrZsqUqVKigAwcOaOLEiYqOjtbVV18tSc7HRMyePVslSpRQZGSk4uPjsx0U8yU0NFQdO3bU8OHDZbfbNXnyZJ04ccJtULFnz54aM2aM7rzzTj3++ONKS0vTa6+95vUZuQ0aNNCaNWv08ccfq0KFCipRooTXmZAhISGaMmWK7rrrLnXr1k3333+/zp49q6lTp+rYsWOaNGlSjvLJLCYmRs8884yeeuop3XPPPerVq5eOHDmicePGKTIyUs8++2yO6m3evLlmzpypIUOGqEmTJnrggQdUr149nTt3Tj/88INmz56t+vXrZ/kM5fj4eD3wwAN69dVX3cp//vlnfffdd3rggQe8Ps+4ZcuWeumllzRnzhy/n1urC88d7ty5s+688061adNGFSpU0NGjR/Xpp59q9uzZatu2rVq0aBHgnvD06quvqlWrVmrdurUeeOABVatWTSdPntSuXbv08ccf68svv8xy/eLFi+ull17SwIEDdf3112vQoEEqX768du3apR9//FHTp0+XJL355ptKSEhQ586d1a9fP1WqVEkpKSnasWOHvv/+e33wwQcBx57be9cNN9ygli1basSIETpx4oSaNGmijRs36p133pEunPeB7qfu3burfv36atq0qcqWLau//vpL06ZNU9WqVVWzZs1sczp06JBuueUWDRo0SMePH9ezzz6ryMhIjRo1ymPZRx55RD179pRhGM5HUWTn5ZdfVqtWrdSsWTONHDlSNWrU0MGDB7V8+XK9+eabPgfS+/TpozfffFN33323Bg0apCNHjmjKlCkqWbKk23K5vS/62wYEqlmzZurWrZuuvPJKlSpVSjt27NCCBQuy/PJp6tSpWrBggYYOHaqoqCi350GXLFlSdevWVcuWLXXfffepf//+2rJli6677jpFRUUpOTlZ69evV4MGDZzPLAYAAAVUsN+iBgAovJYsWWL27t3brFmzplm8eHGzSJEiZpUqVcw+ffqY27dvd1t29+7dZqdOncwSJUqYktzeKD5p0iSzWrVqZkREhFmnTh3zP//5j9c3ddtsNvOVV14x69evb4aHh5vR0dFm8+bNzY8//ti5TNWqVc2uXbu6rffVV1+ZxYsXN2+44Qbz9OnTpmma5tq1a82uXbuapUuXNosUKWJWqlTJ7Nq1q/nBBx+4rbt8+XLzyiuvNMPDw80qVaqYkyZNyvYt4g59+/Y1JTn/FS1a1KxSpYrZvXt38+2333a+YdxV5rewz58/32zXrp1Zvnx5Mzw83KxYsaLZo0cP86effnJbb9q0aWZ8fLwZGhpqSjLnzp3rrK9evXpe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AADg1YEDBzR06FBVr15dERERuuyyy9S9e3d98cUXzmWqVasmwzC0adMmt3WHDRumtm3betS5d+9ehYeH64orrvC6TcMwnP9KlCihpk2b6qOPPnJ+npqaqieffFLVq1dXZGSkypYtq7Zt2+qTTz7xWl/btm3d6sz8r1q1arnYQ3mPAVwAAAAAAAAAHnbv3q0mTZroyy+/1JQpU7Rt2zatXLlS7dq104MPPui2bGRkpJ588km/6p03b5569Oih06dP65tvvvG6zNy5c5WcnKzNmzerYcOGuuOOO7Rx40ZJ0uDBg7Vs2TJNnz5dv/76q1auXKnbbrtNR44c8VrXRx99pOTkZCUnJ+u7776TJH3++efOss2bNwe4Z/IXA7gAAAAAAAAAPAwZMkSGYei7777T7bffrlq1aqlevXoaPny4x2zb+++/X5s2bdKKFSuyrNM0Tc2dO1d9+vRR7969NWfOHK/LxcTEKC4uTldccYVmzZqlyMhILV++XJL08ccf66mnnlKXLl1UrVo1NWnSREOHDlXfvn291lW6dGnFxcUpLi5OZcuWlSTFxsYqLi5OTz31lPr37++2fEZGhuLi4vT2229LF2bwPvTQQ3rooYcUExOj2NhYPf300zJN07lOenq6nnjiCVWqVElRUVFq1qyZ1qxZ49d+zg4DuAAAAAAAAADcpKSkaOXKlXrwwQcVFRXl8XlMTIzbz9WqVdPgwYM1atQo2e12n/V+9dVXOn36tK6//nr16dNH77//vk6ePJllLEWKFFFYWJjOnTsnSYqLi9OKFSuyXc8fAwcO1MqVK5WcnOwsW7FihU6dOqUePXo4y+bPn6+wsDB9++23eu211/TKK6/orbfecn7ev39/ffPNN3rvvff0008/6Y477tANN9ygnTt35jpGBnABAAAAAAAAuNm1a5dM0/T5nFpvnn76aSUlJendd9/1ucycOXN05513KjQ0VPXq1VONGjW0ZMkSn8ufPXtW48eP14kTJ9ShQwdJ0uzZs7VhwwbFxsbq6quv1qOPPurzUQzZadGihWrXrq0FCxY4y+bOnas77rhDxYsXd5ZddtlleuWVV1S7dm3dddddGjp0qF555RVJ0h9//KHFixfrgw8+UOvWrXX55ZfrscceU6tWrTR37twcxeXK2teAAgCAf50P4z+0tL6xGmtpfQAAAACs53g8gGEYfq9T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sxUdHa2GDRsGLQ6/Z+DGx8frjjvu0BtvvKGOHTsqJCRXT18AAAAAAAAAgALnk08+0Z133qnTp0+rQoUKWr16tcqUKRO0ePweha1atarWr1+vdevW6ffff8/bqAAAAAAAAAAgCNq1a6fExERt2LBBN9xwg3r06KFDhw4FLR6/B3B/++03LVy4UMnJybr66qvVpEkTvfLKK5IkwzDyMkYAAAAAAAAAyBdRUVGqUaOGrr32Ws2ZM0dhYWGaM2dO0OIJ6CVmLVu2VMuWLfXaa69p8eLFevvtt2Wz2TRkyBD17t1bN998s8qWLZt30QKXsJM7JgU7BAAAAAAAAATINE2dPXs2aNvP0YNsixcvrkGDBmnjxo365Zdf1KRJEz399NOqWLGi9RECAAAAAAAAgAVOnTqlxMREJSYmSpKSkpKUmJioPXv2KDU1VU899ZQ2bdqkv/76S99//70GDhyovXv36o477ghazLl+E1mdOnX04osvat++fVqyZIk1UQEAAAAAAACAxbZs2aLGjRurcePGkqThw4ercePGGjNmjEJDQ/Xrr7/qtttuU61atdStWzf9888/+vrrr1WvXr2gxRzQIxSyrCgsTLfeeqtV1QEAAAAAAAC41Iw9HuwIstS2bVuZpunz848++ihf4/FHrmfgAgAAAAAAAADyBgO4AAAAAAAAAFBAMYALAAAAAAAAAAUUA7gAAAAAAAAAUED59RKzQF5OVhAf9AsAAAAAAAAAlyK/BnCjo6PzPhIAAAAAAAAAgBu/BnDnzp2b95EAAAAAAAAAANzwDFwAAAAAAAAAKKD8moGb2f/93//p/fff1549e5Senu722ffff29VbAAAAAAAAABQqAU8A/e1115T//79Va5cOf3www+65pprFBsbqz///FMJCQl5EyUAAAAAAAAAFEIBz8CdMWOGZs+erV69emn+/Pl64oknVL16dY0ZM0YpKSl5EyUAAAAAAACAAq/B/Ab5tq1tfbcFvM66des0depUbd26VcnJyVq6dKluvvlmr8vef//9mj17tl555RUNGzbMgohzJuAZuHv27FGLFi0kSUWLFtXJkyclSX369NHixYutjxAAAAAAAAAALJCamqqGDRtq+vTpWS63bNkyffvtt6pYsWK+xeZLwDNw4+LidOTIEVWtWlVVq1bVpk2b1LBhQyUlJck0zbyJEgAAAAAA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ddW+fXstXLhQycnJmj59ur788ktdccUVuvLKK62PEAAAAAAAAADywWuvvaa6deuqcuXKCg8P1w033KAZM2aoVatWQYspRwO4DtHR0RoyZIi2bNmi77//Xm3btrUuMgAAAAAAAADIR6+99po2bdqk5cuXa+vWrXrppZc0ZMgQff7550GLKcyqiho1aqTXXnvNquoAAAAAAAAAIN+cOXNGTz31lJYuXaquXbtKkq688kolJibqxRdf1PXXXx+UuPwewG3Xrl22LywzDENffPGFFXEBAAAAAAAAQL45d+6czp07p5AQ94cWhIaGym63By0uvwdwGzVq5POzEydOaPHixTp79mzAAcyYMUNTp05VcnKy6tWrp2nTpql169bZrvfNN9+oTZs2ql+/vhITEwPeLgAAAAAAAIDC5dSpU9q1a5fz56SkJCUmJqp06dKqUqWK2rRpo8cff1xFixZV1apVtXbtWr3zzjt6+eWXgxaz3wO4r7zyikdZRkaG3njjDU2YMEGVKlXS888/H9DGlyxZomHDhmnGjBlq2bKl3nzzTSUkJGj79u2qUqWKz/WOHz+ue+65Rx06dNDBgwcD2iYAAAAAAACAwmnLli1q166d8+fhw4dLkvr27at58+bpvffe06hRo3TXXXcpJSVFVatW1YQJEzR48OCgxZzjZ+C+++67GjNmjM6cOaOxY8fqvvvuU1hYYNW9/PLLGjBggAYOHChJmjZtmlatWqWZM2dq4sSJPte7//771bt3b4WGhmrZsmU5TQEAAAAAAACAhUYs+STYIWSpbdu2Mk3T5+dxcXGaO3duvsaUnRA/lnGzcuVKNWrUSEOGDFG/fv20c+dODRkyJODB2/T0dG3dulWdOnVyK+/UqZM2bNjgc725c+fqjz/+0LPPPhto6AAAAAAAAABwSfF71PW7777Tk08+qU2bNmnw4MH6/PPPVaZMmRxv+PDhw7LZbCpfvrxbefny5XXgwAGv6+zcuVMjR47U119/7feA8dmzZ92ezXvixAlJks1mk81mky68fC0kJER2u12hxsUReNOU7DLcyiTJbkqmn+U2m8354GPHw44dn9tMyZAUkundcDbTkCHT73JH3a7fHoQYpuymoRDDlOviOc3Jsa+c9V/IKfPyuc3JZrO5HQ/TNJ3bMCVLcjJNU4bhnlOoYV5YXgr1iDHwnEzTdHu4teMF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Sl6vV1dddVWJ2x566CFXN4AXL16snJwcDR8+3L9s3bp1GjhwoC644ALFxcUpPT1dw4YN06FDh8KSmZ6erunTp4dlWxVxrvq6deum7Oxs1a1bNyx5t9xyi/71r39p5cqVYdkeAAAAIocGLgAAcI24uDhNnTpVR44cqepdCZsTJ05U+L47duzQD37wA6WlpalBgwZnXXfOnDn6+c9/rpUrV2r37t0VzqwKzzzzjH7605/K4/luanrw4EH16dNHiYmJ+sc//qHNmzdrzpw5Sk5O1rffflvVuxuystQXGxurRo0ahe3Ni+rVq+v//u//9Oyzz4ZlewAAAIgcGrgAAMA1+vTpo0aNGunRRx8tdZ1gV5NOnz5d6enp/t9vvvlmDRkyRI888oiSkpKUkJCghx9+WKdOndI999yj+vXrKzU1VXPmzCmx/S1btqhbt26Ki4vTRRddpA8++CDg9k2bNunqq69WrVq1lJSUpJtuuingqtDevXvrjjvu0Pjx45WYmKi+ffsGraOwsFCTJk1Samqqqlevrg4dOujtt9/23+44jjIzMzVp0iQ5jqOHHnqo1MckLy9Pr776qm6//XYNHDhQ8+bN8982b948Pfzww9qwYYMcx5HjOP7bd+/ercGDB6tWrVqqU6eOfvSjH+nAgQMlHus5c+aoadOmqlWrlm6//XYVFBToscceU6NGjXTBBRdo8uTJJZ6jpk2bqnr16kpJSdGdd95Z6r4fOnRI//znPwP+e/+qVauUm5urP/7xj+rYsaOaNWumK664QtOnT1fTpk1lZmrZsqWeeOKJgG39+9//lsfj0Y4dO866H71799aXX36pu+66y/+YFM3u2bOnatSooSZNmujOO+9UXl6e//b09HT97ne/04gRI1SrVi2lpaXpzTff1FdffeV/LNu3b681a9aUWvO56lOQj1Do3bu3f1+L/uzatUuSdPToUd1666264IILVKdOHV1xxRXasGFDQO6gQYP0xhtv6NixY6XuGwAAANyHBi4AAHANr9erRx55RM8++6z27t0b0rbee+897d+/X8uXL9eTTz6phx56SAMHDlS9evX06aef6rbbbtNtt92mPXv2BNzvnnvu0YQJE7Ru3Tp169ZNgwYN0tdffy1Jys7OVq9evdShQwetWbNGb7/9tg4cOKAf/ehHAdt48cUXFRMTo48++kjPP/980P17+umnNW3aND3xxBP67LPP1L9/fw0aNEhZWVn+rIsuukgTJkxQdna27r777lJrXbBggS688EJdeOGFuvHGGzV37lyZmSRp2LBhmjBhgi666CJlZ2crOztbw4YNk5lpyJAhOnz4sD788EMtW7ZMO3bs0LBhwwK2vWPHDi1dulRvv/225s+frzlz5uiaa67R3r179eGHH2rq1Kn6zW9+o08++USS9Le//U1PPfWUnn/+eWVlZemNN95Q+/btS933lStXqmbNmmrbtq1/WaNGjXTq1CktXLjQX0dRjuNo1KhRmjt3bsDyOXPmqEePHmrRosVZ9+P1119XamqqJk2a5H9MJGnjxo3q37+/hg4dqs8++0wLFizQypUrdccddwTkPPXUU+revbvWrVuna665RjfddJNGjBihG2+8UWvXrlXLli01YsSIoPtelvqCef311/37mp2draFDh+rCCy9UUlKSzEzXXHONcnJytGTJEmVmZqpTp0668sordfjwYf82unTpopMnT2r16tVlygQAAIBLGAAAgAuMHDnSBg8ebGZmXbt2tVGjRpmZ2cKFC63olGXixIl26aWXBtz3qaeesrS0tIBtpaWlWUFBgX/ZhRdeaD169PD/furUKYuPj7f58+ebmdnOnTtNkk2ZMsW/zsmTJy01NdWmTp1qZmYPPvig9evXLyB7z549Jsm2bt1qZma9evWyDh06nLPelJQUmzx5csCyyy67zMaOHev//dJLL7WJEyeec1vdunWz6dOn+/c5MTHRli1b5r892GP2zjvvmNfrtd27d/uXff755ybJVq9e7b9fzZo1LTc3179O//79LT09vcRj++ijj5qZ2bRp06x169Z24sSJc+63nX7umjdvXmL5/fffbzExMVa/fn276qqr7LHHHrOcnBz/7fv37zev12uffvqpmZmdOHHCGjZsaPPmzSvTfqSlpdlTTz0VsOymm26yW2+9NWDZihUrzOPx2LFjx/z3u/HGG/23Z2dnmyR78MEH/cs+/vhjk2TZ2dml1n2u+t5//32TZEeOHClx3yeffNISEhL8x9y7775rderUsePHjwes16JFC3v++ecDltWrV8//GAEAAOD8wBW4AADAdaZOnaoXX3xRmzZtqvA2LrroIv9nqkpSUlJSwJWgXq9XDRo00MGDBwPul5GR4f93TEyMunTpos2bN0uSMjMz9f7776tWrVr+nzZt2kinr1T16dKly1n3LTc3V/v371f37t0Dlnfv3t2fVVZbt27V6tWr/V8AFhMTo2HDhgX9eIiiNm/erCZNmqhJkyb+Ze3atVNCQkLAPqSnp6t27dr+35OSktSuXbsSj63vcbzhhht07NgxNW/eXLfccosWLlyoU6dOlbofx44dU1xcXInlkydPVk5OjmbNmqV27dpp1qxZatOmjTZu3ChJSk5O1jXXXOOvc/HixTp+/LhuuOGGCu2HTj+/8+bNC3h++/fvr8LCQu3cudO/3iWXXBJQu6SAY8u3rPixVZ76SrN06VLde++9WrBggVq3bu3f72+++UYNGjQI2PedO3cGHJeSVKNGjaj4HGEAAID/JTRwAQCA6/Ts2VP9+/fX/fffX+I2j8dT4r+dnzx5ssR61apVC/jdcZygywoLC8+5P77PSC0sLNS1116r9evXB/xkZWWpZ8+e/vXj4+PLUKVKfEGVmZX7S6tmz56tU6dOqXHjxoqJiVFMTIxmzpyp119//axfBldaVvHl5X0cmzRpoq1bt2rGjBmqUaOGxo4dq549ewZ9jiQpMTGx1P1s0KCBbrjhBk2bNk2bN29WSkpKwOfejhkzRq+88oqOHTumuXPnatiwYapZs2aF9kOnn9+f/exnAc/thg0blJWVpRYtWgR9THyPVbBl5zq2zlVfcZs2bdLw4cM1ZcoU9evXL2C/k5OTSxyXW7du1T333BOwjcOHD6thw4Zn3S8AAAC4S0xV7wAAAEAwU6ZMUYcOHfxXGfo0bNhQOTk5AY3G9evXhy33k08+8TdjT506pczMTP9noHbq1Emvvfaa0tPTFRNT8WlUnTp1lJKSopUrVwY0fletWqXvfe97Zd7OqVOn9Kc//UnTpk0LaOhJ0g9/+EP95S9/0R133KHY2FgVFBQE3N6uXTvt3r1be/bs8V+Fu2nTJh09ejTg82grokaNGho0aJAGDRqkcePG+a8s7dSpU4l1O3bsqJycHB05ckT16tUrdZuxsbFq0aJFwBeKXX311YqPj9fMmTO1dOlSLV++vMz7Eewx6dSpkz7//HO1bNkypPorIlh9RX399de69tprNXToUN11110Bt3Xq1Ek5OTmKiYkJ+DK/4nbs2KHjx4+rY8eOYd9/AAAAVB4auAAAwJXat2+vn/zkJ3r22WcDlvfu3VtfffWVHnvsMV1//fV6++23tXTpUtWpUycsuTNmzFCrVq3Utm1bPfXUUzpy5IhGjRolSRo3bpxeeOEF/fjHP9Y999yjxMREbd++Xa+88opeeOEFeb3eMufcc889mjhxolq0aKEOHTpo7ty5Wr9+vf7yl7+UeRuLFy/WkSNHNHr0aNWtWzfgtuuvv16zZ8/WHXfcofT0dO3cuVPr169XamqqateurT59+uiSSy7RT37yE02fPl2nTp3S2LFj1atXr3N+BMTZzJs3TwUFBfr+97+vmjVr6qWXXlKNGjWUlpYWdP2OHTuqYcOG+uijjzRw4EB/Xa+88oqGDx+u1q1by8y0aNEiLVmyJOCLy7xer26++Wbdd999atmyZcDHX5xrP9LT07V8+XINHz5c1atXV2Jion7961+ra9euGjdunG655RbFx8dr8+bNWrZsWYnjMBRlra+ooUOHqkaNGnrooYeUk5PjX96wYUP16dNHGRkZGjJkiKZOnaoLL7xQ+/fv15IlSzRkyBD/87lixQo1b9484GpiAAAAuB8foQAAAFzrt7/9bYmPS2jbtq2ee+45zZgxQ5deeqlWr16tu+++O2yZU6ZM0dSpU3XppZdqxYoVevPNN5WYmChJSklJ0UcffaSCggL1799fF198sX7xi1+obt26AZ8JWxZ33nmnJkyYoAkTJqh9+/Z6++239fe//12tWrUq8zZmz56tPn36lGje6vQVuOvXr9fatWv1wx/+UFdddZUuv/xyNWzYUPPnz5fjOHrjjTdUr1499ezZU3369FHz5s21YMGCctVRXEJCgl544QV1795dl1xyid59910tWrRIDRo0CLq+1+vVqFGjAhrX7dq1U82aNTVhwgR16NBBXbt21auvvqo//vGPuummmwLuP3r0aJ04ccLfZC/rfkyaNEm7du1SixYt/B8pcMkll+jDDz9UVlaWevTooY4dO+rBBx9UcnJySI9JceWpz2f58uX6/PPPlZ6eruTkZP/Pnj175DiOlixZop49e2rUqFFq3bq1hg8frl27dvk/j1eS5s+fr1tuuSWstQAAAKDyOVb8ryIAAAAggg4cOKCLLrpImZmZpV6pW5qPPvpIvXv31t69ewOalQj073//W1deeaW2bdsWtOEPAAAA96KBCwAAgCr35ptvqn79+urRo0eZ1s/Pz9eePXt06623Kjk5uVwfPfG/6J133pGZqX///lW9KwAAACgnGrgAAAA478ybN0+jR49Whw4d9Pe//12NGzeu6l0CAAAAKgUNXAAAAAAAAABwKb7EDAAAAAAAAABcigYuAAAAAAAAALgUDVwAAAAAAAAAcCkauAAAAAAAAADgUjRwAQAAAAAAAMClaOACAAAAAAAAgEvRwAUAAAAAAAAAl6KBCwAAAAAAAAAuRQMXAAAAAAAAAFzq/wO0/zidrlJlTAAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 1400x700 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from pathlib import Path\n",
"import matplotlib.pyplot as plt\n",
"import pandas as pd\n",
"\n",
"# 1. Your specified directory path\n",
"target_dir = Path(\n",
" \"/home/tmlkyza/Documents/Universita/Master/nanopants/lcm/growth_Melting_Silver_ICO/growth_Melting_Silver_ICO_3269/GCN/quenchMeltingSims\"\n",
")\n",
"\n",
"# Initialize a list to store data from each file\n",
"data_summary = []\n",
"\n",
"# 2. Read and parse all .xyz files\n",
"for file_path in target_dir.glob(\"*.xyz\"):\n",
" with open(file_path, \"r\") as f:\n",
" lines = f.readlines()\n",
"\n",
" if not lines:\n",
" continue\n",
"\n",
" # The 1st line contains the total number of atoms\n",
" num_atoms = int(lines[0].strip())\n",
"\n",
" # Collect cnaps values (the last column, index -1)\n",
" # Skip the first two lines (header metadata)\n",
" cnaps_values = []\n",
" for line in lines[2:]:\n",
" parts = line.split()\n",
" if parts: # Ensure the line isn't empty\n",
" try:\n",
" # Convert float string to int (e.g., 14.000000 -> 14)\n",
" cnaps = int(float(parts[-1]))\n",
" cnaps_values.append(cnaps)\n",
" except (ValueError, IndexError):\n",
" continue\n",
"\n",
" if not cnaps_values:\n",
" continue\n",
"\n",
" # Count frequencies of each cnaps value\n",
" cnaps_series = pd.Series(cnaps_values)\n",
" cnaps_counts = cnaps_series.value_counts()\n",
"\n",
" # Calculate percentages based on total atom count from line 1\n",
" cnaps_percentages = (cnaps_counts / num_atoms)\n",
"\n",
" # Store results along with the atom number (X-axis value)\n",
" for cnaps_val, percentage in cnaps_percentages.items():\n",
" data_summary.append(\n",
" {\n",
" \"Atoms_Number\": num_atoms,\n",
" \"CNAPS_Value\": cnaps_val,\n",
" \"Percentage\": percentage,\n",
" }\n",
" )\n",
"\n",
"# 3. Create a DataFrame\n",
"df = pd.DataFrame(data_summary)\n",
"\n",
"if not df.empty:\n",
" # Pivot the data so:\n",
" # - Rows (Index) = Atoms_Number (X-axis)\n",
" # - Columns = CNAPS_Value (The stacks)\n",
" # - Values = Percentage (Y-axis)\n",
" # aggfunc='mean' handles cases if multiple files share the exact same atom count\n",
" df_pivot = df.pivot_table(\n",
" index=\"Atoms_Number\",\n",
" columns=\"CNAPS_Value\",\n",
" values=\"Percentage\",\n",
" aggfunc=\"mean\",\n",
" ).fillna(0)\n",
"# --- CUT DATA UP TO 50 ATOMS ---\n",
" # This filters the index (Atoms_Number) to only include values <= 50\n",
" df_pivot = df_pivot[df_pivot.index <= 60]\n",
" # Sort the index so the X-axis grows sequentially\n",
" df_pivot = df_pivot.sort_index()\n",
"\n",
" # 4. Plotting the Stacked Histogram / Bar Chart\n",
" # You can change the color map via `cmap` if you want a different palette (e.g., 'viridis', 'tab10')\n",
" ax = df_pivot.plot(kind=\"bar\", stacked=True, figsize=(14, 7), width=0.8)\n",
"\n",
" # Formatting the graph\n",
" plt.xlabel(\"Number of Atoms (System Size)\")\n",
" plt.ylabel(\"CNAPS#/Total Atoms\")\n",
" plt.title(\"Stacked Distribution of CNAPS Percentages by cluster size\")\n",
" plt.grid(axis=\"y\", linestyle=\"--\", alpha=0.5)\n",
"\n",
" # Place the legend outside the plot area so it doesn't cover data points\n",
" plt.legend(title=\"CNAPS Type\", bbox_to_anchor=(1.02, 1), loc=\"upper left\")\n",
"\n",
" # Optional: If you have too many unique atom numbers, the X-axis text can overlap.\n",
" # This line thins out the labels to show every 5th label (uncomment if needed):\n",
" # ax.set_xticklabels([label.get_text() if i % 5 == 0 else '' for i, label in enumerate(ax.get_xticklabels())])\n",
"\n",
" plt.tight_layout()\n",
" plt.show()\n",
"\n",
"else:\n",
" print(\"No valid data was extracted. Check if the directory contains .xyz files.\")"
]
},
{
"cell_type": "code",
"execution_count": 58,
"id": "6c3c00b8",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"--- Starting Stage 1: Processing Simulations ---\n",
"Stage 1 complete. Files written to GCN folders.\n",
"\n",
"--- Starting Stage 2: Aggregating & Averaging Statistical Runs ---\n",
"Total unique sizes found: 86\n",
"Filtering to display the first 50 sizes (From 14 to 60 atoms)\n",
"\n",
"--- Summary of Consolidated Statistical Averages (First 50 Sizes) ---\n",
" System Size CNAPS Type Average Percentage\n",
"0 14 14 0.571429\n",
"1 14 0 0.428571\n",
"2 15 0 0.866667\n",
"3 15 8 0.066667\n",
"4 15 14 0.066667\n",
"5 16 0 0.750000\n",
"6 16 14 0.250000\n",
"7 17 0 0.588235\n",
"8 17 14 0.352941\n",
"9 17 5 0.058824\n",
"10 18 0 0.611111\n",
"11 18 16 0.055556\n",
"12 18 2 0.166667\n",
"13 18 8 0.055556\n",
"14 18 11 0.055556\n",
"15 18 10 0.055556\n",
"16 19 14 0.210526\n",
"17 19 0 0.789474\n",
"18 20 0 0.550000\n",
"19 20 15 0.150000\n"
]
},
{
"data": {
"image/png": "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jNSxY8cq3GfXrl2qWbNmoHEBAAAAAAAAQLUV0MRt69attXLlStntdq/bCwoKtGLFCl1wwQXBxgcAAAAAAAAA1U5At0q47bbbdPvtt+uuu+7Siy++6LYtNzdXt99+u/bs2aMXXnjBqjgRYsOXz7C8z6yelndZ7cT88WUIem0dgj6rl16ZD1nbIa8VAAAqpX/WHGN5n1db3mP102XP6hD02jIEfVYv3PIDAKwX8MTt559/rldffVULFixQQkKCJKljx4769ddflZ+fr1tvvVXXXXed1fECAAAAAAAAwGkvoIlbSXrrrbfUvXt3zZw5Uz///LNM09R3332nc889V6NHj9bIkSOtjRQAAAAAUKmlpP1scY9dLe4PAICqI+CJW0kaMWKERowYoSNHjujgwYOqXbs2X0gGAAAAAAAAAEEKauLWITY2VrGxsVZ0BQA4zeTGfR3uEAAAAAAAqHKCmrjNz8/XokWL9MMPPygnJ0d16tTR+eefr/79+ys+Pt66KAEAAAAAAACgGgl44nbBggUaNWqUDh06JNM0ne2GYSghIUEvvfSSbrjhBqviBAAAAAAAAICgGIZR7raDBw8qISHhlMZTkYAmbhcvXqybbrpJMTExuvvuu9W1a1fVr19f2dnZWrNmjebMmaObbrpJtWrV0hVXXGF91AAAAAAAAABOqV9bnBvuEHTuxl+D7qNr16664447PNor2x0EApq4nTJlimrVqqV169apefPmbtsGDhyoUaNG6cILL9Tf/vY3Jm4BAPBTp7xFVvdocX8AAAAAUHWlp6frpptuCncYJ2UL5EE//fSTbrjhBo9JW4cWLVrohhtu0H//+99g4wMAAAAAAAAASx07dkyHDx8OdxgVCmjFbe3atU96v4eEhATVqVMn0LgAAAAAAPB09h/hjgAAUMW9//77mj9/voqLi5WYmKirr75aU6ZMUXJycrhDcxPQxO2VV16pJUuWaOrUqYqIiPDYXlRUpE8++URXXXWVFTECAACU66dG/cIdAgAAAIAqokOHDrruuuvUrFkzFRQUaOXKlZozZ46WL1+ub775Rg0aNAh3iE4B3Srh//7v/xQTE6PLL79c33zzjdu2tWvX6vLLL1dsbKyefvppq+IEAAAAAAAAgKCsW7dOjzzyiK6++moNGTJEr732mubOnavt27friSeeCHd4bgJacduuXTsdO3ZM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C3cIAAAAQJXm88TtnDlzQhsJqoWGd0dZ2+FGa7sDAAAAAAAAKgO/vpzMXz/88EMouwcAAAAAAACA05LlE7c5OTmaNWuWLrjgArVv397q7gEAAAAAAADgtOfXl5NVZOXKlZo9e7b++c9/qrCwUKZp6oILLrCqewAAAAAAAACoNoKauN25c6fmzJmjOXPmKCsrS5JUt25d3XnnnRo2bJhatWplVZwAAAAAAAAAUG34PXFbVFSkRYsWafbs2frss89UXFys6OhoXXvttXr//fd1zTXX6Nlnnw1NtAAAAAAAAABQDfg8cfvLL79o9uzZmjdvnvbv3y/TNNW5c2fdcsstGjRokBISEmSzhfS7zgAAAAAAAACgWvB54rZVq1YyDEOpqam68847dcstt6hp06ahjQ4AAAAAAABApfD1ol/CHYK69G8Z1OPz8vI0ffp0vfvuu8rKylJsbKyaN2+uu+66SzfddJNlcVrBr1slGIahjh07qlOnTkpPTw9dVAAAAAAAAABgIbvdrksvvVRr167VrbfeqtGjRys/P1/z5s3TzTffrN9++01PPvlkuMN08vneBq+99po6d+6shQsX6sorr1TDhg31wAMP6Pvvvw9thAAAAAAAAAAQpG+++UZff/21Ro8erdmzZ+uOO+7Q/fffr6+++krJycn6f//v/4U7RDc+T9zedttt+ve//62NGzfqwQcflGEYev7559WhQwe1atVK06ZNC22kAAAAAAAAABCgnJwcSVLDhg3d2mNjY1W3bl3FxcWFKTLv/P42sebNm+vvf/+7duzYoQ8//FB9+/bVpk2b9Pjjj8swDK1atUrz5s3TkSNHQhMxAAAAAAAAAPipY8eOql27tv7+97/rvffe0/bt2/Xrr7/q/vvv16ZNmzRp0qRwh+jGr3vcuoqIiNCAAQM0YMAA7dmzR3PnztWcOXOUmZmpW2+9VaNGjdINN9ygV155xdqIASDMLh/wjKX9ZVnaGwAAAAAA8CYxMVEfffSRRowYoYEDBzrbExIStGjRIvXr1y+s8ZXl94pbb5KTk/XYY49p06ZNWr16tW666SYVFRXptddes6J7AAAAAAAAAAha3bp11bZtWz300EP68MMP9frrr6tZs2YaOHCgli5dGu7w3AS84rY8Xbt2VdeuXTVz5kwtWLDA6u4BAAAAAAAAwG8//fSTOnfurOeff14jR450tg8ePFjnn3++brvtNmVlZSk6OjqscTpYPnHrUKtWLd1xxx2h6h6AhYYvn2Fpf1k9Le0OAAAAAAAgaNOnT1dhYaGuv/56t/bo6GgNGDBA06ZN08aNG/WXv/wlbDG68nniduHChQEdwPV+EQAAAACA09c/a46xtL+rLe0NAFDd7dy5U5J0/Phxj22OtqKiolMeV3l8nri94YYbZBiGX50bhsHELQAAAAAAAICwa9mypZYvX665c+fq0UcfdbYfPnxY7733nuLj43XeeeeFNUZXPk/cTpw40aeJW7vdrrfffltbtmwJNjYAAAAAAAAAsMSYMWP05ptvauzYsfrpp5908cUX6+DBg5o9e7b++OMPPfPMM4qJiQl3mE4+T9xOmjTppPssWbJE48aN05YtW1SrVi09/PDDAQe2YMECPfPMM/rll18UHx+vPn36aNq0aUpNTfXp8cXFxXr11Vc1Z84c/fLLLzJNU2lpaRo4cKAmTJgQcFyo/JqsuNjyPrN6W94lAAAAAABAldKlf8twhxCU1NRU/fjjj8rIyNDnn3+uDz/8UBERETr//PM1depUDRo0KNwhurHky8nWrl2rRx99VF9++aVq1Kih0aNHa8KECapXr15A/c2cOVP33nuvLrroIk2fPl379u3T888/rzVr1ujbb79Vw4YNK3z88ePHdc0112jZsmW64YYbNGzYMNlsNmVlZemPP/4IMEsAAAAAAAAAVVlKSopeeumlcIfhk6Ambjdt2qSxY8dq0aJFkqQbb7xRU6ZMUZMmTQLuc//+/Ro7dqzatWunVatWKTLyRIiXXXaZOnbsqIkTJ+q1116rsI8pU6bo008/1aeffqpLL7004FgAAAAAAAAAIBxsgTxo9+7duuOOO9S6dWt99NFH6tOnj77//nvNnz8/qElbSVq0aJHy8vI0evRo56StJLVv317dunXTwoULdezYsXIfn5+fr+eff15XXnmlLr30UpmmqcOHDwcVEwAAAAAAAACcSn6tuM3NzdW0adM0Y8YMFRQUqH379nr66afVo0cPywJat26dJKlLly4e27p06aLVq1dr48aNatOmjdfHf/nll8rNzVXHjh310EMP6dVXX1Vubq7q1q2rIUOG6Omnn1ZcXFy5xz969KiOHj3q/Dk3N1cquWducXGxJMkwDNlsNpmmTZLrF7aZMgy7TDOiTK92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iy/Wzp07NWbMGKWlpWnRokW64447tGvXLj3xxBMhjdUWyIO++uorPfDAA9qzZ4/X7Xv27NEDDzygtWvXBhsfAAAAAAAAAFhiy5Yt2r9/vz777DM1bNiwwn2ffvppbd68WfPnz9dTTz2lESNGaMmSJbryyis1depUbdu2LaSxBjRx+9xzz2nx4sVKTk72uj05OVlLlizR9OnTg40PAAAAAAAAACyRnp7u875vvfWW0tLSdM0117i1P/DAAzp+/LjefffdEERYKqCJ22+//VYXX3xxhft069aNFbcAAAAAAAAAqpw9e/Zo+/bt6ty5s8e2zp07yzAMrVu3LqQxBDRx++eff6pRo0YV7pOcnKw///wz0LgAAAAAAAAAICx27twpSUpJSfHYFh0draSkJO3YsSOkMQQ0cZuQkKA//vijwn1+//131axZM9C4AAAAAAAAACAsCgoKpJJJWm9iYmKc+4RKQBO3nTt31j//+U9t377d6/Y//vhDH330kbp06RJsfAAAAAAAAABwSsXFxUmSjh496nX7kSNHnPuESkATtw888IAKCgp00UUX6c0339Tu3bslSbt379Ybb7yhiy66SEeOHNGDDz5odbwAAAAAAAAAEFKO28R6ux1CYWGh9u/f7/U2ClaKDORBXbt21YwZMzRmzBgNGzZMkmQYhkzTlCTZbDa98MIL6tatm7XRAgAAAAAAAECIJScnKyUlRf/5z388tq1du1amaapDhw4hjSGgFbeSdM8992jDhg268847dcEFFyg9PV0XXHCB7rrrLm3YsEH33HOPtZECAAAAAAAAwCkyePBgbdu2TR9++KFb+3PPPafIyEgNGjQopMcPaMWtQ6tWrfTSSy9ZFw0AAAAAAAAAhMi8efP0+++/S5L27t2rY8eOacqUKZKkhIQEjRo1yrnvY489pvfff18333yz1q9fr7S0NC1atEhLlizRhAkTlJ6eHtJYg5q4BQAAAAAAAFA9pEzrGu4QgjZ79mytXr3arW3ChAmSpNTUVLeJ27p16+rLL7/UuHHj9Oqrryo3N1dNmzbVyy+/rDvvvDPksQY9cbt9+3bt2rWr3G9Y4z63AAAAAAAAACqDVatW+bV/gwYNNGfOnJDFU5GAJ24XL16shx9+WJmZmRXuV1xcHOghAAAAAAAAAKBaCujLyVatWqWrr75aeXl5GjVqlEzTVLdu3XTHHXeoZcuWMk1TV1xxhSZOnGh9xAAAAAAAAABwmgto4nbatGmqWbOm1q9frxdeeEGS1KNHD7388sv673//q6lTp+rzzz9X//79rY4XAAAAAAAAAE57AU3cfvvttxowYIDq16/vbLPb7ZIkwzA0duxYtW3blhW3AAAAAAAAABCAgCZuCwoK1KhRI+fP0dHRys3NddunU6dO+uqrr4KPEAAAAAAAAACqmYAmbpOTk7V3717nz40aNdL//vc/t33279/PF5MBAAAAAAAAQAACmrj9y1/+op9//tn5c48ePbRy5Uq98847ys/P17/+9S+9++67atOmjZWxAgAAAAAAAEC1ENDE7VVXXaUffvhBv//+uyRp3LhxqlmzpoYMGaLatWurb9++Ki4u1pQpU6yOFwAAAAAAAABOe5GBPOi2227Tbbfd5vw5LS1N3377rZ577jlt3bpVqampuvPOO3X++edbGSsAAAAAAAAAVAsBTdx6c/bZZ+ull16yqjsAAAAAAAAAqLYCulVCWQcOHND27dut6AoAAAAAAAAAqr2AJ25zcnJ03333qX79+jrjjDOUlpbm3PbNN9+ob9++Wr9+vVVxAgAAAAAAAEC1EdCtEg4cOKAuXbrot99+U7t27XTGGWfo119/dW5v06aNvvrqK7311lu64IILrIwXAAAAAAAAQBgULv0p3CEo5vLWQT0+IyND33//vdavX69t27YpNTVVWVlZXvddt26d5s+fr/Xr1+uHH35QQUGB5syZo1tvvTWoGHwV0IrbSZMm6bffftOCBQv03Xff6frrr3fbHhsbq0suuURffPGFVXECAAAAAAAAQFDGjRunL774Qmeffbbq1q1b4b6ffvqpXnrpJR06dEjnn3/+KYvRIaCJ248//lj9+vXToEGDyt0nNTVVO3bsCCY2AAAAAAAAALDMli1btH//fn322Wdq2LBhhfveddddys3N1f/+9z/df//9pyxGh4Ambnfv3q2WLVtWuE9MTIzy8/MDjQsAAAAAAAAALJWenu7zvvXr11d8fHxI46lIQBO39erV0/bt2yvcZ+PGjWrQoEGgcQEAAAAAAABAtRXQxG23bt308ccfa+fOnV63//LLL1q2bJl69+4dbHwAAAAAAAAAUO0ENHH7+OOPq6ioSBdddJHefvtt7du3T5L066+/avbs2erZs6eio6P18MMP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AAAAAAAAgKUck7b+Onz4sI4fP255PBUJaOLWF4WFhYqM5E4MAAAAAAAAAKquv/zlL6pdu7ZiYmLUvn17vfvuu6fkuAHPrBqG4bXdNE3t2LFDn376qRo2bBhMbAAAAAAAAAAQFgkJCbr99tt10UUXqV69etqyZYtmzpypG264QZmZmRo/fnxIj+/zxK3NZnObrJ00aZImTZpU7v6maerRRx8NPkIAAAAAAAAAOMXGjBnj0TZy5Eh16NBBkydP1s0336zU1NSQHd/nidtu3bo5J27XrFmjxo0be70pb0REhBITE9WzZ0+NGDHC2mgBAAAAAAAAIExiY2P18MMP69Zbb9Xy5ctDOv/p88TtqlWrnP9vs9k0bNgwTZw4MVRxAQAAAAAAAECl41jMunfv3pAeJ6B73NrtdusjAQAAAAAAAIBKLjMzU5KUnJwc0uPYAnnQjh079PHHH+vQoUNetx88eFAff/yxdu7cGWx8AAAAAAAAAHBKFRUVaf/+/R7thw4dUkZGhqKionTppZeGNIaAVtxOnTpVCxcu1K5du7xuj4uL02233aYbbrhBM2fODDZGAAAAAAAAAAjavHnz9Pvvv0sltzo4duyYpkyZIklKSEjQqFGjJEl5eXlKSUnRNddco9atW6tevXraunWrXn/9df355596/vnn1ahRo5DGGtDE7eeff66//vWvio6O9ro9Ojpaf/3rX7VixYpg4wMAAAAAAABQCezpcX64Qwja7NmztXr1are2CRMmSJJSU1OdE7exsbEaMmSI1q1bp08//VR5eXmqW7euLrzwQo0ZM0a9evUKeawBTdzu3LlT1157bYX7pKamavHixYHGBQAAAAAAAACWWrVqlU/7RUdH67XXXgt5PBUJ6B63UVFRys3NrXCf3NxcGYYRaFwAAAAAAAAAUG0FNHHbpk0bLV68WEePHvW6vbCwUB9//LFat24dbHwAAAAAAAAAUO0ENHF72223aceOHbrqqqu0detWt21btmxR//79tWvXLt1+++1WxQkAAAAAAAAA1UZA97gdOnSoli5dqoULF6pFixZKS0tTo0aNtHPnTm3btk1FRUUaNGiQhg0bZn3EAAAAAAAAAHCaC2jiVpLeeecddevWTS+99JJ+/fVXZWZmSpJatmype+65R3fddZeVcQIAAAAAAABAtRHwxK0k3X333br77rtVUFCg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se0xp61fY+U838vbfNbflc732lWa/xy2dWvsnZ3v5c06StI4/2HXUpTMKaecUiQp1qxZ02TfjTfeWCQpZsyYsdnjr7vuuiJJMXPmzCb7nnzyySJJcemll272+IkTJxZv1pimaZqmaZqmaZqmaZqm7dJt8eLF25DU0ZJKd8XtmjVrkiSdO3dusq9Lly6N+uyI48ePH59LLrmk/ueNGzdm+fLl2XPPPd0Xl1JauXJl9ttvvyxevDg9evRo6eEAO4nah7ZJ7UPbo+6hbdoetV8URVatWpV99tlnu4+PnaN0wW23bt2SN29Z0LVr10b71q5d26jP2x2/qS05vnPnzk1C3169em3VHKAl9OjRw4kctEFqH9omtQ9tj7qHtmlba79nz57bdTzsXKX7crJ99903SbJkyZIm+55//vkkSd++fXfY8QAAAAAALa10we2QIUOSJA888ECTfQ888EB22223HHLIIe/4+IZ9AAAAAADKqHTB7WmnnZZu3brlBz/4QV5//fX67Q8//HDmzp2bs846K506dUqSvPjii1m4cGGje9YOGDAgRx55ZH75y19m8eLF9dtXrlyZW265JQMGDMjQoUN38qxgx+ncuXMmTpzY7H2dgdZL7UPbpPah7VH30DapfZKkUhRF0dKD2NT3v//9jBs3Lh/60IdyzjnnZNmyZbnhhhvSsWPHPPzww/W3Qzj33HMzbdq0zJ49O8cdd1z98fPnz89xxx2XPn36ZOzYsenUqVOmTp2ap556KjNnzszHPvaxFpwdAAAAAMBbK92XkyXJl7/85fTu3TvXX399xo0bl27duuXEE0/MtddeWx/avpUPfvCDmTt3bi6//PJcddVV2bBhQwYPHpxZs2Y1CngBAAAAAMqolFfcAgAAAAC0ZaW7xy0AAAAAQFsnuAUAAAAAKBnBLZTYP/7xj1x55ZUZOnRo3v3ud2f33XfP4YcfnmuuuSarV69u0v+ll17K5z//+fTp0yddunTJwIED85Of/KRFxg68c08//XRGjRqVQw89ND179kz37t1z6KGH5qtf/WqWLl3apL/ah9ZpzZo1OeCAA1KpVHLBBRc02a/2oXWoVCqbbStWrGjUV91D61JTU5Px48fn4IMPTpcuXbLHHntk2LBhueeeexr1U/ttVym/nAx4w6233prJkyfn1FNPzciRI9OpU6fMnj07V1xxRe66667MmzcvXbt2TZKsWLEiRx99dJ5//vmMGzcuVVVVuffee3PeeeflhRdeyMSJE1t6OsAWWrJkSZYuXZozzjgjffv2TYcOHfL4449n6tSpueOOO7JgwYL06dMnUfvQql155ZV5+eWXm92n9qF1OeaYY3Leeec12d69e/f6f6t7aF0WL16c448/PsuXL8/nPve5HHbYYVmzZk0WLlyY5557rr6f2m/jCqC0HnrooaK6urrJ9ssvv7xIUkyePLl+2ze/+c0iSXH33Xc36nvqqacWHTt2LJ555pmdMmZgx7nzzjuLJMU111xTv03tQ+v06KOPFu3bty+uu+66Iklx/vnnN9qv9qH1SFJ89rOffdt+6h5al2OPPbbYa6+9iueee+4t+6n9ts2tEqDEBg8enF69ejXZftZZZyVJHn/88fptP/vZz1JVVZXhw4c36nvJJZfktddey5133rkTRgzsSFVVVUmS6urq+m1qH1qfDRs25Itf/GJOOumkjBgxotk+ah9an9ra2qxatWqz+9U9tB5//vOfc//99+cb3/hG9ttvv7z++uvN3g4xar/NE9zCLuj5559PkrznPe9JkixdujSLFy/OUUcd1aTvUUcdlUqlkgcffHCnjxPYNuvWrcuyZcuyZMmSzJo1KxdeeGGS5BOf+ESi9qHV+t73vpe///3vmTx5crP71T60Pr/61a/SrVu39OjRI3vuuWfGjBnT6L726h5al5kzZyZJDjjggAwfPjxdu3bNbrvtlv3337/R+7/axz1uYRezYcOGTJo0KR06dMioUaOSBkFu3759m/Tv3LlzevfunSVLluz0sQLb5uabb87FF19c//N+++2XadOm5fjjj0/UPrRKzz77bCZOnJgJEyakqqoqixYtatJH7UPrMmTIkJx55pk58MADs2bNmsyePTu33XZb/vCHP2T+/PnZe++91T20MgsXLkySjBkzJlVVVbnllltSqVQyZcqUXHzxxamurs6ECRPUPoJb2NWMHTs28+bNy7e+9a0cfPDByZvfOp03X7ib06VLl/o+wK7j9NNPzyGHHJJXX301CxYsyPTp0xvdJkHtQ+tz4YUXpn///vna17622T5qH1qXTa+WGzVqVI499tiMHj06EydOzI9//GN1D61M3W1Runfvnrlz59bX9tlnn53DDjss1157bS666CK1j1slwK7kiiuuyJQpUzJmzJhcdtll9du7deuWJFm/fn2zx61du7a+D7Dr6Nu3b0444YScfvrpufrqq3P77bfn61//eq699tpE7UOr8/Of/zy//e1vc9NNN6Vjx46b7af2ofU755xzsv/++2fGjBmJuodWp2vXrkmSkSNHNgplO3XqlFGjRmXt2rWZP3++2kdwC7uKq666Ktdcc01Gjx6dqVOnplKp1O/bd999k6TZ/yKxbt26vPLKK83+1wpg1zJw4MB84AMfyJQpUxK1D61KbW1tvvKVr+SUU05Jv379smjRoixatKi+vletWpVFixalpqZG7UMbsf/+++fll19OvOdDq1NXr3vvvXeTfXXbli9frvYR3MKu4Oqrr87VV1+dz3zmM7ntttvSrl3j0t1rr73St2/f/OUvf2ly7Lx581IURYYMGbITRwzsKGvXrs3y5csTtQ+typo1a/Lf//439913X6qqqurbMccck7x5NW5VVVVuuukmtQ9tQFEU+de//pW99tor8Z4Prc7QoUOTJIsXL26y77nnnkuS9OnTR+0juIWymzRpUq666qqMGjUqt99+e5PQts7IkSPzn//8J7/+9a8bbf/ud7+bDh065Oyzz95JIwa2VcNvkW5o9uzZeeKJJ+pP9KL2odXo3r177rnnniZt6tSpSZKTTjop99xzT0aMGJGofWg1XnrppWa3//CHP8ySJUvyyU9+sn6buofW47TTTkuPHj3y05/+NDU1NfXbV61alWnTpuVd73pXjjrqqETtt3mVoiiKlh4E0Lwbb7wxF110Ufr165dJkyalffv2jfb36dMnJ554YpKkuro6gwcPztKlSzNu3LhUVVXl3nvvzX333ZcJEyZk0qRJLTQLYGudccYZefHFF/ORj3wk/fv3z7p16/LII4/kF7/4Rbp165Y5c+bk8MMPT9Q+tHqLFi1KVVVVzj///PzoRz+q3672oXUYN25cZs2alVNOOSX9+/fP2rVrM2fOnEyfPj0HHnhgHnjggfTu3TtR99Dq3HrrrfnCF76Qgw46KGPGjEmlUsktt9ySp59+OrfffntGjx6dqP02T3ALJXbuuedm2rRpm91/7LHHZs6cOfU/v/jii7nssssyY8aMrFy5Mu9973tz0UUX5YILLthJIwa2h7vuuivTpk3LY489lpdffjmVSiX9+/fPiSeemEsvvTT9+vVr1F/tQ+u1ueA2ah9ahd/85jeZMmVKnnjiiSxbtiyVSiUDBgzI6aefnksvvTQ9e/Zs1F/dQ+syffr0fOc738lf//rXFEWRI444IuPHj8/HP/7xRv3UftsluAUAAAAAKBn3uAUAAAAAKBnBLQAAAABAyQhuAQAAAABKRnALAAAAAFAyglsAAAAAgJIR3AIAAAAAlIzgFgAAAACgZAS3AAAAAAAlI7gFAAAAACgZwS0AAAAAQMkIbgEA2GkGDhyYSqWSzp07p6ampsn+oijSq1ev7Lnnni0yPgAAKAvBLQAAO8W6devy1FNPJUlqa2szffr0Jn3+/e9/p6amJoMGDWqBEQIAQHkIbgEA2Cn+9re/5fXXX89JJ52Ujh075u67727S55FHHkkSwS0AAG1eh5YeAAAAbcOjjz6aJDnhhBNSFEV+97vf5dVXX81uu+1W36cuuD3iiCNabJwAAFAGrrgFAGCnaHg17fDhw7Nu3brMnDmzUZ+6cNcVtwAAtHWVoiiKlh4EAACt36BBg7JgwYJUV1dn/fr12WeffXLmmWfmzjvvrO+zxx57ZOPGjamurk6lUmnR8QIAQEtyxS0AADtcbW1tnnjiiRxwwAHp1atX+vTpk6OPPjozZszI2rVrkyTPPPNMqqurM2jQIKEtAABtnuAWAIAd7rHHHstrr73W6BYII0aMyOrVq/P73/8+cZsEAABoRHALAMAOVxfKNvzSseHDh6dSqeTuu+9OfDEZAAA0IrgFAGCHa/jFZHX69u2bIUOGZPr06amtrW22DwAAtFWCWwAAdrjN3QZhxIgRqampyaxZs7JgwYLsvvvuOeigg1polAAAUB6CWwAAdqjXXnstjz/+ePr165fevXs32jdixIgkyfXXX59ly5bl8MMP98VkAAAguAUAYEd78skns379+mZvgTBgwIC8//3vz5/+9KfE/W0BAKCe4BYAgB3q7e5dW3fV7Vv1AQCAtqZSFEXR0oMAAAAAAOD/XHELAAAAAFAyglsAAAAAgJIR3AIAAAAAlIzgFgAAAACgZAS3AAAAAAAlI7gFAAAAACgZwS0AAAAAQMkIbgEAAAAASkZwCwAAAABQMoJbAAAAAICSEdwCAAAAAJSM4BYAAAAAoGT+B8VjhhkkGmiVAAAAAElFTkSuQmCC",
"text/plain": [
"<Figure size 1400x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import sys\n",
"from pathlib import Path\n",
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"from collections import Counter\n",
"\n",
"# ==============================================================================\n",
"# 0. DEFINE ENVIRONMENT & PATHS\n",
"# ==============================================================================\n",
"local_packages_path = Path(\"/home/tmlkyza/Documents/Universita/Master/nanopants/lcm/pySNOW\")\n",
"sys.path.append(str(local_packages_path.resolve()))\n",
"\n",
"from snow.io.xyz import read_xyz, write_xyz\n",
"from snow.descriptors.coordination import coordination_number\n",
"from snow.descriptors import cna\n",
"\n",
"alat = 4.087077141 \n",
"cutoff = 0.85 * alat\n",
"root_dir = Path('.') \n",
"\n",
"statistical_runs = [\n",
" p for p in root_dir.iterdir()\n",
" if p.is_dir() and any(sub.is_dir() and sub.name == 'quenchMeltingSims' for sub in p.iterdir())\n",
"]\n",
"\n",
"def FileOut(file, subDirName, filename):\n",
" run_folder = file.parent \n",
" process_folder = run_folder.parent \n",
" irand_folder = process_folder.parent \n",
"\n",
" output_dir = irand_folder / subDirName\n",
" output_dir.mkdir(parents=True, exist_ok=True)\n",
" return output_dir / filename\n",
"\n",
"# ==============================================================================\n",
"# STAGE 1: COMPUTE & WRITE CNAPS TO GCN FOLDER\n",
"# ==============================================================================\n",
"print(\"--- Starting Stage 1: Processing Simulations ---\")\n",
"\n",
"for irand in statistical_runs:\n",
" quench_dir = irand / \"quenchMeltingSims\"\n",
" if not quench_dir.exists():\n",
" continue\n",
" \n",
" for run_folder in quench_dir.iterdir():\n",
" if not run_folder.is_dir():\n",
" continue\n",
" \n",
" out_files = list(run_folder.glob('out*.xyz'))\n",
" \n",
" if out_files:\n",
" highest_out = max(out_files, key=lambda f: int(f.stem[3:]))\n",
" el, coords = read_xyz(highest_out)\n",
" cns = coordination_number(coords, cutoff)\n",
" cnaps = cna.cnap_peratom(coords, cutoff)\n",
" \n",
" output_file_path = FileOut(highest_out, \"GCN\", f\"{run_folder.name}.xyz\")\n",
" write_xyz(output_file_path, el, coords, additional_data={\"cns\": cns, \"cnaps\": cnaps})\n",
"\n",
"print(\"Stage 1 complete. Files written to GCN folders.\")\n",
"\n",
"# ==============================================================================\n",
"# STAGE 2: READ GCN FOLDERS, AVERAGE FREQUENCIES, AND COMPUTE STATS\n",
"# ==============================================================================\n",
"print(\"\\n--- Starting Stage 2: Aggregating & Averaging Statistical Runs ---\")\n",
"\n",
"master_data = {}\n",
"\n",
"for irand in statistical_runs:\n",
" gcn_dir = irand / \"GCN\"\n",
" if not gcn_dir.exists():\n",
" continue\n",
" \n",
" irand_name = irand.name\n",
" \n",
" for gcn_file in gcn_dir.glob(\"*.xyz\"):\n",
" with open(gcn_file, 'r') as f:\n",
" lines = f.readlines()\n",
" \n",
" if not lines:\n",
" continue\n",
" \n",
" try:\n",
" num_atoms = int(lines[0].strip())\n",
" except ValueError:\n",
" continue \n",
" \n",
" cnaps_in_file = []\n",
" for line in lines[2:2 + num_atoms]:\n",
" parts = line.split()\n",
" if parts:\n",
" try:\n",
" cnap_value = int(float(parts[-1]))\n",
" cnaps_in_file.append(cnap_value)\n",
" except ValueError:\n",
" continue\n",
" \n",
" if num_atoms not in master_data:\n",
" master_data[num_atoms] = {}\n",
" \n",
" if irand_name not in master_data[num_atoms]:\n",
" master_data[num_atoms][irand_name] = Counter()\n",
" \n",
" master_data[num_atoms][irand_name].update(cnaps_in_file)\n",
"\n",
"all_unique_sizes = sorted(master_data.keys())\n",
"first_50_sizes = set(all_unique_sizes[:47])\n",
"\n",
"print(f\"Total unique sizes found: {len(all_unique_sizes)}\")\n",
"print(f\"Filtering to display the first 50 sizes (From {min(first_50_sizes)} to {max(first_50_sizes)} atoms)\")\n",
"\n",
"final_averaged_records = []\n",
"\n",
"for num_atoms, irand_dict in sorted(master_data.items()):\n",
" if num_atoms not in first_50_sizes:\n",
" continue \n",
" \n",
" cnap_percentages_per_seed = {}\n",
" \n",
" for irand_name, counts in irand_dict.items():\n",
" total_cnaps_counted = sum(counts.values())\n",
" if total_cnaps_counted == 0:\n",
" continue\n",
" \n",
" for cnap_type, occurencies in counts.items():\n",
" pct = occurencies / total_cnaps_counted\n",
" \n",
" if cnap_type not in cnap_percentages_per_seed:\n",
" cnap_percentages_per_seed[cnap_type] = []\n",
" cnap_percentages_per_seed[cnap_type].append(pct)\n",
" \n",
" for cnap_type, pct_list in cnap_percentages_per_seed.items():\n",
" total_seeds_for_size = len(irand_dict)\n",
" missing_seeds = total_seeds_for_size - len(pct_list)\n",
" full_pct_list = pct_list + [0.0] * missing_seeds\n",
" \n",
" avg_pct = np.mean(full_pct_list)\n",
" \n",
" final_averaged_records.append({\n",
" \"System Size\": num_atoms,\n",
" # --- FIXED: Store purely as an integer to maintain numerical sorting ---\n",
" \"CNAPS Type\": int(cnap_type), \n",
" \"Average Percentage\": avg_pct\n",
" })\n",
"\n",
"df_results = pd.DataFrame(final_averaged_records)\n",
"print(\"\\n--- Summary of Consolidated Statistical Averages (First 50 Sizes) ---\")\n",
"print(df_results.head(20))\n",
"\n",
"# ==============================================================================\n",
"# STAGE 3: VISUALIZATION (STAKED BAR CHART)\n",
"# ==============================================================================\n",
"if not df_results.empty:\n",
" # Pivot the data \n",
" df_pivot = df_results.pivot(index=\"System Size\", columns=\"CNAPS Type\", values=\"Average Percentage\").fillna(0)\n",
" \n",
" # --- FIXED: Explicitly sort columns numerically so 2 comes before 10 ---\n",
" df_pivot = df_pivot.reindex(columns=sorted(df_pivot.columns))\n",
" \n",
" # Render the bar chart\n",
" ax = df_pivot.plot(kind=\"bar\", stacked=True, figsize=(14, 6), width=0.8, cmap=\"tab20\")\n",
"\n",
" plt.xlabel(\"$N$\", fontsize=14)\n",
" plt.ylabel(\"Fractions of each CNAP type\", fontsize=14)\n",
" #plt.title('Stacked Distribution of CNAPs', fontsize=12, fontweight='bold', pad=15)\n",
" plt.grid(axis=\"y\", linestyle=\"--\", alpha=0.5)\n",
" plt.tick_params(axis='both', which='major', labelsize=13)\n",
"\n",
" # Updated Legend Title to match plain numbers\n",
" #plt.legend(title=\"CNAP types\", bbox_to_anchor=(1.02, 1), loc=\"upper left\", fontsize=13)\n",
" legend=plt.legend(title=\"CNAP types\", loc=\"upper left\", bbox_to_anchor=(1.0,1.02), fontsize=12)\n",
"\n",
" plt.setp(plt.gca().get_legend().get_texts(), fontsize='13') #legend 'list' fontsize\n",
" \n",
" # --- Align ticks with actual multiples of 10 ---\n",
" data_index_floats = df_pivot.index.astype(float)\n",
" min_val = int(data_index_floats.min())\n",
" max_val = int(data_index_floats.max())\n",
" \n",
" start_tick = min_val + (10 - min_val % 10) if min_val % 10 != 0 else min_val\n",
" target_values = np.arange(start_tick, max_val + 1, 10)\n",
" \n",
" tick_indices = [np.where(data_index_floats == val)[0][0] for val in target_values if val in data_index_floats]\n",
" tick_labels = [int(data_index_floats[i]) for i in tick_indices]\n",
" \n",
" ax.set_xticks(tick_indices)\n",
" ax.set_xticklabels(tick_labels, rotation=0) # Kept at 0 rotation since 10-step numbers fit comfortably\n",
" # --------------------------------------------------------\n",
" \n",
" plt.tight_layout()\n",
" \n",
" \n",
" output_img = \"CNAPSperSize.png\"\n",
" plt.savefig(output_img, dpi=300)\n",
" plt.show()\n",
"else:\n",
" print(\"No structural data resolved for the selected subset.\")"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "676a4d41",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"--- Cluster Configurations Ranked by Custom Structural Purity Score (Strict Max Size 50) ---\n",
" System Size Diversity (Entropy) Non-Zero Concentration Custom Score\n",
" 14 0.9852 0.5714 0.5800\n",
" 21 0.9587 0.3810 0.3974\n",
" 17 1.2210 0.4118 0.3372\n",
" 16 0.8113 0.2500 0.3082\n",
" 28 0.7496 0.2143 0.2859\n",
" 27 1.0378 0.2963 0.2855\n",
" 19 0.7425 0.2105 0.2835\n",
" 24 1.4136 0.3750 0.2653\n",
" 38 0.9089 0.2368 0.2606\n",
" 37 1.4042 0.3514 0.2502\n",
" 40 0.6098 0.1500 0.2460\n",
" 43 0.5830 0.1395 0.2393\n",
" 22 0.5746 0.1364 0.2373\n",
" 30 1.4256 0.3333 0.2338\n",
" 20 1.9815 0.4500 0.2271\n",
" 50 0.5294 0.1200 0.2267\n",
" 60 0.8853 0.2000 0.2259\n",
" 36 0.7584 0.1667 0.2198\n",
" 29 0.7877 0.1724 0.2189\n",
" 58 0.9509 0.2069 0.2176\n",
" 18 1.7917 0.3889 0.2171\n",
" 61 0.8369 0.1803 0.2155\n",
" 56 0.8343 0.1786 0.2140\n",
" 42 0.9046 0.1905 0.2106\n",
" 57 1.0121 0.2105 0.2080\n",
" 35 0.6948 0.1429 0.2056\n",
" 23 0.4262 0.0870 0.2040\n",
" 63 0.8595 0.1746 0.2032\n",
" 33 1.5280 0.3030 0.1983\n",
" 44 1.5061 0.2955 0.1962\n",
" 47 2.1931 0.4255 0.1940\n",
" 41 0.8948 0.1707 0.1908\n",
" 15 0.6998 0.1333 0.1905\n",
" 45 1.2843 0.2444 0.1903\n",
" 51 0.9276 0.1765 0.1902\n",
" 49 1.7223 0.3265 0.1896\n",
" 62 1.9577 0.3710 0.1895\n",
" 52 1.3200 0.2500 0.1894\n",
" 48 1.5414 0.2917 0.1892\n",
" 25 0.6396 0.1200 0.1876\n",
" 39 0.7283 0.1282 0.1760\n",
" 34 1.0108 0.1765 0.1746\n",
" 59 1.2988 0.2203 0.1697\n",
" 46 0.6614 0.1087 0.1643\n",
" 31 0.4096 0.0645 0.1575\n",
" 32 0.3998 0.0625 0.1563\n",
" 53 0.7267 0.1132 0.1558\n",
" 55 0.3555 0.0545 0.1534\n",
" 54 0.8463 0.1296 0.1532\n",
" 26 -0.0000 0.0000 0.0000\n"
]
}
],
"source": [
"# ==============================================================================\n",
"# CELL: SCORE CLUSTERS (LOW DIVERSITY & HIGH NON-ZERO CNAP FREQUENCIES)\n",
"# ==============================================================================\n",
"import numpy as np\n",
"\n",
"# 1. Filter out system sizes above 50\n",
"df_filtered = df_results[(df_results[\"System Size\"] >= 14) & (df_results[\"System Size\"] <= 63)].copy()\n",
"if not df_filtered.empty:\n",
" scores_record = []\n",
" \n",
" # Group by system size to look at the full distribution of each cluster\n",
" for num_atoms, group in df_filtered.groupby(\"System Size\"):\n",
" # Extract types and percentages\n",
" group = group[group[\"Average Percentage\"] > 0] # drop 0% occurrences for entropy math\n",
" \n",
" percentages = group[\"Average Percentage\"].values\n",
" types = group[\"CNAPS Type\"].values\n",
" \n",
" # Calculate Shannon Entropy (measures diversity/fragmentation across ALL types)\n",
" entropy = -np.sum(percentages * np.log2(percentages))\n",
" \n",
" # Calculate the sum of squares of ONLY non-zero CNAPs\n",
" non_zero_sum_squares = 0.0\n",
" for pct, cnap_type in zip(percentages, types):\n",
" if cnap_type != \"cnap_0\":\n",
" #non_zero_sum_squares += pct **2 \n",
" non_zero_sum_squares += pct \n",
" \n",
" # Calculate the custom score (higher score = better)\n",
" # We add 1e-6 to avoid division by zero if entropy is perfectly 0\n",
" score = non_zero_sum_squares / (entropy + 1e-6)\n",
" \n",
" scores_record.append({\n",
" \"System Size\": num_atoms,\n",
" \"Non-Zero Concentration\": non_zero_sum_squares,\n",
" \"Diversity (Entropy)\": entropy,\n",
" \"Custom Score\": score\n",
" })\n",
" \n",
" df_scores = pd.DataFrame(scores_record)\n",
" \n",
" # 2. Sort by Custom Score in descending order (highest score / best configurations first)\n",
" df_scores_sorted = df_scores.sort_values(by=\"Custom Score\", ascending=False)\n",
" \n",
" print(\"--- Cluster Configurations Ranked by Custom Structural Purity Score (Strict Max Size 50) ---\")\n",
" print(df_scores_sorted[[\"System Size\", \"Diversity (Entropy)\", \"Non-Zero Concentration\", \"Custom Score\"]].to_string(\n",
" index=False, \n",
" formatters={\n",
" \"Diversity (Entropy)\": lambda x: f\"{x:.4f}\",\n",
" \"Non-Zero Concentration\": lambda x: f\"{x:.4f}\",\n",
" \"Custom Score\": lambda x: f\"{x:.4f}\"\n",
" }\n",
" ))\n",
"else:\n",
" print(\"No data found. Verify Stage 2 executed successfully.\")"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "e17fc955",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"--- Cluster Configurations Ranked by Custom Purity Score (Sizes 30 to 50) ---\n",
" System Size Diversity (Entropy) Non-Zero Concentration Custom Score\n",
" 14 0.9852 0.5714 0.5800\n",
" 21 0.9587 0.3810 0.3974\n",
" 17 1.2210 0.4118 0.3372\n",
" 16 0.8113 0.2500 0.3082\n",
" 28 0.7496 0.2143 0.2859\n",
" 27 1.0378 0.2963 0.2855\n",
" 19 0.7425 0.2105 0.2835\n",
" 24 1.4136 0.3750 0.2653\n",
" 38 0.9089 0.2368 0.2606\n",
" 37 1.4042 0.3514 0.2502\n",
" 40 0.6098 0.1500 0.2460\n",
" 43 0.5830 0.1395 0.2393\n",
" 22 0.5746 0.1364 0.2373\n",
" 30 1.4256 0.3333 0.2338\n",
" 20 1.9815 0.4500 0.2271\n",
" 50 0.5294 0.1200 0.2267\n",
" 60 0.8853 0.2000 0.2259\n",
" 36 0.7584 0.1667 0.2198\n",
" 29 0.7877 0.1724 0.2189\n",
" 58 0.9509 0.2069 0.2176\n",
" 18 1.7917 0.3889 0.2171\n",
" 61 0.8369 0.1803 0.2155\n",
" 56 0.8343 0.1786 0.2140\n",
" 42 0.9046 0.1905 0.2106\n",
" 57 1.0121 0.2105 0.2080\n",
" 35 0.6948 0.1429 0.2056\n",
" 23 0.4262 0.0870 0.2040\n",
" 63 0.8595 0.1746 0.2032\n",
" 33 1.5280 0.3030 0.1983\n",
" 44 1.5061 0.2955 0.1962\n",
" 47 2.1931 0.4255 0.1940\n",
" 41 0.8948 0.1707 0.1908\n",
" 15 0.6998 0.1333 0.1905\n",
" 45 1.2843 0.2444 0.1903\n",
" 51 0.9276 0.1765 0.1902\n",
" 49 1.7223 0.3265 0.1896\n",
" 62 1.9577 0.3710 0.1895\n",
" 52 1.3200 0.2500 0.1894\n",
" 48 1.5414 0.2917 0.1892\n",
" 25 0.6396 0.1200 0.1876\n",
" 39 0.7283 0.1282 0.1760\n",
" 34 1.0108 0.1765 0.1746\n",
" 59 1.2988 0.2203 0.1697\n",
" 46 0.6614 0.1087 0.1643\n",
" 31 0.4096 0.0645 0.1575\n",
" 32 0.3998 0.0625 0.1563\n",
" 53 0.7267 0.1132 0.1558\n",
" 55 0.3555 0.0545 0.1534\n",
" 54 0.8463 0.1296 0.1532\n",
" 26 -0.0000 0.0000 0.0000\n",
"\n",
"================================================================================\n",
"CENTER OF THE DISTRIBUTION (Expected System Size): 36.4262 atoms\n",
"================================================================================\n",
"Interpretation: Crystalline structural order in this range is centered around this cluster size scale.\n"
]
}
],
"source": [
"# --------------------------------------------------------------------------\n",
"# NEW: Compute the center of the distribution using: (natoms * score) / sum(natoms * score)\n",
"# --------------------------------------------------------------------------\n",
"df_scores[\"Weight_Component\"] = df_scores[\"System Size\"] * df_scores[\"Custom Score\"]\n",
"total_weight_component = df_scores[\"Weight_Component\"].sum()\n",
"total_scores = df_scores[\"Custom Score\"].sum()\n",
"\n",
"# Calculate the singular center of the distribution for this range\n",
"# (i.e. Expected system size weighted by structural purity)\n",
"if total_scores > 0:\n",
" center_of_distribution = total_weight_component / total_scores\n",
"else:\n",
" center_of_distribution = 0.0\n",
"\n",
"# 2. Sort by Custom Score in descending order (highest score first)\n",
"df_scores_sorted = df_scores.sort_values(by=\"Custom Score\", ascending=False)\n",
"\n",
"print(\"--- Cluster Configurations Ranked by Custom Purity Score (Sizes 30 to 50) ---\")\n",
"print(df_scores_sorted[[\"System Size\", \"Diversity (Entropy)\", \"Non-Zero Concentration\", \"Custom Score\"]].to_string(\n",
" index=False, \n",
" formatters={\n",
" \"Diversity (Entropy)\": lambda x: f\"{x:.4f}\",\n",
" \"Non-Zero Concentration\": lambda x: f\"{x:.4f}\",\n",
" \"Custom Score\": lambda x: f\"{x:.4f}\"\n",
" }\n",
"))\n",
"\n",
"print(\"\\n\" + \"=\"*80)\n",
"print(f\"CENTER OF THE DISTRIBUTION (Expected System Size): {center_of_distribution:.4f} atoms\")\n",
"print(\"=\"*80)\n",
"print(\"Interpretation: Crystalline structural order in this range is centered around this cluster size scale.\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "48d8033c",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"<>:102: SyntaxWarning: \"\\m\" is an invalid escape sequence. Such sequences will not work in the future. Did you mean \"\\\\m\"? A raw string is also an option.\n",
"<>:102: SyntaxWarning: \"\\m\" is an invalid escape sequence. Such sequences will not work in the future. Did you mean \"\\\\m\"? A raw string is also an option.\n",
"/tmp/ipykernel_424539/216917900.py:102: SyntaxWarning: \"\\m\" is an invalid escape sequence. Such sequences will not work in the future. Did you mean \"\\\\m\"? A raw string is also an option.\n",
" ax1.set_ylabel('$T_\\mathrm{m}$ [K]', fontsize=12)\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"--- Cluster Configurations Ranked by Custom Structural Purity Score (Strict Max Size 50) ---\n",
" System Size Diversity (Entropy) Non-Zero Concentration Custom Score\n",
" 26 -0.0000 1.0000 1000000.0000\n",
" 55 0.3555 1.0000 2.8130\n",
" 32 0.3998 1.0000 2.5013\n",
" 31 0.4096 1.0000 2.4412\n",
" 23 0.4262 1.0000 2.3462\n",
" 50 0.5294 1.0000 1.8891\n",
" 22 0.5746 1.0000 1.7402\n",
" 43 0.5830 1.0000 1.7152\n",
" 40 0.6098 1.0000 1.6398\n",
" 25 0.6396 1.0000 1.5636\n",
" 46 0.6614 1.0000 1.5120\n",
" 35 0.6948 1.0000 1.4392\n",
" 15 0.6998 1.0000 1.4289\n",
" 53 0.7267 1.0000 1.3761\n",
" 39 0.7283 1.0000 1.3731\n",
" 19 0.7425 1.0000 1.3468\n",
" 28 0.7496 1.0000 1.3341\n",
" 36 0.7584 1.0000 1.3186\n",
" 29 0.7877 1.0000 1.2696\n",
" 16 0.8113 1.0000 1.2326\n",
" 56 0.8343 1.0000 1.1986\n",
" 54 0.8463 1.0000 1.1817\n",
" 60 0.8853 1.0000 1.1296\n",
" 41 0.8948 1.0000 1.1176\n",
" 42 0.9046 1.0000 1.1054\n",
" 38 0.9089 1.0000 1.1002\n",
" 51 0.9276 1.0000 1.0781\n",
" 58 0.9509 1.0000 1.0517\n",
" 21 0.9587 1.0000 1.0431\n",
" 14 0.9852 1.0000 1.0150\n",
" 34 1.0108 1.0000 0.9893\n",
" 57 1.0121 1.0000 0.9880\n",
" 27 1.0378 1.0000 0.9636\n",
" 17 1.2210 1.0000 0.8190\n",
" 45 1.2843 1.0000 0.7786\n",
" 59 1.2988 1.0000 0.7700\n",
" 52 1.3200 1.0000 0.7576\n",
" 37 1.4042 1.0000 0.7121\n",
" 24 1.4136 1.0000 0.7074\n",
" 30 1.4256 1.0000 0.7015\n",
" 44 1.5061 1.0000 0.6639\n",
" 33 1.5280 1.0000 0.6545\n",
" 48 1.5414 1.0000 0.6488\n",
" 49 1.7223 1.0000 0.5806\n",
" 18 1.7917 1.0000 0.5581\n",
" 20 1.9815 1.0000 0.5047\n",
" 47 2.1931 1.0000 0.4560\n"
]
},
{
"data": {
"image/png": "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IMkIuJqaOIqEVBhz+TDmMlK9fHhbNhwVKvPwjgVJRQjA3eJGvjDz9qkkGHP5MOa5b9uHjQGva7sNgtfrxdcfNgbctRh3XmEackep4hsVivU8c/COBRERERFRCj3++OPo06cP8vPzMXToUPztb38Lu+727du1meX9//3rX/9KaZ6jwYYFEREREVGK/Pa3v8WCBQtw++23Y8+ePfif//kfTJo0Cfv374/4vr179+Lw4cPav379+qUsz9FiVyiSiqIAJlM+b5tKhDGXD2MuJ44QlF3UhuNQG5wAAOFuAQB49h/WlutsRQAid2XL1pg//PDDuPrqq3HNNdcAANasWYM33ngDv/71r7FixYqw7ysvL0e3bt1SmNPYsWFBklGQn5+f7kxQSjHm8mHMZcQRgrKL691dcL76TkBa7f1PaX8XTR0NjJ8ScRvZGHO3241du3bhtttuC0ifMGECduzYEfG9Q4YMwYkTJzBgwADccccdGDt2bJJzGzs2LEgyAo3ORhQWFWbdwYi6ijGXD2MuI1VV20YIYsyzgfmCoTAN7h92eesdi8gyKebHjx+Hw+HQXptMJphMpg7rHT16FF6vFxUVFQHpFRUVqKqqCrnt7t2746mnnsLQoUPR3NyM5557DuPGjcP27dtxwQUXJKE0XZf1z1isWLECiqJgwYIFWpoQAkuXLkWPHj1gNpsxZswYfP755wHva25uxo033ojS0lIUFhZi2rRpOHjwYBpKQKkkBODxesARCeXBmMuHMZeTEIIxzyI6mwWG3t3D/tPZLJ1uI5NiPmDAANhsNu1fpC5NADrMuSKECDsPS//+/XHttdfinHPOwYgRI/D4449jypQpePDBBxNahkTI6obFhx9+iKeeegqDBg0KSF+1ahUefvhhPProo/jwww9RWVmJH/7whzh+/Li2zoIFC7B582a89NJLeO+99+B0OjF16lR4vd40lISIiIiIstUXX3yBhoYG7d+SJUtCrldaWgq9Xt/h7kR1dXWHuxiRnH/++fjqq6/izneiZW3Dwul0YtasWfjNb36D4uJiLV0IgTVr1uD222/HJZdcgrPOOgvPPvssmpqasHHjRgBAQ0MD1q1bh4ceegjjx4/HkCFD8Pzzz+Of//wn3n777TSWioiIiIiyjcVigdVq1f6F6gYFAEajEUOHDsVbb70VkP7WW29h5MiRUX/enj17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dpqczZs3i8OHD4u2tjZx+vRp8dxzzwmDwSAOHTokBPOWRuxVoQRzzznPPPOM+Oijj8S5c+fEsWPHxJo1a4TT6RSfffaZEMw7J3388cfCZDKJF154QZw9e1b84Q9/EPn5+eLtt99W+zD37MLCgnIOAN1/e/bsUftEIhGxZcsW4fP5hMViEUuXLhUtLS0ZHTdN3qOPPipmz54tzGazmDlzplixYoVaVAjmLY34woK555aHH35YFBcXi7y8PFFSUiKqq6tFa2urup1556b33ntPlJeXC4vFIr7yla+IXbt2abYz9+yiiOEnYkRERERERJPGz1gQEREREVHaWFgQEREREVHaWFgQEREREVHaWFgQEREREVHaWFgQEREREVHaWFgQEREREVHaWFgQEREREVHaWFgQEREREVHaWFgQEREREVHaWFgQEVHKDh48CEVRoCgKTp48mbC9uroaHo8nI2MjIqLMYmFBREQpa25uBgBYrVbs27dPd/sdd9yRgZEREVGmsbAgIqKUNTc3o6ioCA899FBCYdHV1YXz58+joqIiY+MjIqLMYWFBREQpa2pqQkVFBaqrq/Gvf/0Lra2tmm0AeMaCiEhSLCyIiCglXV1daG9vxx133IFVq1bB4XBozlqwsCAikhsLCyIiSkn08xUVFRWwWq247777EgqLgoIClJaWZnCURESUKSwsiIgoJdEzEtHPUFRXV+P06dP4z3/+o27n2QoiInmxsCAiopQ0NzdrzkisXr0aVqsVf/rTn3D58mV89tlnLCyIiCTGwoKIiFISfylZh8OBqqoq7Nu3L+FsBhERyYeFBRERjaunpwfnzp1LOCNRXV2NEydOYP/+/QA/uE1EJDUWFkRENK7m5mYIIRLOSNx///3Iy8vD7t274XK5cMstt2RsjERElFksLIiIaFzRK0LFn5EoKCjAN77xDQwODuL222+HoigZGiEREWWaIoQQmR4EERERERFNbzxjQUREREREaWNhQUREREREaWNhQUREREREaWNhQUREREREaWNhQUREREREaWNhQUREREREaWNhQUREREREaWNhQUREREREaWNhQUREREREaWNhQUREREREaWNhQUREREREaWNhQUREREREaft/e4I/tPvnZi0AAAAASUVORK5CYII=",
"text/plain": [
"<Figure size 800x550 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# ==============================================================================\n",
"# CELL: SCORE CLUSTERS & GRAPH TEMPERATURE WITH SCORES\n",
"# ==============================================================================\n",
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import re\n",
"\n",
"# 1. Filter out system sizes above 50\n",
"df_filtered = df_results[(df_results[\"System Size\"] >= 14) & (df_results[\"System Size\"] <= 60)].copy()\n",
"if not df_filtered.empty:\n",
" scores_record = []\n",
" \n",
" # Group by system size to look at the full distribution of each cluster\n",
" for num_atoms, group in df_filtered.groupby(\"System Size\"):\n",
" # Extract types and percentages\n",
" group = group[group[\"Average Percentage\"] > 0] # drop 0% occurrences for entropy math\n",
" \n",
" percentages = group[\"Average Percentage\"].values\n",
" types = group[\"CNAPS Type\"].values\n",
" \n",
" # Calculate Shannon Entropy (measures diversity/fragmentation across ALL types)\n",
"\n",
" entropy = -np.sum(percentages * np.log2(percentages))\n",
" \n",
" nonzero_entropy=0\n",
" for pct, cnap_type in zip(percentages, types):\n",
" if cnap_type != \"cnap_0\":\n",
" nonzero_entropy=nonzero_entropy-np.sum(pct*np.log2(pct))\n",
"\n",
" # Calculate the sum of squares of ONLY non-zero CNAPs\n",
" non_zero_sum_squares = 0.0\n",
" for pct, cnap_type in zip(percentages, types):\n",
" if cnap_type != \"cnap_0\":\n",
" #non_zero_sum_squares += pct **2 \n",
" non_zero_sum_squares += pct \n",
" \n",
" # Calculate the custom score (higher score = better)\n",
" # We add 1e-6 to avoid division by zero if entropy is perfectly 0\n",
" score = non_zero_sum_squares / (entropy + 1e-6)\n",
" \n",
" scores_record.append({\n",
" \"System Size\": num_atoms,\n",
" \"Non-Zero Concentration\": non_zero_sum_squares,\n",
" \"Diversity (Entropy)\": entropy,\n",
" \"nonzeroentropy\": nonzero_entropy,\n",
" \"Custom Score\": score\n",
" })\n",
" \n",
" df_scores = pd.DataFrame(scores_record)\n",
" \n",
" # 2. Sort by Custom Score in descending order (highest score / best configurations first)\n",
" df_scores_sorted = df_scores.sort_values(by=\"Custom Score\", ascending=False)\n",
" \n",
" print(\"--- Cluster Configurations Ranked by Custom Structural Purity Score (Strict Max Size 50) ---\")\n",
" print(df_scores_sorted[[\"System Size\", \"Diversity (Entropy)\", \"Non-Zero Concentration\", \"Custom Score\"]].to_string(\n",
" index=False, \n",
" formatters={\n",
" \"Diversity (Entropy)\": lambda x: f\"{x:.4f}\",\n",
" \"Non-Zero Concentration\": lambda x: f\"{x:.4f}\",\n",
" \"Custom Score\": lambda x: f\"{x:.4f}\"\n",
" }\n",
" ))\n",
"\n",
" # ==============================================================================\n",
" # ADDED: LOAD TEMPERATURE DATA AND GENERATE PLOT\n",
" # ==============================================================================\n",
" try:\n",
" # Load and parse the temperature text file\n",
" with open(\"/home/tmlkyza/Documents/Universita/Master/nanopants/lcm/growth_Melting_Silver_ICO/statistical_tempbysize.txt\", \"r\") as f:\n",
" temp_text = f.read()\n",
" \n",
" # Strip out any rows starting with #\n",
" lines = [line.strip() for line in temp_text.splitlines() if line.strip() and not line.strip().startswith('#')]\n",
" \n",
" # Tokenize whitespace-separated numbers and shape into groups of 5 columns\n",
" tokens = (\" \".join(lines)).split()\n",
" rows = [tokens[i:i+5] for i in range(0, len(tokens), 5)]\n",
" \n",
" # Create a matching DataFrame and convert values to float\n",
" df_temp = pd.DataFrame(rows, columns=['System Size', 'Tmelt', 'TmeltError', 'Tfreeze', 'TfreezeError']).astype(float)\n",
" \n",
" # Merge custom scores with temperature data on System Size\n",
" df_plot = pd.merge(df_scores, df_temp, on='System Size', how='inner').sort_values(by='System Size')\n",
" \n",
" if not df_plot.empty:\n",
" # ------------------------------------------------------------------\n",
" # LAYOUT 1: Dual-Axis Overlaid Graph (Histogram layer behind the line layer)\n",
" # ------------------------------------------------------------------\n",
" fig, ax1 = plt.subplots(figsize=(8,5.5))\n",
" ax2 = ax1.twinx()\n",
" \n",
" # Plot the scores as background bar/histogram layer (plotted first/lower zorder)\n",
" ax2.bar(df_plot['System Size'], df_plot['Diversity (Entropy)'], color='royalblue', alpha=0.35, width=0.8, label='Entropy')\n",
" ax2.set_ylabel('Shannon entropy', fontsize=12, rotation=270, labelpad=18)\n",
" ax2.tick_params(axis='y')\n",
" \n",
" # Plot the melting temperature on top with errorbars\n",
" ax1.errorbar(df_plot['System Size'], df_plot['Tmelt'], yerr=df_plot['TmeltError'], \n",
" fmt='o-', color='crimson', ecolor='crimson', capsize=3, elinewidth=1.2, markersize=5, label='Melting Temp.', linewidth=0)\n",
" ax1.set_xlabel('$N$', fontsize=12)\n",
" ax1.set_ylabel('$T_\\mathrm{m}$ [K]', fontsize=12)\n",
" ax1.tick_params(axis='y')\n",
" \n",
" #ax1.set_title('Melting Temperature and Entropy by System Size', fontsize=12, fontweight='bold', pad=15)\n",
" ax1.grid(True, linestyle='--', alpha=0.3)\n",
" \n",
" # Combine the legends safely from both axes\n",
" lines1, labels1 = ax1.get_legend_handles_labels()\n",
" lines2, labels2 = ax2.get_legend_handles_labels()\n",
" ax1.legend(lines1 + lines2, labels1 + labels2, loc='upper right')\n",
" \n",
" plt.tight_layout()\n",
" plt.savefig('melting_temp_and_scores_dual_axis.png', dpi=300)\n",
" plt.show()\n",
" plt.close()\n",
" else:\n",
" print(\"\\n[Warning] No matching system sizes found between the cluster scores and the temperature dataset.\")\n",
" \n",
" except FileNotFoundError:\n",
" print(\"\\n[Error] The file 'statistical_tempbysize.txt' was not found in the workspace directory.\")\n",
" except Exception as e:\n",
" print(f\"\\n[Error] Failed to generate visualizations: {e}\")\n",
"\n",
"else:\n",
" print(\"No data found. Verify Stage 2 executed successfully.\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "f4d5b842",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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.14.5"
}
},
"nbformat": 4,
"nbformat_minor": 5
}