2024-07-10 07:43:50 +02:00
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "eaed683c-c6f1-45e4-aaee-ae4e57209f5f",
"metadata": {},
"outputs": [],
"source": [
"import scipy as scp\n",
"from scipy.spatial import Voronoi, voronoi_plot_2d\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"from mpl_toolkits.mplot3d import Axes3D\n",
"from mpl_toolkits.mplot3d.art3d import Poly3DCollection\n",
"%matplotlib widget"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "efd84ecd-9fb3-4d2f-9f7a-47cd1ff09eea",
"metadata": {},
"outputs": [],
"source": [
"class Lattice:\n",
" def __init__(self, *vecs):\n",
" # if the vecs were put in an iterable\n",
" if len(vecs) == 1:\n",
" vecs = vecs[0]\n",
" if len(vecs) == 3:\n",
" pass\n",
" elif len(vecs) == 2:\n",
" pass\n",
" else: raise ValueError(\"Vecs must contain either 2 or 3 vectors\")\n",
" self.dim = len(vecs)\n",
" self.vecs = list(vecs)\n",
" for i, v in enumerate(self.vecs):\n",
" if type(v) != np.ndarray:\n",
" self.vecs[i] = np.array(v)\n",
" if self.vecs[i].shape != (self.dim,):\n",
" raise ValueError(f\"Got {self.dim} vectors, therefore all vectors must be {self.dim} dimensional but vector {i+1} has shape {self.vecs[i].shape}\")\n",
" self.vecs = np.array(self.vecs)\n",
" self.vec_lengths = np.array([np.linalg.norm(v) for v in self.vecs])\n",
" self.center = np.zeros(self.dim)\n",
"\n",
" def get_point(self, *ns):\n",
" if len(ns) != len(self.vecs): raise ValueError(f\"Requires one index for each lattice vector {len(self.vecs)}, but got only {ns}\")\n",
" point = self.center.copy()\n",
" for i, n in enumerate(ns):\n",
" point += n * self.vecs[i]\n",
" return point\n",
"\n",
" \n",
" def get_points_around_center(self, n):\n",
" points = []\n",
" import itertools\n",
" ns = [i for i in range(-n, n+1)]\n",
" for n in itertools.product(*[ns for _ in range(self.dim)]):\n",
" # print(n)\n",
" points.append(self.get_point(*n))\n",
" return points"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "515b9133-233b-4a6a-8b2f-a2fca10fea3d",
"metadata": {},
"outputs": [],
"source": [
"def rot_mat_2D(rad):\n",
" return np.array([[np.cos(rad), -np.sin(rad)], [np.sin(rad), np.cos(rad)]])\n",
"\n",
"\n",
"def get_reciprocal_lattice(lattice: Lattice):\n",
" if lattice.dim == 2:\n",
" rot_90_deg = rot_mat_2D(np.pi / 2)\n",
" a1, a2 = lattice.vecs\n",
" b1 = 2 * np.pi * rot_90_deg @ a2 / (np.dot(a1, rot_90_deg @ a2))\n",
" b2 = 2 * np.pi * rot_90_deg @ a1 / (np.dot(a2, rot_90_deg @ a1))\n",
" return Lattice(b1, b2)\n",
" elif lattice.dim == 3:\n",
" a1, a2, a3 = lattice.vecs\n",
" V = np.dot(a1, np.cross(a2, a3))\n",
" b1 = 2 * np.pi/V * np.cross(a2, a3)\n",
" b2 = 2 * np.pi/V * np.cross(a3, a1)\n",
" b3 = 2 * np.pi/V * np.cross(a1, a2)\n",
" return Lattice(b1, b2, b3)\n",
" else: raise NotImplementedError(f\"Dim must be 2 or 3, but is {lattice.dim}\")"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "2855d08e-70d8-4ef7-ba19-2c06316caf15",
"metadata": {},
"outputs": [],
"source": [
"\n",
"def get_elementary_cell(lattice: Lattice):\n",
" points = lattice.get_points_around_center(1)\n",
" return points\n",
"\n",
"def get_orthogonal_2D(vec):\n",
" return np.array((vec[1], -vec[0]))\n",
"\n",
"def get_unit_cell_vertices(lattice: Lattice, voronoi: Voronoi):\n",
" \"\"\"regard only voronoi vertices which are closest to the center <=> their norm is <= 0.5*(norm of the unit vectors added together\n",
" \"\"\"\n",
" lattice_vec_norm = np.sqrt(np.sum(lattice.vec_lengths**2))\n",
" return voronoi.vertices[np.linalg.norm(voronoi.vertices, axis=1) <= 0.5 * lattice_vec_norm]\n",
" \n",
"def plot_unit_cell(lattice, fig_ax=None, vec_label=\"a\", subplot_kw={}):\n",
" # get voronoi of the points around the center\n",
" points = get_elementary_cell(lattice)\n",
" voronoi = Voronoi(points)\n",
"\n",
" if fig_ax:\n",
" fig, ax = fig_ax\n",
" else:\n",
" if lattice.dim == 3:\n",
" fig = plt.figure()\n",
" ax = fig.add_subplot(1,1,1, projection=\"3d\") \n",
" else:\n",
" fig, ax = plt.subplots(**subplot_kw) \n",
"\n",
" # unit cell vertices\n",
" cell_points = get_unit_cell_vertices(lattice, voronoi)\n",
" # sort by polar angle for the fill function\n",
" cell_points = list(cell_points)\n",
" # print(cell_points)\n",
" # print([i for i in map(lambda p: np.arctan2(p[1],p[0]), cell_points)])\n",
" if lattice.dim == 2:\n",
" cell_points.sort(key=lambda p: np.arctan2(p[1],p[0]))\n",
" x_cell, y_cell = zip(*cell_points)\n",
" ax.fill(x_cell, y_cell, color=\"#4444\")\n",
" ax.scatter(x_cell, y_cell, color=\"orange\")\n",
" \n",
" # lattice points\n",
" x_lat, y_lat = zip(*lattice.get_points_around_center(3))\n",
" ax.scatter(x_lat, y_lat, color=\"blue\")\n",
" \n",
" # lattice vectors\n",
" arrowprops = dict(arrowstyle=\"-|>,head_width=0.4,head_length=0.8\", color=\"black\", shrinkA=0,shrinkB=0)\n",
" for i, vec in enumerate(lattice.vecs):\n",
" ax.annotate(f\"\", xy=lattice.vecs[i], xytext=lattice.center, arrowprops=arrowprops)\n",
" if vec_label is not None:\n",
" # add name of vector at a perpendicular offset starting at half length\n",
" ax.annotate(r\"$\\vec{\"+f\"{vec_label}}}_{i+1}$\", xy=0.7*lattice.vecs[i], xytext=0.7*lattice.vecs[i] + 0.06*get_orthogonal_2D(lattice.vecs[i]))\n",
" elif lattice.dim == 3:\n",
2024-07-14 16:04:46 +02:00
" # todo filter so that only\n",
2024-07-10 07:43:50 +02:00
" ridges = voronoi.ridge_vertices\n",
2024-07-14 16:04:46 +02:00
" lattice_vec_norm = np.sqrt(np.sum(lattice.vec_lengths**2))\n",
2024-07-10 07:43:50 +02:00
" for ridge in ridges:\n",
" verts = voronoi.vertices[ridge]\n",
2024-07-14 16:04:46 +02:00
" # TODO: doesnt seem to work\n",
" \"\"\"regard only voronoi vertices which are closest to the center <=> their norm is <= 0.5*(norm of the unit vectors added together\n",
" \"\"\"\n",
" verts = verts[np.linalg.norm(verts, axis=1) <= 0.5 * lattice_vec_norm]\n",
" x_lat, y_lat, z_lat = zip(*lattice.get_points_around_center(1))\n",
" ax.scatter(x_lat, y_lat, z_lat, color=\"red\", marker=\".\")\n",
2024-07-10 07:43:50 +02:00
" # print(verts, type(verts), verts.shape, verts.ndim)\n",
2024-07-14 16:04:46 +02:00
" #ax.add_collection3d(Poly3DCollection([voronoi.vertices[ridge]], edgecolor=\"black\"))\n",
" for vec in lattice.vecs:\n",
" ax.plot(*[i for i in zip([0,0,0], vec)])\n",
2024-07-10 07:43:50 +02:00
" ax.set_xlim(-2, 2)\n",
" ax.set_ylim(-2, 2)\n",
" ax.set_zlim(-2, 2)\n",
" else: raise NotImplementedError(f\"Dim must be 2 or 3, but is {lattice.dim}\")\n",
"\n",
" # limit to 2*lattice vectors\n",
" def calc_lim(axis):\n",
" lim = 2.05 * np.max(np.abs(lattice.vecs[axis,:]))\n",
" return -lim, lim\n",
" ax.set_xlim(*calc_lim(0))\n",
" ax.set_ylim(*calc_lim(1))\n",
" if lattice.dim == 3: ax.set_zlim(*calc_lim(2))\n",
2024-07-14 16:04:46 +02:00
" fig.tight_layout()\n",
2024-07-10 07:43:50 +02:00
" return fig"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "c2faef81-5f2a-4950-b986-e891ddfa7da8",
"metadata": {},
"outputs": [],
"source": [
"sphere_point = lambda rad: np.array([np.cos(rad), np.sin(rad)])\n",
"\n",
"square_lattice = Lattice([1, 0], [0, 1])\n",
"tilted_lattice = Lattice([1, 0.5], [0, 1])\n",
"honeycomb_lattice = Lattice(sphere_point(0), sphere_point(np.pi * 2/3))"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "a6b6ccf4-34c7-419d-8bcc-f3ce2870ba25",
"metadata": {},
"outputs": [],
"source": [
"# fig, axs = plt.subplots(3, figsize=(4, 12))\n",
"# plot_unit_cell(square_lattice, fig_ax=(fig, axs[0]))\n",
"# plot_unit_cell(tilted_lattice, fig_ax=(fig, axs[1]))\n",
"# plot_unit_cell(honeycomb_lattice, fig_ax=(fig,axs[2]));"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "5314dd3a-17a7-402d-b3ee-ddbf69a6c4ed",
"metadata": {},
"outputs": [],
"source": [
"def plot_lattice(lattice: Lattice):\n",
" reci = get_reciprocal_lattice(lattice)\n",
" print(reci.vecs)\n",
" if lattice.dim == 3:\n",
" fig = plt.figure()\n",
" axs = [fig.add_subplot(1,2,i, projection=\"3d\") for i in [1,2]]\n",
2024-07-14 16:04:46 +02:00
" fig.suptitle(\"3D Lattice\")\n",
" \n",
2024-07-10 07:43:50 +02:00
" else:\n",
" fig, axs = plt.subplots(1, 2)\n",
" plot_unit_cell(lattice, fig_ax=(fig, axs[0]))\n",
" plot_unit_cell(reci, fig_ax=(fig, axs[1]), vec_label=\"b\")"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "39a49d00-fc93-4f2a-8645-d5e440e7a092",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[ 6.28318531e+00 -3.84734139e-16]\n",
" [ 3.84734139e-16 6.28318531e+00]]\n",
"[[ 6.28318531e+00 -3.84734139e-16]\n",
" [-3.14159265e+00 6.28318531e+00]]\n",
"[[6.28318531e+00 3.62759873e+00]\n",
" [4.44252717e-16 7.25519746e+00]]\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
2024-07-14 16:04:46 +02:00
"model_id": "9509fdd0b81b47a7bdcdd99704c382a7",
2024-07-10 07:43:50 +02:00
"version_major": 2,
"version_minor": 0
},
2024-07-14 16:04:46 +02:00
"image/png": "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
2024-07-10 07:43:50 +02:00
"text/html": [
"\n",
" <div style=\"display: inline-block;\">\n",
" <div class=\"jupyter-widgets widget-label\" style=\"text-align: center;\">\n",
" Figure\n",
" </div>\n",
2024-07-14 16:04:46 +02:00
" <img src='data:image/png;base64,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
2024-07-10 07:43:50 +02:00
" </div>\n",
" "
],
"text/plain": [
"Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
2024-07-14 16:04:46 +02:00
"model_id": "47bb31473a70418cb164f9b5d5399168",
2024-07-10 07:43:50 +02:00
"version_major": 2,
"version_minor": 0
},
2024-07-14 16:04:46 +02:00
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAABZW0lEQVR4nO3de1xUdf4/8NcwwHAfNBAGB4U2003NC5ZKjYptmiW1UVZf92vaVhttbl6yjOq3apuRXVzbbmaZZretRFs3rbQ1iL5qqYl5XysURAZEZSYuDjic3x/jTAwMMMDMnJnzeT0fj5PNmTPM+zOfOR/enHM+562SJEkCEREREQkjSO4AiIiIiMi3mAASERERCYYJIBEREZFgmAASERERCYYJIBEREZFgmAASERERCYYJIBEREZFgmAASERERCYYJIBEREZFgmAASERERCYYJIBEREZFgmAASERERCYYJIBEREZFgguUOwBeamppw8uRJREdHQ6VSyR0OEfmQJEn45ZdfkJSUhKAgZf3Ny7GNSFzdHduESABPnjyJ5ORkucMgIhmVlpZCr9fLHYZHcWwjoq6ObT5PAHNzc7Fu3TocPnwY4eHhSE9Px5IlS9C/f/92X1dQUIC5c+fiwIEDSEpKwiOPPILs7Gy33jM6OhqA7UOKjIzBtm2A0QgkJgLp6YBa3e1mkZ+yWsH+FkzLPh80yIyUlGTHOKAkHNvE3cdFbTcgbts9PrZJPjZx4kRp1apV0v79+6WioiLphhtukPr06SPV1NS0+Zqff/5ZioiIkGbNmiUdPHhQeuONN6SQkBBp7dq1br2nyWSSAEjvvGOS9HpJAn5d9HpJysvzVOvIn+TlSexvwbjq86Qk2/5vMpnkDs/jRB/bRN3HRW23JInbdm+MbT5PAFuqrKyUAEgFBQVtbvPII49IAwYMcFp33333SaNGjXLrPeyDJGBy+vAASVKpbIvSvzyiycuz9Sv7Wxxt9bltv1d2Aiji2CbqPi5quyVJ3LZ7a2yT/Ypok8kEAOjZs2eb22zfvh0TJkxwWjdx4kTs2rULjY2N3Xp/SbL9O3u27fAqBT6rFZg169e+bY79rUzt9bmolPxdF3UfF7XdgLht9+bYJmsCKEkS5s6di6uvvhqDBg1qczuj0YiEhASndQkJCTh//jyqqqpabW+xWGA2m52W9uMASkuBwsKutYP8S2EhcOJE28+zv5Wnoz4XlVK/66Lu46K2GxC37d4c22RNAGfOnIkffvgBH3zwQYfbtrzFgXQhHXZ164Pc3FxotVrH4u4sufJytzYjP+duP7K/lYN92T6lfT6i7uOithsQt+3ebI9sCeBf/vIXbNiwAV999VWH05cTExNhNBqd1lVWViI4OBgXXXRRq+1zcnJgMpkcS2lpqVsx6XTux0/+y91+ZH8rB/uyfUr7fETdx0VtNyBu273ZHp8ngJIkYebMmVi3bh22bt2K1NTUDl8zevRobNmyxWnd5s2bMWLECISEhLTaXqPRICYmxmlpj0oFJCcDBkPn2kL+yWAA9Hpbv7rC/laejvpcVEr9rou6j4vabkDctntzbPN5AvjAAw/g3Xffxfvvv4/o6GgYjUYYjUbU19c7tsnJycGdd97peJydnY3jx49j7ty5OHToEN566y2sXLkS8+bN6/T7t/wQ7Y+XLRPjPkIiUKuBF1+0/T/7Wwzt9bkoRPqui7qPi9puQNy2e3Vs8+RUZXcAcLmsWrXKsc306dOlsWPHOr0uPz9fGjZsmBQaGiqlpKRIr732mtvv2d69spKTlTt1XHSu7pvE/lY2V33eu7fybwMj6tgm6j4uarslSdy2e2NsU0mS8m+cYDabodVqYTKZEBkZg8JC24WVOp3t8KrS/mKgX1mtYH8LpmWfDxliRs+etv2/o8tBAg3HNnH3cVHbDYjbdk+PbcIlgEr7BUBE7VPy/q/kthFR+7q7/8t+I2giIiIi8i0mgERERESCYQJIREREJBgmgERERESCYQJIREREJBgmgERERESCYQJIREREJBgmgERERESCYQJIREREJBgmgERERESCYQJIREREJBgmgERERESCYQJIREREJBgmgERERESCYQJIREREJBgmgERERESCYQJIREREJBgmgERERESCYQJIREREJBgmgERERESCYQJIREREJBgmgERERESCYQJIREREJBgmgERERESCYQJIREREJBgmgERERESCYQJIREREJBgmgERERESCYQJIREREJBgmgERERESCYQJIROQlX3/9NTIzM5GUlASVSoVPPvnE6XlJkrBw4UIkJSUhPDwc48aNw4EDB+QJloiEwgSQiMhLamtrMWTIELz88ssun3/22WexdOlSvPzyy9i5cycSExNx7bXX4pdffvFxpEQkmmC5AyAiUqpJkyZh0qRJLp+TJAnLli3D448/jqysLADA22+/jYSEBLz//vu47777fBkqEQmGRwCJiGRQXFwMo9GICRMmONZpNBqMHTsW27ZtkzEyIhIBjwASEcnAaDQCABISEpzWJyQk4Pjx4y5fY7FYYLFYHI/NZrP3AiQiReMRQCIiGalUKqfHkiS1WmeXm5sLrVbrWJKTk30RIhEpEBNAIiIZJCYmAvj1SKBdZWVlq6OCdjk5OTCZTI6ltLTU63ESkTIxASQikkFqaioSExOxZcsWx7qGhgYUFBQgPT3d5Ws0Gg1iYmKcFiKiruA1gEREXlJTU4Mff/zR8bi4uBhFRUXo2bMn+vTpg9mzZ+Ppp59Gv3790K9fPzz99NOIiIjA1KlTZYyaiETABJCIyEt27dqFjIwMx+O5c+cCAKZPn47Vq1fjkUceQX19Pf785z/j7NmzGDlyJDZv3ozo6Gi5QiYiQfj8FHBHd8ZvKT8/HyqVqtVy+PBh3wSsEFYrkJ8PfPCB7V+rVe6IyNvY5/IbN24cJElqtaxevRqAbQLIwoULUV5ejnPnzqGgoACDBg2SN2giEoLPjwDa74x/11134ZZbbnH7dUeOHHG63iU+Pt4b4SnSunXArFnAiRO/rtPrgRdfBC7cf5YUhn1ORETt8XkC2N6d8dvTq1cvxMbGej4ghVu3Drj1VkCSnNeXldnWr13LhEBp2OdERNSRgJkFPGzYMOh0OlxzzTX46quv5A4nIFittqNALRMB4Nd1s2fz1KCSsM+JiMgdfp8A6nQ6rFixAnl5eVi3bh369++Pa665Bl9//XWbr7FYLDCbzU6LiAoLnU8BtiRJQGmpbTtSBvY5ERG5w+9nAffv3x/9+/d3PB49ejRKS0vx/PPPY8yYMS5fk5ubi0WLFvkqRL9VXu7Z7cj/sc+JiMgdfn8E0JVRo0bh6NGjbT7Pu+Xb6HSe3Y78H/uciIjc4fdHAF3Zs2cPdO38BtNoNNBoND6MyD8ZDLaZn2Vlrq8JU6lszxsMvo+NvIN9TkRE7vB5AtjRnfFzcnJQVlaGNWvWAACWLVuGlJQUDBw4EA0NDXj33XeRl5eHvLw8X4cecNRq220/br3V9ou/eUJgrzW/bJltO1IG9jkREbnD56eAd+3ahWHDhmHYsGEAbHfGHzZsGP76178CAMrLy1FSUuLYvqGhAfPmzcPll18Og8GAb775Bhs3bkQW72Phlqws220/evd2Xq/X83YgSsU+JyKijqgkydWJImUxm83QarUwmUzCFk+3Wm0zP8vLbdd/GQw8CqR07HMbJe//Sm4bEbWvu/t/QF4DSJ2nVgPjxskdBfkS+5yIiNoSkLOAiYiIiKjrmAASERERCYYJIBEREZFgmAASERERCYYJIBEREZFgmAASERERCYYJIBEREZFgmAASERERCYYJIBEREZFgmAASERERCYYJIBEREZFgmAASERERCYYJIBEREZFgmAASERERCYYJIBEREZFgmAASERERCYYJIBEREZFgmAASERERCYYJIBEREZFgmAASERERCYYJIBEREZFgmAASERERCYYJIBEREZFgmAASERERCYYJIBEREZFgmAASERERCYYJIBEREZFgmAASERERCYYJIBEREZFgmAASERERCYYJIBEREZFgmAASERERCYYJIBE
2024-07-10 07:43:50 +02:00
"text/html": [
"\n",
" <div style=\"display: inline-block;\">\n",
" <div class=\"jupyter-widgets widget-label\" style=\"text-align: center;\">\n",
" Figure\n",
" </div>\n",
2024-07-14 16:04:46 +02:00
" <img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAABZW0lEQVR4nO3de1xUdf4/8NcwwHAfNBAGB4U2003NC5ZKjYptmiW1UVZf92vaVhttbl6yjOq3apuRXVzbbmaZZretRFs3rbQ1iL5qqYl5XysURAZEZSYuDjic3x/jTAwMMMDMnJnzeT0fj5PNmTPM+zOfOR/enHM+562SJEkCEREREQkjSO4AiIiIiMi3mAASERERCYYJIBEREZFgmAASERERCYYJIBEREZFgmAASERERCYYJIBEREZFgmAASERERCYYJIBEREZFgmAASERERCYYJIBEREZFgmAASERERCYYJIBEREZFgguUOwBeamppw8uRJREdHQ6VSyR0OEfmQJEn45ZdfkJSUhKAgZf3Ny7GNSFzdHduESABPnjyJ5ORkucMgIhmVlpZCr9fLHYZHcWwjoq6ObT5PAHNzc7Fu3TocPnwY4eHhSE9Px5IlS9C/f/92X1dQUIC5c+fiwIEDSEpKwiOPPILs7Gy33jM6OhqA7UOKjIzBtm2A0QgkJgLp6YBa3e1mkZ+yWsH+FkzLPh80yIyUlGTHOKAkHNvE3cdFbTcgbts9PrZJPjZx4kRp1apV0v79+6WioiLphhtukPr06SPV1NS0+Zqff/5ZioiIkGbNmiUdPHhQeuONN6SQkBBp7dq1br2nyWSSAEjvvGOS9HpJAn5d9HpJysvzVOvIn+TlSexvwbjq86Qk2/5vMpnkDs/jRB/bRN3HRW23JInbdm+MbT5PAFuqrKyUAEgFBQVtbvPII49IAwYMcFp33333SaNGjXLrPeyDJGBy+vAASVKpbIvSvzyiycuz9Sv7Wxxt9bltv1d2Aiji2CbqPi5quyVJ3LZ7a2yT/Ypok8kEAOjZs2eb22zfvh0TJkxwWjdx4kTs2rULjY2N3Xp/SbL9O3u27fAqBT6rFZg169e+bY79rUzt9bmolPxdF3UfF7XdgLht9+bYJmsCKEkS5s6di6uvvhqDBg1qczuj0YiEhASndQkJCTh//jyqqqpabW+xWGA2m52W9uMASkuBwsKutYP8S2EhcOJE28+zv5Wnoz4XlVK/66Lu46K2GxC37d4c22RNAGfOnIkffvgBH3zwQYfbtrzFgXQhHXZ164Pc3FxotVrH4u4sufJytzYjP+duP7K/lYN92T6lfT6i7uOithsQt+3ebI9sCeBf/vIXbNiwAV999VWH05cTExNhNBqd1lVWViI4OBgXXXRRq+1zcnJgMpkcS2lpqVsx6XTux0/+y91+ZH8rB/uyfUr7fETdx0VtNyBu273ZHp8ngJIkYebMmVi3bh22bt2K1NTUDl8zevRobNmyxWnd5s2bMWLECISEhLTaXqPRICYmxmlpj0oFJCcDBkPn2kL+yWAA9Hpbv7rC/laejvpcVEr9rou6j4vabkDctntzbPN5AvjAAw/g3Xffxfvvv4/o6GgYjUYYjUbU19c7tsnJycGdd97peJydnY3jx49j7ty5OHToEN566y2sXLkS8+bN6/T7t/wQ7Y+XLRPjPkIiUKuBF1+0/T/7Wwzt9bkoRPqui7qPi9puQNy2e3Vs8+RUZXcAcLmsWrXKsc306dOlsWPHOr0uPz9fGjZsmBQaGiqlpKRIr732mtvv2d69spKTlTt1XHSu7pvE/lY2V33eu7fybwMj6tgm6j4uarslSdy2e2NsU0mS8m+cYDabodVqYTKZEBkZg8JC24WVOp3t8KrS/mKgX1mtYH8LpmWfDxliRs+etv2/o8tBAg3HNnH3cVHbDYjbdk+PbcIlgEr7BUBE7VPy/q/kthFR+7q7/8t+I2giIiIi8i0mgERERESCYQJIREREJBgmgERERESCYQJIREREJBgmgERERESCYQJIREREJBgmgERERESCYQJIREREJBgmgERERESCYQJIREREJBgmgERERESCYQJIREREJBgmgERERESCYQJIREREJBgmgERERESCYQJIREREJBgmgERERESCYQJIREREJBgmgERERESCYQJIREREJBgmgERERESCYQJIREREJBgmgERERESCYQJIREREJBgmgERERESCYQJIREREJBgmgERERESCYQJIREREJBgmgERERESCYQJIROQlX3/9NTIzM5GUlASVSoVPPvnE6XlJkrBw4UIkJSUhPDwc48aNw4EDB+QJloiEwgSQiMhLamtrMWTIELz88ssun3/22WexdOlSvPzyy9i5cycSExNx7bXX4pdffvFxpEQkmmC5AyAiUqpJkyZh0qRJLp+TJAnLli3D448/jqysLADA22+/jYSEBLz//vu47777fBkqEQmGRwCJiGRQXFwMo9GICRMmONZpNBqMHTsW27ZtkzEyIhIBjwASEcnAaDQCABISEpzWJyQk4Pjx4y5fY7FYYLFYHI/NZrP3AiQiReMRQCIiGalUKqfHkiS1WmeXm5sLrVbrWJKTk30RIhEpEBNAIiIZJCYmAvj1SKBdZWVlq6OCdjk5OTCZTI6ltLTU63ESkTIxASQikkFqaioSExOxZcsWx7qGhgYUFBQgPT3d5Ws0Gg1iYmKcFiKiruA1gEREXlJTU4Mff/zR8bi4uBhFRUXo2bMn+vTpg9mzZ+Ppp59Gv3790K9fPzz99NOIiIjA1KlTZYyaiETABJCIyEt27dqFjIwMx+O5c+cCAKZPn47Vq1fjkUceQX19Pf785z/j7NmzGDlyJDZv3ozo6Gi5QiYiQfj8FHBHd8ZvKT8/HyqVqtVy+PBh3wSsEFYrkJ8PfPCB7V+rVe6IyNvY5/IbN24cJElqtaxevRqAbQLIwoULUV5ejnPnzqGgoACDBg2SN2giEoLPjwDa74x/11134ZZbbnH7dUeOHHG63iU+Pt4b4SnSunXArFnAiRO/rtPrgRdfBC7cf5YUhn1ORETt8XkC2N6d8dvTq1cvxMbGej4ghVu3Drj1VkCSnNeXldnWr13LhEBp2OdERNSRgJkFPGzYMOh0OlxzzTX46quv5A4nIFittqNALRMB4Nd1s2fz1KCSsM+JiMgdfp8A6nQ6rFixAnl5eVi3bh369++Pa665Bl9//XWbr7FYLDCbzU6LiAoLnU8BtiRJQGmpbTtSBvY5ERG5w+9nAffv3x/9+/d3PB49ejRKS0vx/PPPY8yYMS5fk5ubi0WLFvkqRL9VXu7Z7cj/sc+JiMgdfn8E0JVRo0bh6NGjbT7Pu+Xb6HSe3Y78H/uciIjc4fdHAF3Zs2cPdO38BtNoNNBoND6MyD8ZDLaZn2Vlrq8JU6lszxsMvo+NvIN9TkRE7vB5AtjRnfFzcnJQVlaGNWvWAACWLVuGlJQUDBw4EA0NDXj33XeRl5eHvLw8X4cecNRq220/br3V9ou/eUJgrzW/bJltO1IG9jkREbnD56eAd+3ahWHDhmHYsGEAbHfGHzZsGP76178CAMrLy1FSUuLYvqGhAfPmzcPll18Og8GAb775Bhs3bkQW72Phlqws220/evd2Xq/X83YgSsU+JyKijqgkydWJImUxm83QarUwmUzCFk+3Wm0zP8vLbdd/GQw8CqR07HMbJe//Sm4bEbWvu/t/QF4DSJ2nVgPjxskdBfkS+5yIiNoSkLOAiYiIiKjrmAASERERCYYJIBEREZFgmAASERERCYYJIBEREZFgmAASERERCYYJIBEREZFgmAASERERCYYJIBEREZFgmAASERERCYYJIBEREZFgmAASERERCYYJIBEREZFgmAASERERCYYJIBEREZFgmAASERERCYYJIBEREZFgmAASERERCYYJIBEREZFgmAASERERCYYJIBEREZFgmAASERERCYYJIBEREZFgmAASERERCYYJIBEREZFgmAASERERCYYJIBEREZFgmAASERERCYYJIBEREZF
2024-07-10 07:43:50 +02:00
" </div>\n",
" "
],
"text/plain": [
"Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
2024-07-14 16:04:46 +02:00
"model_id": "430e96282417425998230e3794982b7a",
2024-07-10 07:43:50 +02:00
"version_major": 2,
"version_minor": 0
},
2024-07-14 16:04:46 +02:00
"image/png": "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
2024-07-10 07:43:50 +02:00
"text/html": [
"\n",
" <div style=\"display: inline-block;\">\n",
" <div class=\"jupyter-widgets widget-label\" style=\"text-align: center;\">\n",
" Figure\n",
" </div>\n",
2024-07-14 16:04:46 +02:00
" <img src='data:image/png;base64,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
2024-07-10 07:43:50 +02:00
" </div>\n",
" "
],
"text/plain": [
"Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_lattice(square_lattice)\n",
"plot_lattice(tilted_lattice)\n",
"plot_lattice(honeycomb_lattice)"
]
},
{
"cell_type": "code",
2024-07-14 16:04:46 +02:00
"execution_count": 9,
2024-07-10 07:43:50 +02:00
"id": "ef0a5d74-739f-4688-ad7f-fed91c39dcaa",
"metadata": {},
"outputs": [],
"source": [
"simple_cubic = Lattice([1,0,0], [0,1,0], [0,0,1])\n",
2024-07-14 16:04:46 +02:00
"graphite = Lattice([0.5,-0.5 * 3**(0.5),0], [0.5,0.5 * 3**(0.5),0], [0,0,1])\n",
"fcc = Lattice([0.5,0.5,-0.5], [-0.5,0.5,0.5], [0.5,-0.5,0.5])\n"
2024-07-10 07:43:50 +02:00
]
},
{
"cell_type": "code",
2024-07-14 16:04:46 +02:00
"execution_count": 10,
2024-07-10 07:43:50 +02:00
"id": "364f3ddb-21d0-4586-8b3b-acad8ba20d9b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[6.28318531 0. 0. ]\n",
" [0. 6.28318531 0. ]\n",
" [0. 0. 6.28318531]]\n",
"[[ 6.28318531 -3.62759873 0. ]\n",
" [ 6.28318531 3.62759873 -0. ]\n",
2024-07-14 16:04:46 +02:00
" [-0. 0. 6.28318531]]\n",
"[[6.28318531 6.28318531 0. ]\n",
" [0. 6.28318531 6.28318531]\n",
" [6.28318531 0. 6.28318531]]\n"
2024-07-10 07:43:50 +02:00
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
2024-07-14 16:04:46 +02:00
"model_id": "6a86aabea01c44019ffea0aaf5515ce0",
"version_major": 2,
"version_minor": 0
},
"image/png": "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
"text/html": [
"\n",
" <div style=\"display: inline-block;\">\n",
" <div class=\"jupyter-widgets widget-label\" style=\"text-align: center;\">\n",
" Figure\n",
" </div>\n",
" <img src='data:image/png;base64,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
" </div>\n",
" "
],
"text/plain": [
"Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "506fb0143a734dfc9aa7a40d48700439",
2024-07-10 07:43:50 +02:00
"version_major": 2,
"version_minor": 0
},
2024-07-14 16:04:46 +02:00
"image/png": "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
2024-07-10 07:43:50 +02:00
"text/html": [
"\n",
" <div style=\"display: inline-block;\">\n",
" <div class=\"jupyter-widgets widget-label\" style=\"text-align: center;\">\n",
" Figure\n",
" </div>\n",
2024-07-14 16:04:46 +02:00
" <img src='data:image/png;base64,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
2024-07-10 07:43:50 +02:00
" </div>\n",
" "
],
"text/plain": [
"Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
2024-07-14 16:04:46 +02:00
"model_id": "e8557bb0fd7e4b759d418908f3fc1087",
2024-07-10 07:43:50 +02:00
"version_major": 2,
"version_minor": 0
},
2024-07-14 16:04:46 +02:00
"image/png": "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
2024-07-10 07:43:50 +02:00
"text/html": [
"\n",
" <div style=\"display: inline-block;\">\n",
" <div class=\"jupyter-widgets widget-label\" style=\"text-align: center;\">\n",
" Figure\n",
" </div>\n",
2024-07-14 16:04:46 +02:00
" <img src='data:image/png;base64,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
2024-07-10 07:43:50 +02:00
" </div>\n",
" "
],
"text/plain": [
"Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_lattice(simple_cubic);\n",
2024-07-14 16:04:46 +02:00
"plot_lattice(graphite);\n",
"plot_lattice(fcc);"
2024-07-10 07:43:50 +02:00
]
},
{
"cell_type": "code",
2024-07-14 16:04:46 +02:00
"execution_count": 11,
2024-07-10 07:43:50 +02:00
"id": "c6512444-6c86-4e31-bc6a-2c8b1e00c28d",
"metadata": {},
2024-07-14 16:04:46 +02:00
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 0.92, '3D Lettuce')"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "89c74caa7562461eb89e90d8eae93974",
"version_major": 2,
"version_minor": 0
},
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOy9eZhkV3nf/zl3r6XXWaXRviAJSUYLSMwMGGxsMMJ2SGIC8aYYg4MVSBwM/hlCYifkwfYTbBMvQhATYyCxQXZwsCWDcRAYkMSqWTUaaTT7PtNrbXc95/fHqXurqrtn1Pv0TJ8P9KPu6qp7z723pu+33uX7CqWUwmAwGAwGg8GwarAu9AIMBoPBYDAYDMuLEYAGg8FgMBgMqwwjAA0Gg8FgMBhWGUYAGgwGg8FgMKwyjAA0GAwGg8FgWGUYAWgwGAwGg8GwyjAC0GAwGAwGg2GVYQSgwWAwGAwGwyrDCECDwWAwGAyGVYYRgAaDwWAwGAyrDCMADQaDwWAwGFYZRgAaDAaDwWAwrDKMADQYDAaDwWBYZRgBaDAYDAaDwbDKMALQYDAYDAaDYZVhBKDBYDAYDAbDKsMIQIPBYDAYDIZVhhGABoPBYDAYDKsMIwANBoPBYDAYVhlGABoMBoPBYDCsMowANBgMBoPBYFhlGAFoMBgMBoPBsMowAtBgMBgMBoNhlWEEoMFgMBgMBsMqwwhAg8FgMBgMhlWGEYAGg8FgMBgMqwwjAA0Gg8FgMBhWGUYAGgwGg8FgMKwyjAA0GAwGg8FgWGUYAWgwGAwGg8GwyjAC0GAwGAwGg2GVYQSgwWAwGAwGwyrDCECDwWAwGAyGVYYRgAaDwWAwGAyrDCMADQaDwWAwGFYZRgAaDAaDwWAwrDKMADQYDMvCtm3beMMb3sBVV11FqVRieHiYzZs385nPfGbac1/96lcjhEAIgWVZ9PX1ccMNN/CmN72Jv/zLv0RKOat9/qt/9a+oVquLsv7HH3+c3/zN32R8fHza7x588EE++clPLsp+DAaDYTkwAtBgMCwL4+PjXHnllXzoQx/i0Ucf5VOf+hTXXHMNP/dzP8d//a//ddrzr7vuOp544gkef/xx/vqv/5pf//Vfp9Vq8aY3vYlXv/rVTExMLOv6H3/8cf7zf/7PRgAaDIZLAudCL8BgMKwOXv3qV/PqV7+657Ef//Ef58CBA3z84x/nAx/4QM/vSqUSL3/5y3see9vb3saf/umf8ta3vpVf+qVf4rOf/exSL9tgMBguSUwE0GAwXFDWrl2L48z+s+gv/MIvcN999/Hwww9z6NChRVnDP/zDP/Ca17yG/v5+yuUyW7du5f/9v/9X/P43f/M3ee973wvAtddeW6Snv/rVr3LNNdewe/duvva1rxWPX3PNNQB88pOfRAjBwYMHe/b31a9+tXh9N1/84hd5zWtew8DAAOVymVtuuYXf+q3f6nnOd7/7XX7yJ3+S4eFhgiDgzjvv5HOf+9yinAeDwbB6MALQYDAsK1JK0jTlzJkzPPjgg3zpS1/i//v//r85beMnf/InUUrx9a9/fcHr+cxnPsNrX/ta+vv7+bM/+zM+97nPMTw8zOte97pCBL7tbW/jXe96FwD/5//8H5544gmeeOIJ7rrrLj7/+c9z3XXXceeddxaPf/7zn5/zOj7xiU9w3333IaXkoYce4m/+5m/4t//233L06NHiOY899hhbt25lfHychx56iP/7f/8vd9xxB29+85tNCtpgMMwJkwI2GAzLygMPPMDHPvYxADzP4w/+4A/41//6X89pG1dffTUAx48fX9Bams0m/+7f/Tt+/Md/vEe03Xfffdx11128//3v51vf+hZXXHEFV111FQB33nlnEeHLfy6VSvT3909LWc+Wer3Ou9/9brZu3cpXvvIVhBAAvOY1r+l53gMPPMCtt97KV77ylSJq+rrXvY6zZ8/y/ve/n5//+Z/HsszneoPB8MKYvxQGg2FZef/73893vvMdHnnkEd761rfyzne+kw9/+MNz2oZSalHW8vjjjzM6Osr9999PmqbFl5SSH/uxH+M73/kOjUZjUfb1QuuYnJzkgQceKMTfVPbt28czzzzDz/zMzwD0rPe+++7jxIkT7N27d8nXajAYLg1MBNBgMCwrV111VRFNu++++wB43/vex/3338+6detmtY289u/yyy9f0FpOnToFwE/91E+d8zmjo6NUKpUF7eeFOHPmDABXXHHFOZ+Tr/U973kP73nPe2Z8ztmzZxd/cQaD4ZLECECDwXBBueeee3jooYfYv3//rAXgF77wBYQQ/OAP/uCC9r127VoA/vAP//Cc6dsNGzbMe/tBEAAQRVHP41OFWn7c3fV+51rr+973Pv7ZP/tnMz7npptumvdaDQbD6sIIQIPBcEF57LHHsCyL6667blbP/9M//VP+7u/+jp/+6Z8uIonzZevWrQwODvL000/zzne+87zP9X0fgFarNePvZno8rxXcsWNHjzj7whe+0PO8LVu2MDAwwEMPPcRb3vKWGdPAN910EzfeeCPbt2/nQx/60Asem8FgMJwPIwANBsOy8Eu/9Ev09/dzzz33sGHDBs6ePcvDDz/MZz/7Wd773vdOi/61Wi2efPLJ4vv9+/fz13/91/zt3/4tr3rVq3jooYdmtd8sy/jLv/zLaY9XKhVe//rX84d/+Ifcf//9jI6O8lM/9VOsX7+eM2fOsH37ds6cOcNHP/pRAG6//XYA/vt//+/cf//9uK7LTTfdRF9fH7fffjt/8Rd/wWc/+1muu+46giDg9ttv52Uvexk33XQT73nPe0jTlKGhIT7/+c/zjW98o2ct1WqV3/3d3+Vtb3sbP/IjP8Lb3/52NmzYwL59+9i+fTt/9Ed/BMDHPvYxXv/61/O6172Of/Wv/hWbNm1idHSUPXv28P3vf5+HH354bhfFYDCsXpTBYDAsA//zf/5P9cpXvlKtXbtWOY6jBgcH1ate9Sr16U9/etpzX/WqVymg+KpUKuq6665TP/VTP6UefvhhlWXZrPZ5//3392yn++vqq68unve1r31NveENb1DDw8PKdV21adMm9YY3vEE9/PDDPdt73/vepy6//HJlWZYC1GOPPaaUUurgwYPqta99rerr65u27WeffVa99rWvVf39/WrdunXqXe96l3rkkUd6Xp/z6KOPqle96lWqUqmocrmsXvziF6vf+Z3f6XnO9u3b1b/4F/9CrV+/XrmuqzZu3Kh++Id/WD300EOzOicGg8GglFJCqUVqpzMYDAaDwWAwXBQYGxiDwWAwGAyGVYYRgAaDwWAwGAyrDCMADQaDwWAwGFYZRgAaDAaDwWAwrDKMADQYDAaDwWBYZRgBaDAYDAaDwbDKMALQYDAYDAaDYZVhBKDBYDAYDAbDKsMIQIPBYDAYDIZVhhGABoPBYDAYDKsMIwANBoPBYDAYVhlGABoMBoPBYDCsMowANBgMBoPBYFhlGAFoMBgMBoPBsMowAtBgMBgMBoNhlWEEoMFgMBgMBsMqwwhAg8FgMBgMhlWGEYAGg8FgMBgMqwwjAA0Gg8FgMBhWGUYAGgwGg8FgMKwyjAA0GAwGg8FgWGUYAWgwGAwGg8GwyjAC0GAwrCiUUqRpipTyQi/FYDAYLlmcC70Ag8FgyJFSEscxrVYLIQSO4+A4DrZtY9s2lmU+sxoMBsNiIJRS6kIvwmAwrG7yqF+apiiliOO4eFwphRDCCEKDwWBYRIwANBgMFxQpJWmakmVZ8Vgcxz3iTimFlNIIQoPBYFgkjAA0GAwXhFzUJUnSI+ryNPD5xJwRhAaDwbAwjAA0GAzLjlKKJEmKqF8u4IBZCcCZtmcEocFgMMweIwANBsOykkf9sizDsqxC+HX/fq4CcCpGEBoMBsP5MQLQYDAsC0opsiwrLF5mEn+wOAJwpn1PFYR540l/f78RhAaDYdVhbGAMBsOSMzXley7xl3O+380HIQS2bfesZ3x8nN27d3PvvfeaCKHBYFh1GAFoMBiWlCzLSJLkvFG/qeSJicUWgjndgtB13Z6GlDiOjSA0GAyXPEYAGgyGJaHb2w9eOOp3IZk
"text/html": [
"\n",
" <div style=\"display: inline-block;\">\n",
" <div class=\"jupyter-widgets widget-label\" style=\"text-align: center;\">\n",
" Figure\n",
" </div>\n",
" <img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOy9eZhkV3nf/zl3r6XXWaXRviAJSUYLSMwMGGxsMMJ2SGIC8aYYg4MVSBwM/hlCYifkwfYTbBMvQhATYyCxQXZwsCWDcRAYkMSqWTUaaTT7PtNrbXc95/fHqXurqrtn1Pv0TJ8P9KPu6qp7z723pu+33uX7CqWUwmAwGAwGg8GwarAu9AIMBoPBYDAYDMuLEYAGg8FgMBgMqwwjAA0Gg8FgMBhWGUYAGgwGg8FgMKwyjAA0GAwGg8FgWGUYAWgwGAwGg8GwyjAC0GAwGAwGg2GVYQSgwWAwGAwGwyrDCECDwWAwGAyGVYYRgAaDwWAwGAyrDCMADQaDwWAwGFYZRgAaDAaDwWAwrDKMADQYDAaDwWBYZRgBaDAYDAaDwbDKMALQYDAYDAaDYZVhBKDBYDAYDAbDKsMIQIPBYDAYDIZVhhGABoPBYDAYDKsMIwANBoPBYDAYVhlGABoMBoPBYDCsMowANBgMBoPBYFhlGAFoMBgMBoPBsMowAtBgMBgMBoNhlWEEoMFgMBgMBsMqwwhAg8FgMBgMhlWGEYAGg8FgMBgMqwwjAA0Gg8FgMBhWGUYAGgwGg8FgMKwyjAA0GAwGg8FgWGUYAWgwGAwGg8GwyjAC0GAwGAwGg2GVYQSgwWAwGAwGwyrDCECDwWAwGAyGVYYRgAaDwWAwGAyrDCMADQaDwWAwGFYZRgAaDAaDwWAwrDKMADQYDMvCtm3beMMb3sBVV11FqVRieHiYzZs385nPfGbac1/96lcjhEAIgWVZ9PX1ccMNN/CmN72Jv/zLv0RKOat9/qt/9a+oVquLsv7HH3+c3/zN32R8fHza7x588EE++clPLsp+DAaDYTkwAtBgMCwL4+PjXHnllXzoQx/i0Ucf5VOf+hTXXHMNP/dzP8d//a//ddrzr7vuOp544gkef/xx/vqv/5pf//Vfp9Vq8aY3vYlXv/rVTExMLOv6H3/8cf7zf/7PRgAaDIZLAudCL8BgMKwOXv3qV/PqV7+657Ef//Ef58CBA3z84x/nAx/4QM/vSqUSL3/5y3see9vb3saf/umf8ta3vpVf+qVf4rOf/exSL9tgMBguSUwE0GAwXFDWrl2L48z+s+gv/MIvcN999/Hwww9z6NChRVnDP/zDP/Ca17yG/v5+yuUyW7du5f/9v/9X/P43f/M3ee973wvAtddeW6Snv/rVr3LNNdewe/duvva1rxWPX3PNNQB88pOfRAjBwYMHe/b31a9+tXh9N1/84hd5zWtew8DAAOVymVtuuYXf+q3f6nnOd7/7XX7yJ3+S4eFhgiDgzjvv5HOf+9yinAeDwbB6MALQYDAsK1JK0jTlzJkzPPjgg3zpS1/i//v//r85beMnf/InUUrx9a9/fcHr+cxnPsNrX/ta+vv7+bM/+zM+97nPMTw8zOte97pCBL7tbW/jXe96FwD/5//8H5544gmeeOIJ7rrrLj7/+c9z3XXXceeddxaPf/7zn5/zOj7xiU9w3333IaXkoYce4m/+5m/4t//233L06NHiOY899hhbt25lfHychx56iP/7f/8vd9xxB29+85tNCtpgMMwJkwI2GAzLygMPPMDHPvYxADzP4w/+4A/41//6X89pG1dffTUAx48fX9Bams0m/+7f/Tt+/Md/vEe03Xfffdx11128//3v51vf+hZXXHEFV111FQB33nlnEeHLfy6VSvT3909LWc+Wer3Ou9/9brZu3cpXvvIVhBAAvOY1r+l53gMPPMCtt97KV77ylSJq+rrXvY6zZ8/y/ve/n5//+Z/HsszneoPB8MKYvxQGg2FZef/73893vvMdHnnkEd761rfyzne+kw9/+MNz2oZSalHW8vjjjzM6Osr9999PmqbFl5SSH/uxH+M73/kOjUZjUfb1QuuYnJzkgQceKMTfVPbt28czzzzDz/zMzwD0rPe+++7jxIkT7N27d8nXajAYLg1MBNBgMCwrV111VRFNu++++wB43/vex/3338+6detmtY289u/yyy9f0FpOnToFwE/91E+d8zmjo6NUKpUF7eeFOHPmDABXXHHFOZ+Tr/U973kP73nPe2Z8ztmzZxd/cQaD4ZLECECDwXBBueeee3jooYfYv3//rAXgF77wBYQQ/OAP/uCC9r127VoA/vAP//Cc6dsNGzbMe/tBEAAQRVHP41OFWn7c3fV+51rr+973Pv7ZP/tnMz7npptumvdaDQbD6sIIQIPBcEF57LHHsCyL6667blbP/9M//VP+7u/+jp/+6Z8uIonzZevWrQwODvL000/zzne+87zP9X0fgFarNePvZno8rxXcsWNHjzj7whe+0PO8LVu2MDAwwEMPPcRb3vKWGdPAN910EzfeeCPbt2/nQx/60Asem8FgMJwPIwANBsOy8Eu/9Ev09/dzzz33sGHDBs6ePcvDDz/MZz/7Wd773vdOi/61Wi2efPLJ4vv9+/fz13/91/zt3/4tr3rVq3jooYdmtd8sy/jLv/zLaY9XKhVe//rX84d/+Ifcf//9jI6O8lM/9VOsX7+eM2fOsH37ds6cOcNHP/pRAG6//XYA/vt//+/cf//9uK7LTTfdRF9fH7fffjt/8Rd/wWc/+1muu+46giDg9ttv52Uvexk33XQT73nPe0jTlKGhIT7/+c/zjW98o2ct1WqV3/3d3+Vtb3sbP/IjP8Lb3/52NmzYwL59+9i+fTt/9Ed/BMDHPvYxXv/61/O6172Of/Wv/hWbNm1idHSUPXv28P3vf5+HH354bhfFYDCsXpTBYDAsA//zf/5P9cpXvlKtXbtWOY6jBgcH1ate9Sr16U9/etpzX/WqVymg+KpUKuq6665TP/VTP6UefvhhlWXZrPZ5//3392yn++vqq68unve1r31NveENb1DDw8PKdV21adMm9YY3vEE9/PDDPdt73/vepy6//HJlWZYC1GOPPaaUUurgwYPqta99rerr65u27WeffVa99rWvVf39/WrdunXqXe96l3rkkUd6Xp/z6KOPqle96lWqUqmocrmsXvziF6vf+Z3f6XnO9u3b1b/4F/9CrV+/XrmuqzZu3Kh++Id/WD300EOzOicGg8GglFJCqUVqpzMYDAaDwWAwXBQYGxiDwWAwGAyGVYYRgAaDwWAwGAyrDCMADQaDwWAwGFYZRgAaDAaDwWAwrDKMADQYDAaDwWBYZRgBaDAYDAaDwbDKMALQYDAYDAaDYZVhBKDBYDAYDAbDKsMIQIPBYDAYDIZVhhGABoPBYDAYDKsMIwANBoPBYDAYVhlGABoMBoPBYDCsMowANBgMBoPBYFhlGAFoMBgMBoPBsMowAtBgMBgMBoNhlWEEoMFgMBgMBsMqwwhAg8FgMBgMhlWGEYAGg8FgMBgMqwwjAA0Gg8FgMBhWGUYAGgwGg8FgMKwyjAA0GAwGg8FgWGUYAWgwGAwGg8GwyjAC0GAwrCiUUqRpipTyQi/FYDAYLlmcC70Ag8FgyJFSEscxrVYLIQSO4+A4DrZtY9s2lmU+sxoMBsNiIJRS6kIvwmAwrG7yqF+apiiliOO4eFwphRDCCEKDwWBYRIwANBgMFxQpJWmakmVZ8Vgcxz3iTimFlNIIQoPBYFgkjAA0GAwXhFzUJUnSI+ryNPD5xJwRhAaDwbAwjAA0GAzLjlKKJEmKqF8u4IBZCcCZtmcEocFgMMweIwANBsOykkf9sizDsqxC+HX/fq4CcCpGEBoMBsP5MQLQYDAsC0opsiwrLF5mEn+wOAJwpn1PFYR540l/f78RhAaDYdVhbGAMBsOSMzXley7xl3O+380HIQS2bfesZ3x8nN27d3PvvfeaCKHBYFh1GAFoMBiWlCzLSJLkvFG/qeSJicUWgjndgtB13Z6
" </div>\n",
" "
],
"text/plain": [
"Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Function to create the lettuce shape\n",
"def lettuce_leaf(u, v):\n",
" r = 1 + 0.3 * np.sin(6 * u) * np.sin(6 * v)\n",
" x = r * np.cos(u) * np.sin(v)\n",
" y = r * np.sin(u) * np.sin(v)\n",
" z = r * np.cos(v)\n",
" return x, y, z\n",
"\n",
"# Function to create the root\n",
"def root(t):\n",
" x = 0.1 * np.sin(10 * t)\n",
" y = 0.1 * np.cos(10 * t)\n",
" z = -t\n",
" return x, y, z\n",
"\n",
"# Generate the lettuce surface\n",
"u = np.linspace(0, 2 * np.pi, 100)\n",
"v = np.linspace(0, np.pi, 100)\n",
"u, v = np.meshgrid(u, v)\n",
"x, y, z = lettuce_leaf(u, v)\n",
"\n",
"# Generate the root\n",
"t = np.linspace(0, 1, 100)\n",
"x_root, y_root, z_root = root(t)\n",
"\n",
"# Plotting\n",
"fig = plt.figure()\n",
"ax = fig.add_subplot(111, projection='3d')\n",
"\n",
"# Plot the lettuce\n",
"ax.plot_surface(x, y, z, color='green', alpha=0.7)\n",
"\n",
"# Plot the root\n",
"ax.plot(x_root, y_root, z_root, color='brown', linewidth=2)\n",
"\n",
"# Adjust plot\n",
"ax.set_box_aspect([1,1,1])\n",
"ax.set_xlabel('X')\n",
"ax.set_ylabel('Y')\n",
"ax.set_zlabel('Z')\n",
"ax.set_title('3D Lettuce')\n"
]
2024-07-10 07:43:50 +02:00
},
{
"cell_type": "code",
"execution_count": null,
"id": "2dce1256-7afa-4e86-8aff-5db7b13b4d4d",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "conda",
"language": "python",
"name": "conda"
},
"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.3"
}
},
"nbformat": 4,
"nbformat_minor": 5
}