{ "cells": [ { "cell_type": "markdown", "id": "420d11c1", "metadata": {}, "source": [ "# 1 · Building the Deformation Gradient\n", "\n", "Every tutorial after this one leans on one object: the **deformation gradient**\n", "$F$. Before we *use* it, let's *build* it, so it never feels like it appears\n", "by magic.\n", "\n", "A deformation is a map $\\phi$ that takes each material (rest) point\n", "$X$ to a deformed point $x = \\phi(X)$. The deformation gradient is its\n", "Jacobian,\n", "\n", "$$\n", "F = \\frac{\\partial x}{\\partial X},\n", "$$\n", "\n", "a local linear map that says how a tiny chunk of material around $X$ is\n", "stretched and rotated. For a single triangle the map is **affine**,\n", "$x = F X + t$, so $F$ is one constant $2\\times 2$ matrix we can solve\n", "for directly." ] }, { "cell_type": "code", "execution_count": 1, "id": "12779c07", "metadata": { "execution": { "iopub.execute_input": "2026-06-09T05:22:16.422542Z", "iopub.status.busy": "2026-06-09T05:22:16.422382Z", "iopub.status.idle": "2026-06-09T05:22:16.929938Z", "shell.execute_reply": "2026-06-09T05:22:16.929641Z" } }, "outputs": [], "source": [ "%matplotlib inline\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import simkit\n", "import utils" ] }, { "cell_type": "markdown", "id": "b86a75f9", "metadata": {}, "source": [ "## Eliminate the translation with edge vectors\n", "\n", "If $x = F X + t$, then subtracting vertex 0 from vertices 1 and 2 cancels the\n", "unknown translation $t$:\n", "\n", "$$\n", "x_i - x_0 = F\\,(X_i - X_0).\n", "$$\n", "\n", "Stack the two rest edges as columns of $D_m = [\\,X_1-X_0,\\; X_2-X_0\\,]$ and the\n", "two deformed edges as $D_s = [\\,x_1-x_0,\\; x_2-x_0\\,]$. Then $D_s = F D_m$,\n", "so\n", "\n", "$$\n", "\\boxed{\\,F = D_s\\, D_m^{-1}\\,}.\n", "$$\n", "\n", "That's the whole thing — two edge matrices and one inverse." ] }, { "cell_type": "code", "execution_count": 2, "id": "2aa42b14", "metadata": { "execution": { "iopub.execute_input": "2026-06-09T05:22:16.931159Z", "iopub.status.busy": "2026-06-09T05:22:16.931075Z", "iopub.status.idle": "2026-06-09T05:22:16.933477Z", "shell.execute_reply": "2026-06-09T05:22:16.933280Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "rest -> rest gives the identity:\n", " [[1. 0.]\n", " [0. 1.]]\n", "\n", "rotate 30 deg + translate -> F is exactly that rotation:\n", " [[ 0.866025 -0.5 ]\n", " [ 0.5 0.866025]]\n" ] } ], "source": [ "def deformation_gradient_triangle(X, U):\n", " \"\"\"F for a single triangle, built from rest edges (X) and deformed edges (U).\"\"\"\n", " Dm = np.column_stack([X[1] - X[0], X[2] - X[0]]) # rest edge vectors\n", " Ds = np.column_stack([U[1] - U[0], U[2] - U[0]]) # deformed edge vectors\n", " return Ds @ np.linalg.inv(Dm)\n", "\n", "# rest triangle (equilateral, side 1)\n", "X = np.array([[-0.5, 0.0], [0.5, 0.0], [0.0, np.sqrt(3) / 2]])\n", "\n", "# sanity checks ---------------------------------------------------------------\n", "print(\"rest -> rest gives the identity:\\n\", np.round(deformation_gradient_triangle(X, X), 6))\n", "\n", "theta = np.deg2rad(30)\n", "R = np.array([[np.cos(theta), -np.sin(theta)], [np.sin(theta), np.cos(theta)]])\n", "U_rot = (X @ R.T) + np.array([2.0, -1.0]) # rotate AND translate\n", "print(\"\\nrotate 30 deg + translate -> F is exactly that rotation:\\n\",\n", " np.round(deformation_gradient_triangle(X, U_rot), 6))" ] }, { "cell_type": "markdown", "id": "e94e7ccd", "metadata": {}, "source": [ "Two things already stand out:\n", "\n", "* **Translation drops out.** We built $F$ from *edges*, and translating every\n", " vertex leaves the edges unchanged. So $F$ is blind to where the triangle\n", " sits — only its shape matters.\n", "* A **rotation** maps to a rotation matrix $F = R$ (and $\\det F = 1$: no area\n", " change)." ] }, { "cell_type": "markdown", "id": "59b81118", "metadata": {}, "source": [ "## The same thing, for any simplex: `simkit.deformation_gradient`\n", "\n", "SimKit generalizes this to triangles *and* tetrahedra with a reference-element\n", "shape-function gradient (the matrix `H`), but it computes exactly the same\n", "$F$. Let's confirm our hand-built version matches it." ] }, { "cell_type": "code", "execution_count": 3, "id": "be4e4e73", "metadata": { "execution": { "iopub.execute_input": "2026-06-09T05:22:16.934434Z", "iopub.status.busy": "2026-06-09T05:22:16.934379Z", "iopub.status.idle": "2026-06-09T05:22:16.935969Z", "shell.execute_reply": "2026-06-09T05:22:16.935788Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "match: True\n", "[[ 0.866025 -0.5 ]\n", " [ 0.5 0.866025]]\n" ] } ], "source": [ "T = np.array([[0, 1, 2]]) # one triangle, vertices 0,1,2\n", "\n", "ours = deformation_gradient_triangle(X, U_rot)\n", "simkit_F = simkit.deformation_gradient(X, T, U_rot)[0] # [0] = first (only) element\n", "\n", "print(\"match:\", np.allclose(ours, simkit_F))\n", "print(np.round(simkit_F, 6))" ] }, { "cell_type": "markdown", "id": "a8aa6009", "metadata": {}, "source": [ "## Seeing it\n", "\n", "The rest triangle (dashed) and three deformed versions, each labelled with the\n", "$F$ we just built. Note the rotate-*and*-translate case: a big translation, yet\n", "$F$ is still a pure rotation with $\\det F = 1$." ] }, { "cell_type": "code", "execution_count": 4, "id": "9abcf957", "metadata": { "execution": { "iopub.execute_input": "2026-06-09T05:22:16.936850Z", "iopub.status.busy": "2026-06-09T05:22:16.936798Z", "iopub.status.idle": "2026-06-09T05:22:17.033654Z", "shell.execute_reply": "2026-06-09T05:22:17.033469Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAFrCAYAAAAAZzooAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjksIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvJkbTWQAAAAlwSFlzAAAPYQAAD2EBqD+naQAAmWpJREFUeJzt3Qd8U9UXwPHTvdl77yGgDAUBFZEtiiigIiqg4MKJExfiwsnfheIWxL1wo4iICwQUHCAgiIDs3UF38/+cW15MR9okzWry+/qJJelL8nKTvpN73r3nRthsNpsAAAAAAAAAfhTpzycDAAAAAAAAFEkpAAAAAAAA+B1JKQAAAAAAAPgdSSkAAAAAAAD4HUkpAAAAAAAA+B1JKQAAAAAAAPgdSSkAAAAAAAD4HUkpAAAAAAAA+B1JKQAAAAAAAPgdSSkAAAAAAAD4HUkpAAC85JlnnpGuXbtKTEyM3HXXXbQrAAAAUAaSUgAAeEn9+vVNMmrEiBG0KQAAAFAOklIAAHjJ8OHDZdiwYVKtWrUKPY4mtiIiImTv3r1ee29eeeUV85j//PNPmbcFej8D+Tye7JOnli9fLr169ZKkpCTzOKtWrZJACMa2Ddf3whcq+jcOAICvkZQCALjsiy++MB2c0i7nnHOOX54zOjpa6tSpI/379zcdroKCgoA+Xij58ccfTQf/4MGDgd6VkJabmyujRo2S/fv3y//+9z959dVXpWnTpj57Pt7X4HkvfIH3FwBQmUUHegcAAJXHr7/+an4+8cQTUr169SK/69Spk0+fc8aMGVK7dm3Jy8uT7du3yyeffCLjx4+Xd955R+bNm2fqOAXi8SqLCy64QM4991yJi4srs3M7bdo0GTduXIVHe8G5jRs3yubNm+X555+XCRMm+LypeF+D573w9/vryt89AACBRFIKAOCy3377TapWrSpXXnllhabLuPuc8fHxcvXVV0tUVJT99ltvvVVuu+02uf/+++XJJ5+UyZMn++zxTjjhBPnhhx9KfTy9z7333ivBTl+r4+tF4Ozevdv89GbiLyMjw0w/86dAPKe3hcp74Qx/9wCAYMf0PQCAy3SUUZcuXfyWkLKes3379qUmVKZOnWo6k6+99ppPH+/7778Xm81W6sWXCSmt83P22WdLlSpVpGbNmnLNNddIVlZWkW10dESzZs3KrbNTXm0Z3f7GG280/27evLl9eqMrtWjK289FixaZx/rggw9K3Pf11183v1uyZEm5z6PTCq3RIJoc1ZFthw8ftv9eR7xcccUV0rZtW0lISDD7olOzSnsNVvts2LChzMe03v/jjjvOJDNbtmwpzz77rHhKn6tPnz7m37pvug8nn3yy/fcrV66UIUOGmLZMTk6Wfv36ydKlS0vd9zVr1sh5551nRi1q4rQi72t5bVvec27btk0uuugiqVu3rhmV06FDB3nppZdK3Sd3ti3OnfeivOfx9Xth/W79+vVy/vnnm3bV0Zl33HGHOXZs3bpVzjjjDPP49erVk0cffbTIY7vyeS7v/S3t796d1+XK30daWppce+215jik7azToQcMGCC//PKLS+8pACC8MVIKAOCSnJwcWbdunelwFS+KrJ2V4tPdtFbLoUOHXHrsGjVqSGRkpNPn1M5eaWJjY820QVc7P95+vOJ0KqBe8vPzzU9NzGi7eDpCSRM92tGbPn266TTqtMkDBw7InDlzxNvOOuss03l+4403TG2dWrVqmdu1E13R/dSOfuPGjU2y78wzzyxyX71Nkws9e/Z06Xm0463Po+/RCy+8YDrADz74oL1gtU5l0ulKjRo1Mh3xZ555xjy/Jg0SExPdfszff/9dBg4caNpBO+r6vmryUhMdnrj00kulYcOGZkSejtbTBIv1WKtXr5YTTzzRJAtuuukm89nRpIvu/+LFi6VHjx5FHksTFK1btzaPpUmOiryv5bVDWc+5a9cuOf74400SQ0dR6mN//vnncvHFF0tqaqpJWFjc2bY4d94LV57HX++F1tvTRPgDDzwgn376qUlk6zFPH++UU04xbax/BzfccIPZh5NOOsnlz7O7f7fuvi5XPheXXXaZvPvuu6adjzrqKNm3b59JHv7555/StWtXp+8nAACGDQAAF6xcuVJ7WqVeVq9eXWL7RYsWOd2++GXTpk1lPucjjzzidL/69OljS0hIcOk99PbjFTd16tQSr+3ll1/2+HGGDRtW5PYrrrjC3P7rr7/abxs7dqytadOmTh/DovtRvK2L3/bwww+X+X5UZD+nTJlii4uLsx08eNB+2+7du23R0dHmcVx5nosuuqjI7WeeeaatZs2a9uuHDx8ucd8lS5aY+86ZM8ejxxw+fLgtPj7etnnzZvtta9assUVFRRVpX3dYfxvvvPNOkdv1uWJjY20b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eemll0zy6aqrrjKrImpsCNpYYQsxhw4d0v6s+Rls8vPzbdu3bzc/Qdv5Ulpamu3VV181n7e8vDxbQUFBiW2mTp1qa9q0qcfPsWDBAvO3tnTpUvttt912m61atWq2nJwctx5L9+O222+37di327Zj3y7b9n27bGlZabbDuRn2S8NGDW0TLplgv/7bml/N87/25twi2/njovs244n/2aKiomw//77K7LPu+1kjR9jatW9ny3bj9X/77bfmdejP4rctXrzY6f0uuOACW/v27Z3+Xu//8ssvO/39nj17zGdk//79leYY6k3B/DqJFbSdv1SmWKH7Gh8fb3vggQdKPPby5cvttzVq1Mh22WWX2a+vX7/ebPPOO+/YvE3by1m7WZ5//nkTK/7991/7bWPGjLF16NChws9/4okn2oYMGeJ2GzkiVpSNWBGaiLPuIVb4PlYUFBTYcwQad5OSkjx6LivmvfnmmyXi0I4dO4I2VjB9D0CZdLjmN998U+L2hQsXmiGfPXr0sN+m084OHjwoK1as8Gqrrl+3Xrb9u01OPe2/UUGtWreStu3aysKvvvbZO6jTAxNjkuzTBPWYnJmVLekZh2XxN4ul09GdjhSLj5DIyEgZfsYZsvbPtbJv716Xn0PPXKgqVarYb3P8t7OzKTpqYfTo0R6/NgCoTLHihx9+MItI6H0tp5xyipmiZ53ZXbdunfz7779FtmndurUZMVX87K836fRAff2lTRPU19+1a1czndCi+7d69WozrbEiS69///33ReKAK20EAIFErCg9VkREFPYlKurrr782jzN06FD7bRoT8vPzZdGiRUEbK0hKAfDIX3/9Ja1atbInSfRgZ13X37nr6ZkzpXHdBtKuRRu5+vIri8xr3rBho/nZsmVLkxiyliZt0bKFbNywwefvoKb4s3NyJTX9sPmpNm3cJM1btDB1o2x5+VIzpZoc1f4ot1//CSecYDpM9957r+zcudNc9N9dunQx88pLM2/ePNMGJKUAhEussLbV+2oyX6c+6xdvXaLa+p3jNo6xQq97Epe8/fp1f3S/KhIrLa+99prExcWZWl2Oz1VeGwFAMAr3WOEtuv9169Y1Namys7NNrSrremmvP1hihc+SUvfdd5+ZE6n1UKpVq+bSffRDceedd0r9+vVNrYH+/ftX+g8GUNno36EeoKyL0sBgXbeK0x46dMgU0NM6IVq4VWuG6HWlZ8DdMWLECJn59NPy9gfvyXU3TpYv538h5597vv33qYcOmZ9VqlaRa6+6Tpo1bC5bNm+RqlWqyMGDhb/zxevX163S0tIlLT3DzMu2mdcfIWlpqebYln4gVVo2ayHXXHONR68/JibGjC7Qs9567NPLxo0bZf78+U7rUc2dO1eOPfZYe7CuzIgVQOXk71ihj6PFX2NjY2XYsGFmgQx9TH0s63F0G6W3TZo0yXwR12Or4za+jBVlvX7djzp16pjaHp7GyuJJqdNOO83UI3SnjSorYgVQORErXIsV3mLFHKUnuHWkrioeK4MtVvgsKaVZuVGjRplq76566KGHzIoks2bNkp9++skMIdPikDq8DIB/LF682CRKrIvSBLF1XYvnOdLEibW6g6ceffRROWvEWdKzV0+59PLL5JHHZ8j3330v3337XYltq1arKilVUiQmtnDfvG3unLlSJaGquXRs18nc1qNrd2lSt6G5zHj4UYmOijJnFOJiYiUhPsF0CrRIoCf0+Hb22WebBP7nn38un3zyiTn7rYV5i6+UoXbv3m2G1obKKCliBVA5BSJWWPR4qycFylpIQn+vU6H1S7cvzJ492zy2frHXKYJKTxRYr//uu+8usr3eVpFY4UiLpetCGGXFAVfaqDIhVgCVE7HCvVjhTRoHyou5wRIrfLYMybRp08xPV5cO1CzqY489ZlZJ0bNoas6cOeYsl05V8XQZYgDu6datmyxfvtx+XVeA0ESx3q6s1Ze0c6H1MPQgu+HIFLr9+/fbf1cR/Qb0N3Or//h9tZx40olS5cjjpaWmyd33TjMXlZqWVuHnKm7I0FPlq8ULJTc3T3bt2iXjxlwos197VerUrSuRkRHSsmlzqVmlulSrWs0suao1pXQ7q6Og3NknPUYuW7bMtKU1qlRHQenj6jLfxTt2b775pjmrEirHRGIFUDn5O1botprE1+SEjhKy6HHY+qJvPZ7edv/995uLdd3bsUJrceixW4/HGgP0u+tHH31kRruqwnqDhfvkjVhRfLSs3texZoirbVRZESuAyolY4Vqs8BYr5li1oyyOcTAYY4X/18Z1YtOmTaaWip5ls2iDaWFMXdLQWQdM50rqxWK9CfrGe3s4XEVZ+xNs+1UZ0HaetZejwoUTSl4vfrvOObY6FZY2bdoUuc2qifHdd98Vub813VYPaMUf1x2akFJZWYUjhVq1aml+6rQ2LXBu+Xvj39Krdy/xlpycXImNi5ejOnY01//dssX8bN+hvbRt1UaSE5Ls+6avUTtYpb1+a466K3799VcTkPR4Z91Hp3hoh+7PP/8s8TjaGTnppJNMMCvvOfT3zraxbi9+rAz24xOxAmUhVoRurLCmK+txt3379vb912OCfkcsXqvJcXqz3kfr91UkLhWnZ5/1ovuw5Uis6Nixo5kGYdHn81assOi0Dz05ceaZZ5qz7473d6WNSkOs+A/9ivBArPCsvRwRK7wbK1yJu67QOKA5lbS0NBOnrVkWet2KucEYK4ImKaWNp3RklCO9bv2uNNOnT7efPXGkjV/a1JdgsGfPnkDvQqVF27lGCwQ6HhTKCiauHCxKS/L27dtXHnzwQVm6dKl0797d3KaZfx3to/OXi2+/du1aM0xVi5U7e47CkuIii7762uxf126F86DbtG0jDRs1lM8++VwGDR5kbtu4YaNZ6e72O2+TisrLy5fM7GzJzy/c58K003+qJKRIUnxikYOxvv53333XrPRkneX4+OOP5aijjpJ69eoVef1ai0oTajpFr0mTJkUeW7fdtm2b7N271z7EVo95el1Xa3J8nPXr15uRCc8884xL75vuq7PtrPdUC8rrmRKLBq1gRqyAK4gVoRcrjj/+eDPaSu/btm1b+8p2WqBWVw3Sx9Ev3I0aNTLHYi3/YH3p1gT/1KlTfZZ0d2y/0l6/N2KFRadv68gznfZd/LlcaaPSECv+Q78ivBArXEOs8H2scCfulhUrTj75ZHO/Tz/91JRSUhoTdHpenz59zO+CMVa4lZS65ZZbzBeLsmjg15Wk/GXKlCkyefLkIiOlGjdubEYalLesur/pG6UHP10a2RtLPoYT2s49elDRz5j1OSvt82aN+HHls+j4WJYBAwaYaWYTJ040x4Xt27ebKbh6nNCaSMXpWQEtcqtZeEevv/66fPHFFzJw0CBJSE6UP/74Xf738Awzbe+kPifZt5t8w2S55cZbpG3bNtKmXRuZdufd0rZdWxk2fJh4qqDAJlm6MkVuYZHeCIf/R0VGSpXEwgKysTExJV7/mDFjTOFV/XnHHXfIypUrzXQ7nY5XfFvtQOjr12BgLcfq+DgPP/ywKfZ+4403ms/6Aw88YEZOaafD8bG0rbSzpkHGlfetrOVlrfe0Zs2aRWqc6CITFUWsqBiOd7Sdv1SmWKHHxCuuuMIkDXSkqB63rr/+eunXr58ZVW+56aabzO36XVQvenzWn2eddZZPvnvp36tj+/kqVlj0vvodV9u1+P1dbaPiiBX/oV8RHoiz7iFW+D5WKK0tqwXH9eSMjop9//33ze0aEzR/4Eqs0CST9iluuOEG02fQBNZtt90mY8eOLTKtPNhihVtJKd3ZcePGlblNixYtxBN6tkjpXEtrjqV1vXPnzk7vp19oSvtS4+zNDgbBvG/BjrZzvZ2cdSyKXy9+e3HOhmnq/T788EOzmIEmT3SI6HXXXSe33nprmY9Z/Hd6zNCpDFrgW7PpOm1t5Dmj5N777ymy7WVXXGp+/8jDj8qhg4ek94m95dXX50h0tPsDPvUlZefkSHZ2jhmb5ZiM0udMjk+UuNhYqVW1htPXrwsxaDJNX7+uXKHBYsaMGXLBBReU+ZqLv34dQvvVV1/ZA4a+d1qbRYNM8XnmmpQaOHCgOeC7Qp/L2Xvh2NF0/Lx449hErPAOjne0na9Vplih9Au0Po8eY3SalS4I8fTTTxfZ9sorrzSxQhNguoqQTnd+66237MXYvcl6zToNw9exwhqt8MEHH5hY4Sz2udJGpT0vsaIQ/YrwQpx1vZ2KI1Z4N1YoTRTpSq0WjZlK+wQ6AsrVWPHSSy/J1VdfberS6nt3zjnnmLjjuG2wxQq3enMaSB2zdN7UvHlzk5jSoWNWEkpHPekqfO6s4AfAPbocqadBWZMm2tlwhbODcM+ePU3duOzcHDmQpst520yiKDkpscTB7qZbbjSXitBRUTo6SkdJRRRLSCXExUtyQqJERkS6NM1Dz747O5vtqLwgpMNo9dhXHh2qWx49s+LNuimeIFYAoSfQsUJpDSX9Yq0XZzRWaMJLL8HCW7FCp2qUNxXClTZSxAoAvkCs8Nw///zj0nblxQqdLaajcctacC7YYoXPhutoIa9Vq1aZn/pi9N960eF/jkFaz/hYXyKuvfZauffee838xt9//10uvPBC80Vm+PDhvtpNIKxpNl7PHp933nkS6rReVHpGphzOzLInpAqTURESEx0tNatUk6pJKRIVWbmXz+7du7dPRgT4CrECCH7hFCvCBbECgLcRK0JPbz/1K3xW6PzOO++U2bNn26936dKlxPCzdevWyaFDOjLivzoAOo/ykksuMUOudaWU+fPnm0JcALxL/85OO+0082+rwHYoKrDZJCvLed0oXVEvPjau3KkplYWeFbGS/zoCNdgRK4DgFi6xItwQKwB4E7EiNL3ip36Fz5JS5Q0ZU8WHgmmn8O677zYXAL6loxCL1ywKJXp0ycnOlaycbFNDymH2tWj+SVfTS4zXqXqhkYyy+HOhCW8gVgDBLdRjRbgiVgDwJmJFaGrnp36Fz5JSABAouXl5kpWVI/kFBSXqRumoqJSEJLM0KgAAAAAgcEhKAQgZmoTKzMqWvLx8c90xGaV1ozQZFRsTG9B9BAAAAAAUIikFoNLTqcBZ2TmSk5Nrpu05JqMiIyNM3aiE2PiQqRsFAAAAAKHAZ6vvAQgt48aNsy9S4EndoHnz5lXo+adNvVsSY5JKXI4+6hhJTT8s2Tm5ZruIInWjEqRWlRqSGJcQkITU3r17zaqixx57rERHR0vHjh09fqwlS5bIcccdZxZ+aNu2rbz55psebQMAoRwr7rjjDnO8L37RY2Kw8lascOVx3n77bRkwYIDUrVtXqlWrZt6rH3/80QuvAgBcR6xw394Q7lcwUgqAz2lHo1mzZjJ8+HCPH+P3336Xo485Wp546nFzPS8/3ySiklNSzEgpx9FRcTGxkpKYJNFRgT3E/fvvv/LGG2+YlURzc3MlP79wWqG7tm3bJkOGDJG+ffvKgw8+KJ999pmMGTPGFJU86aSTXN4GAEI9Vvz666/SuXNneeaZZ4rcrgmYYOWtWOHK4zz11FPSokULmTRpkiQmJsqsWbNM3FixYoV06tTJC68GAHyLWBF6/QqSUgAqhT9+/0NO6XeKHNv9OFM3SouZK8dkVHRUlKQkJpukVDA4+uijZdeuXfYzQvql3xPaudLC7K+99prpRJxyyimydOlSeeihh+yBwZVtACDU/fbbb2Yk0PHHHy+VhbdihSuP88EHH0jNmjXt13WkVOPGjeXpp58ukcgDgFAVzrHimSDsVzB9D0Cp7r77bjO8PyUlRa644grJO5IEcrRw4ULp2bOnJCQkSL169cy0iYKCAvvvrWkTixcvltmzZ9uvlzW1Q0c9FXfo0CHZsnmLtG7TRtLSM0xCqnBVvcL/a90oHRlVs0p1vyek/vnnH/Oa9GdxkZHeOcRqO/fr188EBcvpp58uX3/9tb29XdkGAEIlVpRGY8XmzZulQ4cOEmz8EStceRzHhJSKjY2V5s2bl7pfAOAtxArX/BOm/QqSUgBKePHFF+Wuu+4yHQytP6EHxvfff7/INt98840MHjxYGjVqZM683nnnnfLYY4/JI488UmQusl66dOkip556qv26npF1TEItXfOzXPTwZGk1trc0PPdYaT32BJn46E2y7M9V5vcrV/5qtm3esoXp8OTn5ZkV9gpsBZIYF2/qRiXFJ5ZZN0ofR+/r7BLMiZu//vpLWrVqZf6dmppqfur1zMxMM13D1W0AoLLGClfPfKv27dt7fHyvzLHCE4cPH5Y///wzKBN5AEIDsSK4/BWE/Qqm7wEoYcaMGTJq1CiZOnWqua7DNHUOsaMpU6aYAntvvfWWPXN/8OBBefjhh2Xy5MmmAJ81JLZKlSpSu3btEkNkc/NyZeKMm2T2gnfM1DutE6Uysg7Lu99+Km8u+kjOOfl06RDVyNx+3qhzi9z/rmnTZOqdd7r0DurZ9/Hjxzv9vb5W7Vy52mmx5nE7/rRGCGh7eOtshnX2v2rVqqYYrb4XDzzwgKmZYrV5kyZNXNoGACpjrHA3KaVJMEf33HOP3H777SEfKzyhsSInJ0euvPLKgO4HgNBFrCibjX4FSSkARWnhvLVr15oiqJakpCQz9SIrK8tcz8jIkGXLlpkv5nrW2Dpz3L17d7MyxNatW810gPIOwJqQmvPVu+a6lZCyWNffXvyJNI+vK/Xq15eXX50tUVERkhiXKLHRMdKyZUuX3z4dcrp8+XKnvy/ekXK302KdTXC30+IOnfqiU2Q0+VSRbQCgssQKd5NSDRs2LLGCnxb2DqdY4SodxTZ9+nR5/PHHTYF5APA2YkX5ZtOvICkFoKh9+/aZjkP16tWL3F6jRg3Zvn27+feBAwfMNjoNQy/F6YoN5XU0fvrzFzNCqjyavPo7c6cc17GFnNCrV7nT9JzR/S8rUePO2WrHTsuOHTtk2LBh8tFHH0n9+vXd7rS4Qvdbh87q1BZte2VNkbFekyvbAEBlixWerLyny2V7qjLHCnds3LhRRo4caZJmOv0SAHyBWFG+0+lXkJQCUFStWrXMl24rsWHZv3+//d/aCdHEkE6H0C/ZxbVt27bcZp350ewiU/bKVGCTw7UiJDkhyeO3y5tTMrRQrFUs1ipEqEtp++pMc+vWrWXDhg1FbtPrOipK67S4ug0AVLZY4So9gfHHH3/IVVddVaHHqcyxwlU6ffK0004zJzFmzpwZ0H0BENqIFeWrSb+CpBSAorS+h9b/0FWQrLOnWgjVKkJrTdHo0aOHOdPqyhlpnU6m0zgcffjjF64lpFRkhGxMKzzz7ilvTsnwBa0JpWfSNXjrxZGufjFr1ixTXFCTTOrjjz+Wvn37muVaXd0GACpbrHCVPofeV5fMDtdY4epUmhEjRpj3791335WYmBif7CcAKGJFYByqZP0KCp0DKOG6666Tiy66yKzGo7U/nnrqKfNF1tH9998vAwcONEuFDh8+3BygtJ7Hl19+KV999VWRbfXM8DPPPCOffvqpqQOlB7f0rMNutXx2bo45E+7J1L3iZyH8Sb/0K12mXKfXWdd1hSnHZVZ1VSo9O1/aWfjLL79cnnzySRkzZowZBfD555+bguaLFi1yaxsAqEyxQu/j6iINOnXPeoyKqMyxwpXH0Vjxww8/yKuvvmpW3bPExcXZk4kA4E3ECu95N0T7FSSlAJQwbtw4U4BWOxi6QtL5559vzqzqbRbNlC9YsMAc7M4++2xztlWX4dZ/F6crLOmXX30cnTbQp08fSa6SKGmZrp8RT0rwrJaUr+k0DE2WOaMrU5V2fdOmTS5P4dDCvRoMrrnmGhkyZIjppM2dO9esdOXONgBQ2WKFFuN2hSa6YmNjpV27dhKM/BErXHkcTQRmZ2eXaP+mTZvapxgCgDcRK1zXLEz7FRG2sl51JaQZQy1QqUPWdGnhYKLFPnft2iV169YN+BLAlQ1t55709HSz+pAOvaxTp475vAVbQueCB66WN7/50KUpfFp7anTf4TLn5sf9sm96WNTPXDC2m7foylfz58+XoUOHFilUHMzHUG8K5tfJ8Y6285fKECuCGbEiOI+h3kSsCE3EWfcQKyqGWFG13FhBZgRAQEwaNtblmlK6nW4PAAAAAAgdJKWAEGSd6c53tZB4APRo31XGDhhV7ll5/b1u170dtS68fZZQMWoTCF+VIVYgsIgVAIgV8HWsICkFhKD4+HhzUNBh58Ec4J6f/JBc2H+kfYqeI+u6/l63Y0qJd+lnQ9vUWlEDQPipDLECgUWsAECsgK9jBUkpIATp6kb169c3RUutzHUwiomOkZdvnCFLn/jI1IxKSUgyBzT9qdf1dv29bgfvzm3/+++/TQ0ZLQwMIDxVlliBwCBWAFDECvg6VrD6HhCidHWjhQsXyvfffy/HHHOMKWYdjKONdJ90Kp9erANbMO5nqNAVrf744w/Zs2ePWdkKQHirLLEC/kWsAOCIWAFfxgqSUkCIqlevnpxwwgnyww8/yLZt28wy3Hqhs1E+TYxZybFQaS99PXl5eZKTk2M+Bz179pRGjRoFercABBixwnPECgDhgljhOWJF+UhKASGscePGJmutB0NdilOTEiiftldaWpqkpKSETFLKGn5drVo1M11H/w0AiljhGWIFgHBCrPAMsSIMk1L6pqtgLNqp9Rq0o6sFwFjxirbz12cuIyPDzPGtUqWKX54zVNpt9+7dpt1C8W9VPxPOWMdO61gaqogVoYk463m7ESs8azdiBbEiUDje0XaB+MwRKzxrN2KFLbySUpr0sTK5AADPj6VVq1YN2eYjVgCAd46lxAoAQEViRYQtxE6HayZy+/btQTntRkcgaLJs69atjFqh7fjMBbFw/lu1hhg3aNAgJEeJWYgVoSmc/3Yrgnaj3dxFrAg8/m5pOz5zlUM4/63aXOxXhNxIKX2xwV68Vz+M4faB9Bbajnbj8+Z7oXzW20KsCG3ECtqNz5vvESuCA8c72o7PXOUQrn+rVV3oV4TuaXAAAAAAAAAELZJSAAAAAAAA8DuSUn4UFxcnU6dONT9B2/GZC178rYLPX+XE3y7txucN4YLjHW3HZ65y4G+1fCFX6BwAAAAAAADBj5FSAAAAAAAA8DuSUgAAAAAAAPA7klIAAAAAAADwO5JSAAAAAAAA8DuSUgAAAAAAAPA7klIBdN9990mvXr0kMTFRqlWrFshdCWozZ86UZs2aSXx8vPTo0UOWLVsW6F0Ket9++62cfvrp0qBBA4mIiJB58+YFepcqhenTp8txxx0nKSkpUqdOHRk+fLisW7cu0LuFMEescA2xwn3ECs8QKxCMiBWuIVa4j1jhGWKF60hKBVBOTo6MGjVKLr/88kDuRlB76623ZPLkyTJ16lT55Zdf5JhjjpFBgwbJ7t27A71rQS0jI8O0lQZeuG7x4sUyadIkWbp0qSxYsEByc3Nl4MCBpj2BQCFWlI9Y4RlihWeIFQhGxIryESs8Q6zwDLHCdRE2m83mxvbwgVdeeUWuvfZaOXjwIO1bjI6M0pErTz31lLleUFAgjRs3lquuukpuueUW2ssFOlLqgw8+MKN+4J49e/aYEVMaVE466SSaDwFFrHCOWFFxxArPESsQTIgVzhErKo5Y4TlihXOMlEJQn/H5+eefpX///vbbIiMjzfUlS5YEdN8QHg4dOmR+1qhRI9C7AsAJYgUCjVgBBD9iBQKNWOEcSSkErb1790p+fr7UrVu3yO16fefOnQHbL4QHHZWnIxh79+4tHTt2DPTuAHCCWIFAIlYAlQOxAoFErCgbSSkv0yllOqyxrMvatWu9/bQAvExrS/3xxx/y5ptv0rbwOmIFEBqIFfAlYgUQGogVZYsu5/dw0/XXXy/jxo0rc5sWLVrQri6oVauWREVFya5du4rcrtfr1atHG8JnrrzySvnkk0/MaiONGjWipeF1xArvIVYgUIgV8DVihfcQKxAoxIrykZTystq1a5sLKi42Nla6desmCxcutBfp1qGPel3/uAFv03UftIi+Fob/5ptvpHnz5jQyfIJY4T3ECvgbsQL+QqzwHmIF/I1Y4TqSUgG0ZcsW2b9/v/mptZNWrVplbm/VqpUkJycHcteCxuTJk2Xs2LFy7LHHSvfu3eWxxx4zy5KOHz8+0LsW1NLT02XDhg3265s2bTKfLy3Y3aRJk4DuW7APrX399dflww8/lJSUFHvtsqpVq0pCQkKgdw9hilhRPmKFZ4gVniFWIBgRK8pHrPAMscIzxAo32BAwY8eOtelbUPyyaNEi3hUHTz75pK1Jkya22NhYW/fu3W1Lly6lfcqhn6HSPlv6mYNzpbWZXl5++WWaDQFDrHANscJ9xArPECsQjIgVriFWuI9Y4Rlihesi9H/uJLEAAAAAAACAimL1PQAAAAAAAPgdSSkAAAAAAAD4HUkpAAAAAAAA+B1JKQAAAAAAAPgdSSkAAAAAAAD4HUkpAAAAAAAA+B1JKQAAAAAAAPgdSSkAAAAAAAD4HUkpAAAAAAAA+B1JKQAAAAAAAPgdSSkAAAAAAACIv/0fIt+q4XMCdnwAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "cases = [(\"rotate + translate\", U_rot),\n", " (\"scale x1.6, y0.7\", X * np.array([1.6, 0.7])),\n", " (\"shear k = 0.7\", X @ np.array([[1.0, 0.7], [0.0, 1.0]]).T)]\n", "fig, axes = plt.subplots(1, 3, figsize=(12, 3.8))\n", "for ax, (name, U) in zip(axes, cases):\n", " utils.setup_axes(ax, (-1.5, 2.8), (-1.4, 1.6), title=name)\n", " utils.TriangleArtist(ax, U, rest=X)\n", " utils.text_box(ax, utils.format_F(deformation_gradient_triangle(X, U)), loc=\"lower right\")\n", "fig.suptitle(r\"$F = D_s D_m^{-1}$ built by hand, for three deformations\")\n", "fig.tight_layout(); plt.show()" ] }, { "cell_type": "markdown", "id": "5463cf31", "metadata": {}, "source": [ "### Takeaways\n", "* $F = D_s D_m^{-1}$: the deformed edges expressed in the rest-edge basis.\n", "* It is the **local linear part** of the deformation — translation-free by\n", " construction.\n", "* `simkit.deformation_gradient(X, T, U)` returns one $F$ per element and is\n", " what every later tutorial calls.\n", "\n", "Next we build intuition for what different $F$'s *look like*." ] } ], "metadata": { "kernelspec": { "display_name": "simkit", "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.13.9" } }, "nbformat": 4, "nbformat_minor": 5 }