{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# freud.cluster.Cluster and freud.cluster.ClusterProperties\n", "\n", "The `freud.cluster` module determines clusters of points and computes cluster quantities like centers of mass, gyration tensors, and radii of gyration. The example below generates random points, and shows that they form clusters. This case is two-dimensional (with $z=0$ for all particles) for simplicity, but the cluster module works for both 2D and 3D simulations." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import freud\n", "import matplotlib.pyplot as plt\n", "import numpy as np" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First, we generate a box and random points to cluster." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "box = freud.Box.square(L=6)\n", "points = np.empty(shape=(0, 2))\n", "for center_point in [(-1.8, 0), (1.5, 1.5), (-0.8, -2.8), (1.5, 0.5)]:\n", " points = np.concatenate(\n", " (\n", " points,\n", " np.random.multivariate_normal(\n", " mean=center_point, cov=0.08 * np.eye(2), size=(100,)\n", " ),\n", " )\n", " )\n", "points = np.hstack((points, np.zeros((points.shape[0], 1))))\n", "points = box.wrap(points)\n", "system = freud.AABBQuery(box, points)\n", "system.plot(ax=plt.gca(), s=10)\n", "plt.title(\"Raw points before clustering\", fontsize=20)\n", "plt.gca().tick_params(axis=\"both\", which=\"both\", labelsize=14, size=8)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we create a box and a cluster compute object." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "cl = freud.cluster.Cluster()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next, we use the `computeClusters` method to determine clusters and the `clusterIdx` property to return their identities. Note that we use `freud`'s *method chaining* here, where a compute method returns the compute object." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n", " 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n", " 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\n", " 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\n", " 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\n", " 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n" ] } ], "source": [ "cl.compute(system, neighbors={\"r_max\": 1.0})\n", "print(cl.cluster_idx)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "There are 200 points in cluster 0.\n", "There are 100 points in cluster 1.\n", "There are 100 points in cluster 2.\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(1, 1, figsize=(9, 6))\n", "for cluster_id in range(cl.num_clusters):\n", " cluster_system = freud.AABBQuery(\n", " system.box, system.points[cl.cluster_keys[cluster_id]]\n", " )\n", " cluster_system.plot(ax=ax, s=10, label=f\"Cluster {cluster_id}\")\n", " print(\n", " f\"There are {len(cl.cluster_keys[cluster_id])} points in cluster {cluster_id}.\"\n", " )\n", "\n", "ax.set_title(\"Clusters identified\", fontsize=20)\n", "ax.legend(loc=\"best\", fontsize=14)\n", "ax.tick_params(axis=\"both\", which=\"both\", labelsize=14, size=8)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We may also compute the clusters' centers of mass and gyration tensor using the `ClusterProperties` class." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "clp = freud.cluster.ClusterProperties()\n", "clp.compute(system, cl.cluster_idx);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Plotting these clusters with their centers of mass, with size proportional to the number of clustered points:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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97/z8aWXsen0M/jo3AlsOu10Pr70Mvb//e/46upSWr8hQ4bw4IMPprQO0jbSKqCx1m6w1l5hrf27tbbKWrsCuAuYbIw5IdX1ExGR4468/z6bJ36NXT//Bcc2bwZrob4erOXY5s3smvVzNk/8Gkc++CAp16+pqeH2229n2LBhdOrUiQEDBnDhhReyePHipFwPYPr06VxyySVJKx9g+/btXHrppXTp0oVevXpx2223URdHYLhlyxZuvPFGBg4cSKdOnRgyZAjf/OY3+ec//9mq9WuLe9AcmbA45QnAMaA21RURERHHkQ8+oPr66dgjR6IeY2trsUD1ddcz+I/PkH/66a12/W3btjFhwgQKCwuZPXs2Y8aMwefz8frrrzNz5ky2b9/eatdKhoaGBjweD8aYkO1er5eLL76Ynj17smrVKj7//HOuv/56rLU8/PDDUcsrLy/n61//OqNGjeLRRx9l9OjRHD58mJdffplbb72VNWvWJPstJSzaPWg2a23aPoBuwGbgd805/+yzz7aSnjwej/V4PKmuhkiHV1FRkfA53mPH7KavjLMVI0+J+7HpK+Os99ixVqv3hRdeaPv162cPHjzYaN++ffsC/x48eLB94IEHAq8Bu2jRopDjg4/517/+ZX/605/aESNG2E6dOtlevXrZqVOn2vr6envfffdZIOSxbNkya621n376qf3Wt75lu3XrZrt162Yvuugi+9FHHwWucd9999lTTz3Vzp0715500kk2KysrYt0XL15sjTF2+/btgW3z58+3nTp1svv37494L3w+nz311FPt2LFjbUNDQ6P9X3zxReDf8dbz2WeftSeddJItKCiwl19+ud2zZ09gf7LvgbWxP5dAuY3wO79NupyMMb80xtgmHiVh53QB/hfYgZNTE6ncm4wx5dEee/bsSf6bExHpYA4uWYKtr0/oHFtfz8FXXmmV6+/bt48lS5Zwyy23UFBQ0Gh/9+7dm112RUUFc+bM4b777qOyspLXXnuNCy64AIA777yTadOmMXnyZHbt2sWuXbs499xzqa2tpbS0lLy8PFasWMHq1avp168fkydPprb2eOfC1q1bWbhwIYsWLeK9994jLy+v0fVXr17NqFGjGDhwYGBbWVkZx44di9rKsn79ej788EPuuusuPB5Po/3dunUDiLue27Zt4/nnn+dvf/sbr776KuvWreNn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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(1, 1, figsize=(9, 6))\n", "\n", "for i in range(cl.num_clusters):\n", " cluster_system = freud.AABBQuery(system.box, system.points[cl.cluster_keys[i]])\n", " cluster_system.plot(ax=ax, s=10, label=f\"Cluster {i}\")\n", "\n", "for i, c in enumerate(clp.centers):\n", " ax.scatter(c[0], c[1], s=len(cl.cluster_keys[i]), label=f\"Cluster {i} Center\")\n", "\n", "plt.title(\"Center of mass for each cluster\", fontsize=20)\n", "plt.legend(loc=\"best\", fontsize=14)\n", "plt.gca().tick_params(axis=\"both\", which=\"both\", labelsize=14, size=8)\n", "plt.gca().set_aspect(\"equal\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The 3x3 gyration tensors $G$ can also be computed for each cluster. For this two-dimensional case, the $z$ components of the gyration tensor are zero. The gyration tensor can be used to determine the principal axes of the cluster and radius of gyration along each principal axis. Here, we plot the gyration tensor's eigenvectors with length corresponding to the square root of the eigenvalues (the singular values)." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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UaOgR6S1pFqLo7wdEZGjQkGPSLxEvanS1dq1OC1VThGRdkITjkpGZO2kfrky0WeulFNywr59+/jiiy+ora3NdFEybsOGDQAMHDgwwyVpnwoKCjj22GM55pjEU+9owlGRlpIrE33mSjkl6+3bt4+qqir69etHcXExxphMFymjDh48CMCIESMyXJL2x1rLoUOH2Lx5M0DSwKep1GVdxCtXRkHOlXJK1vviiy/o168fHTt2bPcBj2SWMYaOHTvSr18/vvjii1Y5h2p6RLxypTdVrpRTsl5tbS3FxcWNbyhylBQXF7daU6uCHpF4udKbKlfKKVlPNTySTVrzelTzloiIiLQLCnpERKTNGjRoEPfdd1+miyFZQkGPiIjkpKqqKm6++WaGDBlChw4d6NevH+effz7z5iWY664FTJs2jQsvvLDVjg+wceNGLrroIjp16kTPnj256aabEBo/8wAAIABJREFUqKmpadVzthfK6RERkZyzfv16xo4dS0lJCTNnzmTUqFGEQiHefPNNpk+fzsaNGzNdxKTq6uoIBAIN8leCwSBTp06lR48eLF68mJ07d/Ltb38bay2/+c1vMlTatkM1PSIiknNuuOEGrLWUl5dz2WWXMXz4cEaMGMGNN97IRx99lHA/YwzPP/98zLL4JrAXXniBE044gaKiIkpLS5kyZQp1dXXMmDGDWbNm8corr2CMwRjDwoULAdi8eTOXX3453bp1o1u3bkydOpU1a9ZEjzljxgxOOukknnrqqWjNVGRMIK/XX3+df/zjH8yePZvTTjuNyZMnc8899/DYY4+xb9++Zr5qoqBHRERyyq5du3j11Ve58cYb6dy5c4P13bp1a/KxKyoquOeee/jZz37G6tWreeONNzjvvPMAuOWWW7jssss455xz2Lp1K1u3buUrX/kK1dXVTJw4kaKiIhYtWsSSJUvo06cP55xzDtXV1dFjr1u3jjlz5jB37lw++ugjioqKGpx/yZIljBgxgv79+0eXTZkyhSNHjrB06dImPy9x1LwlIiItYn5FFYvXbGf8sFImj+zVaueprKzEWtsqoyZv27aNoqIivvrVr1JSUsLAgQMZNWoUAJ07d6a4uJgOHTrQu3fv6D5PP/001lqefPLJaHPVI488wrHHHsvLL7/MZZddBkBNTQ2zZ8+mV6/Er822bdsarO/ZsyeBQIBt27a19NNt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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(1, 1, figsize=(9, 6))\n", "\n", "for i in range(cl.num_clusters):\n", " cluster_system = freud.AABBQuery(system.box, system.points[cl.cluster_keys[i]])\n", " cluster_system.plot(ax=ax, s=10, label=f\"Cluster {i}\")\n", "\n", "for i, c in enumerate(clp.centers):\n", " ax.scatter(c[0], c[1], s=len(cl.cluster_keys[i]), label=f\"Cluster {i} Center\")\n", "\n", "for cluster_id in range(cl.num_clusters):\n", " com = clp.centers[cluster_id]\n", " G = clp.gyrations[cluster_id]\n", " evals, evecs = np.linalg.eig(G[:2, :2])\n", " arrows = np.sqrt(evals) * evecs\n", " for arrow in arrows.T:\n", " plt.arrow(com[0], com[1], arrow[0], arrow[1], width=0.05, color=\"k\")\n", "\n", "plt.title(\"Eigenvectors of the gyration tensor for each cluster\", fontsize=20)\n", "plt.legend(loc=\"best\", fontsize=14)\n", "ax.tick_params(axis=\"both\", which=\"both\", labelsize=14, size=8)\n", "ax.set_aspect(\"equal\")\n", "plt.show()" ] } ], "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.7.3" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 2 }