{
"cells": [
{
"cell_type": "markdown",
"id": "c8e610ff-697a-40ab-85f7-94d27b4211d6",
"metadata": {},
"source": [
"# `pyscal` v3"
]
},
{
"cell_type": "markdown",
"id": "ab566bca-7d18-4c39-9d6c-f3943adbde50",
"metadata": {},
"source": [
""
]
},
{
"cell_type": "markdown",
"id": "688713d3-ee20-441a-9ee8-5b97513b5398",
"metadata": {},
"source": [
"- Store all necessary data in a python dictionary (or any mutable type)\n",
"- Expose python dict to C++\n",
"- Pass by reference to C++ to allow in-place modification\n",
"\n",
"Example:\n",
"\n",
"```c\n",
"\n",
"#include \n",
"\n",
"namespace py = pybind11;\n",
"\n",
"void get_all_neighbors_normal(py::dict& atoms,\n",
" const double neighbordistance,\n",
" const int triclinic,\n",
" const vector> rot, \n",
" const vector> rotinv,\n",
" const vector box)\n",
" {\n",
"```"
]
},
{
"cell_type": "markdown",
"id": "b9c56537-7e90-48c4-93c6-099e55d9657c",
"metadata": {},
"source": [
"## Some numbers\n"
]
},
{
"cell_type": "markdown",
"id": "8a8ab6b6-e389-4119-880d-5ba885c49301",
"metadata": {},
"source": [
"### Neighbor calculation"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "f97c335b-befb-4ad3-9c55-ed1a36b6b67d",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"from pychromatic import Multiplot\n",
"from pychromatic.colors import accent"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "7e35610f-f640-4182-bed6-98902a7e16fd",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"natoms = [250, 686, 2000, 6750,\n",
" 16000, 31250, 54000]\n",
"\n",
"p3 = [5.26, 13.7, 93.4, 72.6,\n",
" 193, 397, 695]\n",
"\n",
"p2 = [2.87, 18.7, 68, 287, \n",
" 688, 1280, 2590]"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "0c9b9b40-b4c9-45a9-b424-c33a1413ef14",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"3.726618705035971"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"2590/695"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "72316ee1-c5e2-45b0-a173-4ab9854d9037",
"metadata": {
"slideshow": {
"slide_type": "skip"
},
"tags": []
},
"outputs": [
{
"data": {
"image/png": "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FSvo1KkTAHPmzGHq1KnccMMNbNu2jbi40P63Hj58OAMHDmTo0KEMHTqUzp07h9z+22+/nVtuuSXk8sY0R1pRQcG6deQsWYL69bwl9uhB2qWXEt+hQ4RaV38WIJgaNeX1yhvDTTfdxE033VRlf5cuXXjhhRcYMWIEb731FiUlJSSE+LmfeOKJyn9/9dVXIdX54x//WFnXExwAXH311fzP//wP//nPf3j33Xe5+uqrQzrfz3/+85DKGWOqKt69m+wFCyg7csRnf2zbtqRfeimJvXohIhFqXXhEbaIk03i81yv/6ant+VX3jozLaM2g1smMy2jNQ9078tNT25McI5XrlUfS+vXrEREuuOCCoGWeeOIJRIQHH3ywXtcaOHAgAMXFxRw9erRe56rOl19+SWZmJsnJyUyaVHV8cupUZ7mQuXPnNlgbjDFQduwYx954g6MzZvgEB5KQQNr48XS84w6SeveO+uAArAfB1KC265U/tT+LhctWcfPUKRGbkzB48GD69OnDmjVr2LVrFz169KhSxjMccP3119frWrt37wYgPj6etm3b1lC67jzzFc4++2zi46sO4XiGKGo7r6GuPvroIz777DOKioro2rUrl112mc0/MM1aRXExeStWkLd6NfgNs7Y691xSL76Y2FpOVm7qLEBo5lQVLS6uc/35Hy6t9Xrlu4tKmP/hEq6ddGmdryuJifWKwK+//noefvhhZs6cyUMPPeRzbOvWrWzcuJFzzz2X/v371/kaAM888wwAEydOJDExsYbSdbdnzx4AunYNtFr5yf2ecg1txowZPu8feughrr76al555ZVaP9FhTFOmqhRu2kTOhx9SkZfncyy+WzfSJ04k4ZRTItS6hmUBQjOnxcUc/MMfai4YxLp9ThdabdYr311UwqcLFjF282d1vm7nn/8cqceKZTfccAMPP/wwr7/+epUA4fXXX68sUx/vv/8+L7/8MvHx8fz2t7+t17lqkuf+YWrVKvB/h5SUFJ9yDaVnz5489dRTXHbZZZx22mkcP36c5cuX88ADDzBnzhzKy8t5++1aZT83pskKlB4ZICY1lbTx40k+++xmMZQQjAUIplpFFc4jO7Vdr9xTL1LOPPNMLrjgAlavXs2GDRt8nhKYNWsWMTExXHtt3VOWbt26le9+97uoKk8++WTlXISGou6jU5H+Y/Td737X531KSgrX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\n",
"text/plain": [
"