{
"cells": [
{
"cell_type": "markdown",
"id": "cb7faa36-d4d7-45bb-8d85-c42e4ccb1d53",
"metadata": {},
"source": [
"# Cylindrical cooling fin with Newton cooling boundary condition\n",
"\n",
"MW260614\n",
"\n",
"*Reference:* http://olivier.granier.free.fr/MOOC-Anglais/Transferts/co/ex-CCP-6-transferts.html\n",
"\n",
"Let's consider a solid body B (for instance, a power transistor housing) with $T_0$ its temperature, which is higher than $T_\\textrm{ext}$, temperature of the surrounding air.\n",
"\n",
"In order to cool the body B, we put into place a cooling fin, made of a cylinder of $L$ length and with \n",
"$S = \\pi R^2$ its section. The cooling at the surface of the fin is modeled using Newton's law of cooling.\n",
"\n",
"We will study this fin in stationary mode.\n",
"\n",
"This is a classic exercise in heat transfer. It is usually approached analytically with simplifying assumptions, giving a 1D problem and solution.\n",
"\n",
"For the PyFVTool model, we use `CylindricalGrid2D(r, z)` to work with actual Newton BCs. (In PyFVTool `Grid1D`, the Newton cooling through the side wall would show up as a (linear) source term. Interesting for a future exercise.)"
]
},
{
"cell_type": "markdown",
"id": "5b5deca3-3459-44d3-85a1-1431d63ce78a",
"metadata": {},
"source": [
"\n",
"\n",
"*The labeling of 'top' and 'bottom' of the cylinder may appear confusing in this drawing, since it has been rotated 90° clockwise with respect to PyFVTool's conventions. In PyFVTool 2D cylindrical, the `bottom` boundary corresponds to small z, and the `top` boundary to large z. In the radial direction, the `left` boundary is at small r (often, the center of the cylinder, so it should remain a \"no flux\" boundary). The `right` boundary is at large r, and represents the outer wall of the cylinder.*"
]
},
{
"cell_type": "markdown",
"id": "8d0e59eb-d1b0-47d1-8ec4-7de89dcfc6cc",
"metadata": {},
"source": [
"## to-do\n",
"\n",
"- explore more fancy plotting\n",
"- implement `Grid1D` model with linear source term modeling the Newton cooling of each volume element\n",
"- study appearance of radial gradient as aspect ratio of the cylinder decreases\n"
]
},
{
"cell_type": "markdown",
"id": "dce2cf2c-ef66-49c7-9b58-4a299ec66de2",
"metadata": {},
"source": [
"## FVM model in 2D cylindrical geometry"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "68bd434c-6cec-4351-aa56-634e58e17beb",
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import pyfvtool as pf"
]
},
{
"cell_type": "markdown",
"id": "cbdfefe3-5883-4d8c-a2a3-51a220289f40",
"metadata": {},
"source": [
"We use a very thin rod and high aspect ratio because the 1D analytic approximation (used for comparison)\n",
"is based on the assumption of a very high aspect ratio. \n",
"\n",
"For a later modeling exercise, we can of course play with the aspect ratio to investigate how the 1D analytic solution starts deviating in cases of ever lower aspect ratios."
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "f5b09c6e-867d-4c35-9aab-39b1a5aa20b3",
"metadata": {},
"outputs": [],
"source": [
"Nr = 20\n",
"Nz = 100\n",
"Lr = 0.075 \n",
"Lz = 3.0\n",
"\n",
"k = 50.0 # [W m-1 K-1]\n",
"h = 100.0 # [W m-2 K-1]\n",
"rhocp = 3.3e6 # \n",
"alpha = k / rhocp\n",
"\n",
"T_source = 400.0\n",
"T_ext = 280.0\n",
"rixsel = Nr//2 # index of r position whose z profile is analysed\n",
" # Take center of domain as representative 'radially averaged\" temperature \n",
" # along the rod\n",
"Tdev_tol = 2.0 # acceptable deviation between FVM Cylindrical2D and analytic 1D model"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "7a2021ac-751e-42ee-9e46-66e3415f0b7a",
"metadata": {},
"outputs": [],
"source": [
"mesh = pf.CylindricalGrid2D(Nr, Nz, Lr, Lz)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "8e66b9f3-f46d-4b4b-9a55-743a4a58deda",
"metadata": {},
"outputs": [],
"source": [
"Tcell = pf.CellVariable(mesh, 0.0)"
]
},
{
"cell_type": "markdown",
"id": "074266ef-36d1-4549-98d8-81e42dbb275c",
"metadata": {},
"source": [
"We consider that the hot body B keeps the \"bottom\" (see drawing!) of the cooling fin at a constant temperature."
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "805245cd-2ed4-4712-8ab0-32ea47b3f835",
"metadata": {},
"outputs": [],
"source": [
"Tcell.BCs.bottom.fixedValue(T_source)\n",
"\n",
"# Finally, the 'top' boundary condition setting should be irrelevant\n",
"# because the cylinder should long enough such that the extremity is \n",
"# already at T_ext. All BC types should give same result.\n",
"# Tcell.BCs.top.fixedValue(T_ext)"
]
},
{
"cell_type": "markdown",
"id": "732afc0d-eb7d-4e64-98cf-34ed33cdcf0a",
"metadata": {},
"source": [
"The Newton cooling boundary condition on the cylinder wall is set as follows."
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "0df2d6b4-4c8d-4771-9ae7-e5f4df9754f8",
"metadata": {},
"outputs": [],
"source": [
"Tcell.BCs.right.newtonCooling(k, h, T_ext)"
]
},
{
"cell_type": "markdown",
"id": "0f6a9759-17e3-4327-baf6-3b8c44d3deb7",
"metadata": {},
"source": [
"Now, we can solve the steady-state problem."
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "96d9eeed-41e3-474a-b010-bd9c9b459f17",
"metadata": {},
"outputs": [],
"source": [
"pf.solvePDE(Tcell, \n",
" [-pf.diffusionTerm(pf.FaceVariable(mesh, alpha))]);"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "eb47e3ca-f378-4f91-a4b4-87d2eb1baaec",
"metadata": {},
"outputs": [],
"source": [
"rr, zz, Trrzz = Tcell.plotprofile()\n",
"# in the future, convert to xarray.DataArray for easier processing"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "346581a2-b2c8-4332-849d-2d805d7cafba",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAiMAAAGiCAYAAAA1LsZRAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAABFBElEQVR4nO3df7QcdX3/8dfs3h+hkFx+JtxIAqT2BAxHxUTliqFQNJRYC+dwTvW0Anq0pzkFEe7JEYOeWrUSK1hTLATBAFW+gtULmlMpTWpJQIm18ST+INcUFUhKc0tjy70Q9N7c3c/3j92ZnZmdmZ3ZndnZ3ft8nHOTu3tnPu/5fN7z470zs7uWMcYIAAAgJ4W8FwAAAMxtFCMAACBXFCMAACBXFCMAACBXFCMAACBXFCMAACBXFCMAACBXFCMAACBXFCMAACBXFCMAACBXiYqRzZs367Wvfa0WLFigBQsWaGRkRP/0T/8UOc/OnTu1cuVKzZs3T8uWLdOdd97Z0gIDAIDekqgYOe200/SZz3xGu3fv1u7du/V7v/d7uuyyy/TUU08FTv/MM89o7dq1Wr16tfbs2aObbrpJ1113ncbGxlJZeAAA0P2sVr8o78QTT9Qtt9yi97///XV/u/HGG7V161aNj487z61bt04/+tGPtGvXrlbCAgCAHtHX7IylUklf//rXdeTIEY2MjAROs2vXLq1Zs8bz3CWXXKItW7bo6NGj6u/vD5xvenpa09PTzuNyuaz//d//1UknnSTLsppdZAAA0EbGGL300ktavHixCoXwizGJi5Gf/OQnGhkZ0W9+8xsdd9xxevjhh/Wa17wmcNqJiQktWrTI89yiRYs0Ozurw4cPa3h4OHC+jRs36hOf+ETSRQMAAB3o4MGDOu2000L/nrgYWb58ufbu3asXX3xRY2Njuvrqq7Vz587QgsR/JsO+KhR1hmPDhg0aHR11Hk9OTmrp0qV6q9aqT8FnUwAAQGeZ1VF9V49o/vz5kdMlLkYGBgb06le/WpK0atUq/fu//7v+9m//Vl/84hfrpj311FM1MTHhee6FF15QX1+fTjrppNAYg4ODGhwcDFjYfvVZFCMAAHSF6l2pjW6xaPlzRowxnvs73EZGRrR9+3bPc9u2bdOqVatC7xcBAABzS6Ji5KabbtITTzyhZ599Vj/5yU/00Y9+VDt27NCf/MmfSKpcXrnqqquc6detW6fnnntOo6OjGh8f1z333KMtW7Zo/fr16fYCAAB0rUSXaf77v/9bV155pQ4dOqShoSG99rWv1aOPPqq3v/3tkqRDhw7pwIEDzvRnnnmmHnnkEd1www26/fbbtXjxYt1222264oor0u0FAADoWi1/zkg7TE1NaWhoSBfqMu4ZAQCgS8yao9qhb2lyclILFiwInY7vpgEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALmiGAEAALlKVIxs3LhRb3zjGzV//nwtXLhQl19+ufbv3x85z44dO2RZVt3Pz372s5YWHAAA9IZExcjOnTt1zTXX6Pvf/762b9+u2dlZrVmzRkeOHGk47/79+3Xo0CHn53d+53eaXmgAANA7+pJM/Oijj3oe33vvvVq4cKF++MMf6oILLoicd+HChTr++ONjxZmentb09LTzeGpqKsliAgCALtLSPSOTk5OSpBNPPLHhtOeee66Gh4d18cUX67HHHoucduPGjRoaGnJ+lixZ0spiAgCADmYZY0wzMxpjdNlll+n//u//9MQTT4ROt3//fj3++ONauXKlpqen9ZWvfEV33nmnduzYEXo2JejMyJIlS3ShLlOf1d/M4gIAgDabNUe1Q9/S5OSkFixYEDpdoss0btdee61+/OMf67vf/W7kdMuXL9fy5cudxyMjIzp48KBuvfXW0GJkcHBQg4ODzS4aAADoIk1dpvngBz+orVu36rHHHtNpp52WeP7zzjtPTz/9dDOhAQBAj0l0ZsQYow9+8IN6+OGHtWPHDp155plNBd2zZ4+Gh4ebmhcAAPSWRMXINddco69+9av61re+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S1/6ku655x6Nj4/rhhtu0IEDB5zPDdmwYYOuuuoqZ/p169bpueee0+joqMbHx3XPPfdoy5YtWr9+feyYg4OD+vjHPx546WYuYRwqGIcKxqGCcahhLCoYh4puGofEb+2VKh969tnPflaHDh3SOeeco89//vO64IILJEnvfe979eyzz2rHjh3O9Dt37tQNN9zgfOjZjTfe2NSHngEAgN7TVDECAACQlsSXaQAAANJEMQIAAHJFMQIAAHJFMQIAAHKVSzFyxx136Mwzz9S8efO0cuVKPfHEE5HT79y5UytXrtS8efO0bNky3XnnnXXTjI2N6TWveY0GBwf1mte8Rg8//HBWi5+atMfhqaee0hVXXKEzzjhDlmVp06ZNGS59etIeh7vvvlurV6/WCSecoBNOOEFve9vb9IMf/CDLLqQm7bF46KGHtGrVKh1//PE69thj9frXv15f+cpXsuxCKrLYR9gefPBBWZalyy+/POWlTl/a43DfffdVvnre9/Ob3/wmy260LIv14cUXX9Q111yj4eFhzZs3T2effbYeeeSRrLqQirTH4cILLwxcH97xjndk2Y1gcb4gL00PPvig6e/vN3fffbfZt2+f+dCHPmSOPfZY89xzzwVO/8tf/tL81m/9lvnQhz5k9u3bZ+6++27T399vvvGNbzjTPPnkk6ZYLJqbb77ZjI+Pm5tvvtn09fWZ73//++3qVmJZjMMPfvADs379evPAAw+YU0891Xz+859vU2+al8U4/PEf/7G5/fbbzZ49e8z4+Lh53/veZ4aGhsx//ud/tqtbTcliLB577DHz0EMPmX379pmf//znZtOmTaZYLJpHH320Xd1KLItxsD377LPmVa96lVm9erW57LLLMu5Ja7IYh3vvvdcsWLDAHDp0yPPTybIYh+npabNq1Sqzdu1a893vftc8++yz5oknnjB79+5tV7cSy2IcfvWrX3nWg5/+9KemWCyae++9t029qml7MfKmN73JrFu3zvPcWWedZT7ykY8ETv/hD3/YnHXWWZ7n/uzP/sycd955zuM/+qM/Mr//+7/vmeaSSy4x7373u1Na6vRlMQ5up59+elcUI1mPgzHGzM7Omvnz55u///u/b32BM9SOsTDGmHPPPdd87GMfa21hM5TVOMzOzprzzz/ffOlLXzJXX311xxcjWYzDvffea4aGhlJf1ixlMQ6bN282y5YtC/3m+E7Ujv3D5z//eTN//nzz8ssvt77ACbX1Ms3MzIx++MMfas2aNZ7n16xZoyeffDJwnl27dtVNf8kll2j37t06evRo5DRhbeYtq3HoNu0ah1deeUVHjx7ViSeemM6CZ6AdY2GM0Xe+8x3t37/f+ZDCTpPlOHzyk5/UKaecove///3pL3jKshyHl19+WaeffrpOO+00/cEf/IH27NmTfgdSktU4bN26VSMjI7rmmmu0aNEinXPOObr55ptVKpWy6UiL2rWv3LJli9797nfr2GOPTWfBE2hrMXL48GGVSqW6L9VbtGhR3Zfp2SYmJgKnn52d1eHDhyOnCWszb1mNQ7dp1zh85CMf0ate9Sq97W1vS2fBM5DlWExOTuq4447TwMCA3vGOd+gLX/iC3v72t6ffiRRkNQ7f+973tGXLFt19993ZLHjKshqHs846S/fdd5+2bt2qBx54QPPmzdP555+vp59+OpuOtCircfjlL3+pb3zjGyqVSnrkkUf0sY99TJ/73Of06U9/OpuOtKgd+8of/OAH+ulPf6oPfOAD6S14An15BLUsy/PYGFP3XKPp/c8nbbMTZDEO3SjLcfjsZz+rBx54QDt27NC8efNSWNpsZTEW8+fP1969e/Xyyy/rO9/5jkZHR7Vs2TJdeOGF6S14ytIch5deeknvec97dPfdd+vkk09Of2EzlPb6cN555+m8885z/n7++efrDW94g77whS/otttuS2uxU5f2OJTLZS1cuFB33XWXisWiVq5cqf/6r//SLbfcor/4i79IeenTk+W+csuWLTrnnHP0pje9KYUlTa6txcjJJ5+sYrFYV8m98MILdRWc7dRTTw2cvq+vTyeddFLkNGFt5i2rceg2WY/Drbfeqptvvln/8i//ote+9rXpLnzKshyLQqGgV7/61ZKk17/+9RofH9fGjRs7shjJYhyeeuopPfvss3rnO9/p/L1cLkuS+vr6tH//fv32b/92yj1pTbv2EYVCQW984xs79sxIVuMwPDys/v5+FYtFZ5qzzz5bExMTmpmZ0cDAQMo9aU3W68Mrr7yiBx98UJ/85CfTXfAE2nqZZmBgQCtXrtT27ds9z2/fvl1vectbAucZGRmpm37btm1atWqV+vv7I6cJazNvWY1Dt8lyHG655RZ96lOf0qOPPqpVq1alv/Apa+c6YYzR9PR06wudgSzG4ayzztJPfvIT7d271/n5wz/8Q1100UXau3evlixZkll/mtWu9cEYo71792p4eDidBU9ZVuNw/vnn6+c//7lTlErSf/zHf2h4eLjjChEp+/XhH/7hHzQ9Pa33vOc96S54Eu29X7b29qQtW7aYffv2meuvv94ce+yx5tlnnzXGGPORj3zEXHnllc709tuTbrjhBrNv3z6zZcuWurcnfe973zPFYtF85jOfMePj4+Yzn/lM17y1N81xmJ6eNnv27DF79uwxw8PDZv369WbPnj3m6aefbnv/4spiHP76r//aDAwMmG984xuet6299NJLbe9fElmMxc0332y2bdtmfvGLX5jx8XHzuc99zvT19Zm777677f2LK4tx8OuGd9NkMQ5/+Zd/aR599FHzi1/8wuzZs8e8733vM319febf/u3f2t6/uLIYhwMHDpjjjjvOXHvttWb//v3mH//xH83ChQvNX/3VX7W9f3FluV289a1vNe9617va1pcgbS9GjDHm9ttvN6effroZGBgwb3jDG8zOnTudv1199dXmd3/3dz3T79ixw5x77rlmYGDAnHHGGWbz5s11bX796183y5cvN/39/eass84yY2NjWXejZWmPwzPPPGMk1f342+k0aY/D6aefHjgOH//4x9vQm9akPRYf/ehHzatf/Wozb948c8IJJ5iRkRHz4IMPtqMrLcliH+HWDcWIMemPw/XXX2+WLl1qBgYGzCmnnGLWrFljnnzyyXZ0pSVZrA9PPvmkefOb32wGBwfNsmXLzKc//WkzOzubdVdaksU47N+/30gy27Zty3rxI1nGVO9oAQAAyAHfTQMAAHJFMQIAAHJFMQIAAHJFMQIAAHJFMQIAAHJFMQIAAHJFMQIAAHJFMQIAAHJFMQIAAHJFMQIAAHJFMQIAAHL1/wFrCX75UfCFyAAAAABJRU5ErkJggg==",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"pf.visualizeCells(Tcell)\n",
"# in the future, come up with more fancy plotting"
]
},
{
"cell_type": "markdown",
"id": "69cad8c2-963d-4a68-b158-2c5099e0f114",
"metadata": {},
"source": [
"## Compare with analytic 1D solution\n",
"\n",
"The analytic solution of the 1D model can be written as follows.\n",
"\n",
"$T(z) = (T_0 - T_\\textrm{ext}) e^{-z/D} + T_\\textrm{ext}$\n",
"\n",
"with\n",
"\n",
"$D = \\sqrt{\\frac{kR}{2h}}$"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "3f0fcbfc-28cb-4a7a-becb-286b6a435b39",
"metadata": {},
"outputs": [],
"source": [
"D = np.sqrt((k*Lr)/(2*h))\n",
"Tan = (T_source-T_ext)*np.exp(-zz/D) + T_ext "
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "e1692c3e-6391-4cf1-8c3e-0766310e71f5",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAHFCAYAAAAUpjivAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAABm40lEQVR4nO3deVhVVdvH8e9hnlFAQRRBUzFTzLQBMyccslLLBkszzaHSsiyt1MrmtLJstsm0yXjqUZv1UXMoU3NIy6FMzVkQB2RQQIb1/gGclyOgoMBm+H2u61zAOvfZ+977bDg3a6+1t80YYxARERGpppysTkBERESkPKnYERERkWpNxY6IiIhUayp2REREpFpTsSMiIiLVmoodERERqdZU7IiIiEi1pmJHREREqjUVOyIiIlKtqdipQf7880/uvPNOGjVqhIeHBz4+PlxyySW89NJLHDt2rNTLi4iIYMiQIfafd+/ejc1mY9asWWWXNGCz2XjqqadKFPvUU09hs9nKdP0FzZo1C5vNxu7du8ttHefj9H21bNkybDYby5YtsySfn376iXbt2uHt7Y3NZuPrr7+uNPuwqH3z448/Fnus2Ww27rvvvnNaV/7vhs1mIzY2ttDz+cftkSNHzmn55+Kdd94p89/V0sg/DtatW2dZDudjyJAhRERElPlyT/+7KmXDxeoEpGJ88MEHjBo1isjISB5++GFatGhBZmYm69at491332XVqlXMmzfvvNZRr149Vq1axQUXXFBGWZfe8OHDufrqqy1bf2VzySWXsGrVKlq0aFHh6zbGcMstt9CsWTO+/fZbvL29iYyMJCsri1WrVlGvXr0Kz6mgovbNjz/+yNtvv13i4vpcPPbYY9x44424urqW2zpK4p133iEoKEgfrJXMvHnz8PPzszqNakfFTg2watUqRo4cSffu3fn6669xd3e3P9e9e3fGjh3LggULzns97u7uXHHFFee9nHNx8uRJvLy8aNCgAQ0aNLAkh8rIz8/Psvfk4MGDHDt2jBtuuIGYmBiH5+rUqWNJTgVZsW969erF/Pnzeffddxk9enSFrlsqt7S0NDw9PWnTpo3VqVRLOo1VA7zwwgvYbDbef/99h0Inn5ubG3369AFg2LBhBAQEcPLkyUJxXbt25aKLLip2PUWdxsrvnt+yZQu33XYb/v7+BAcHM3ToUJKSkhxen5yczIgRIwgMDMTHx4err76af/75p9B68pf5+++/c9NNN1G7dm17b1Jxp7Fmz55NdHQ0Pj4++Pj4cPHFFzNjxgz784sWLaJv3740aNAADw8PmjRpwt13331epxX+/vtvbrvtNoKDg3F3d6dhw4bccccdZGRk2GM2b95M3759qV27Nh4eHlx88cV8/PHHhZa1d+9ebr/9durWrYu7uzsXXnghr7zyCjk5OWfMoahTNUOGDMHHx4cdO3ZwzTXX4OPjQ1hYGGPHjnXIDWD//v3cdNNN+Pr6UqtWLQYOHMjatWvPerryqaeeshedjz76KDabzd7lX9RprM6dO9OyZUvWrl3LVVddhZeXF40bN2bKlCln3cabb7650HHZu3dvbDYbX331lb3t999/x2az8d133xW5b4YMGcLbb78NYD/lVNTptk8//ZQLL7wQLy8vWrduzffff3/G/Arq2rUrPXv25NlnnyUlJeWs8YsXLyYmJgY/Pz+8vLy48sor+emnn+zPb9mypdB2rl+/HpvNVmif9OnTh7Zt2wK5p0q2bNnC8uXL7dtZ8JRMSY63/N/3qVOn8uqrr9KoUSN8fHyIjo5m9erVJd4niYmJ3HnnnQQEBODt7U3v3r35999/C8V99NFHtG7dGg8PDwICArjhhhv466+/HGI6d+5M586dC7329FNOpc191qxZREZG2vfFJ598UuS2PP3001x++eUEBATg5+fHJZdcwowZMzj9ftsRERFcd911zJ07lzZt2uDh4cHTTz9tf+703rbk5GTGjRtHo0aNcHNzo379+owZM4YTJ044xH311Vdcfvnl+Pv723+Hhg4dWmSuNY2KnWouOzubJUuW0LZtW8LCws4a/8ADD5CYmMjs2bMd2rdu3crSpUu59957zymPG2+8kWbNmjFnzhzGjx/P7NmzefDBB+3PG2O4/vrr+fTTTxk7dizz5s3jiiuuoFevXsUus1+/fjRp0oSvvvqKd999t9i4SZMmMXDgQEJDQ5k1axbz5s1j8ODB7Nmzxx6zc+dOoqOjmT59OgsXLmTSpEn89ttvdOjQgczMzFJv7x9//MGll17K6tWreeaZZ5g/fz6TJ08mIyODU6dOAbBt2zbat2/Pli1beOONN5g7dy4tWrRgyJAhvPTSS/ZlHT58mPbt27Nw4UKeffZZvv32W7p168a4cePOeQxJZmYmffr0ISYmhm+++YahQ4cybdo0XnzxRXvMiRMn6NKlC0uXLuXFF1/kyy+/JDg4mP79+591+cOHD2fu3LkAjB49ukSnSePj4xk4cCC333473377Lb169WLChAl89tlnZ3xdt27d2Lp1K3FxcQBkZWWxfPlyPD09WbRokT1u8eLFuLi4FPlhCPDEE09w0003Abm9ofmPgqfbfvjhB9566y2eeeYZ5syZY//QLerDuTgvvvgiR44c4eWXXz5j3GeffUaPHj3w8/Pj448/5ssvvyQgIICePXvaC56LLrqIevXqsXjxYoft9PT0ZOvWrRw8eNBhn3Tr1g3IPVXSuHFj2rRpY9/O/PentMfb22+/zaJFi3jttdf4/PPPOXHiBNdcc02hf2aKM2zYMJycnJg9ezavvfYaa9asoXPnzhw/ftweM3nyZIYNG8ZFF13E3Llzef311/nzzz+Jjo5m+/btJVpPUUqS+6xZs7jzzju58MILmTNnDo8//jjPPvssS5YsKbS83bt3c/fdd/Pll18yd+5c+vXrx+jRo3n22WcLxf7+++88/PDD3H///SxYsIAbb7yxyBxPnjxJp06d+Pjjj7n//vuZP38+jz76KLNmzaJPnz72QmrVqlX079+fxo0bExsbyw8//MCkSZPIyso65/1TrRip1uLj4w1gbr311hK/plOnTubiiy92aBs5cqTx8/MzKSkp9rbw8HAzePBg+8+7du0ygJk5c6a97cknnzSAeemllxyWN2rUKOPh4WFycnKMMcbMnz/fAOb11193iHv++ecNYJ588slCy5w0aVKh3POfy/fvv/8aZ2dnM3DgwBJvf05OjsnMzDR79uwxgPnmm2/sz82cOdMAZteuXWdcRteuXU2tWrVMQkJCsTG33nqrcXd3N3v37nVo79Wrl/Hy8jLHjx83xhgzfvx4A5jffvvNIW7kyJHGZrOZbdu22dtO31dLly41gFm6dKm9bfDgwQYwX375pcPyrrnmGhMZGWn/+e233zaAmT9/vkPc3XffXeh9Lkr+8fDyyy87tBe1Dzt16lTkNrZo0cL07NnzjOvZsWOHAcwnn3xijDFmxYoVBjCPPPKIadSokT2ue/fupn379vafi9o39957rynuzyJggoODTXJysr0tPj7eODk5mcmTJ58xx9P3xcCBA423t7eJi4szxvz/cXv48GFjjDEnTpwwAQEB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4dGjR1m5cuU55RYZGUm9evX44osvHGZU7dmzp9AybTYbLi4uDqfF0tLS+PTTT89p3fmuu+46du7cSWBgYJHHQVEXNnR3d6dTp072CQcbNmw4rxyqA/Xs1AD5s4xGjRpF27ZtGTlyJBdddBGZmZls2LCB999/n5YtWzqM4ahVqxZ33HEH06dPJzw8vND4jrLWo0cPOnbsyCOPPMKJEydo164dv/7663n/oYiIiGDixIk8++yzpKWl2ae/b926lSNHjvD000/TvHlzLrjgAsaPH48xhoCAAL777juHmTyl9eqrr9KhQwcuv/xyxo8fT5MmTTh06BDffvst7733Hr6+vjz55JN8//33dOnShUmTJhEQEMDnn3/ODz/8wEsvvYS/vz8ADz74IJ988gnXXnstzzzzDOHh4fzwww+88847jBw5skTn/c/F4MGDmTZtGrfffjvPPfccTZo0Yf78+fzvf/8DcnsAK4u6devSsmVLFi5cSJcuXfDy8gJyi4Bjx45x7NgxXn311bMup1WrVkDujKlevXrh7OxMVFSUQ2FRlsaMGcPbb79dqKD08fHhzTffZPDgwRw7doybbrqJunXrcvjwYf744w8OHz7sUMDHxMTwzjvvcOTIEV577TWH9pkzZ1K7dm37tPOC2xobG8t//vMfGjdujIeHB61atarw423dunUMHz6cm2++mX379vHYY49Rv359Ro0aBeT+LXriiSeYOHEid9xxB7fddhtHjx7l6aefxsPDgyeffNK+rEGDBvHee+9x++23M2LECI4ePcpLL710zhfpc3Jy4tlnn2X48OHccMMNjBgxguPHj/PUU08VOo117bXX8uqrrzJgwADuuusujh49ytSpU4u83EdpjBkzhjlz5tCxY0cefPBBoqKiyMnJYe/evSxcuJCxY8dy+eWXM2nSJPbv309MTAwNGjTg+PHjvP7667i6utKpU6fzyqFasHBwtFSwjRs3msGDB5uGDRsaNzc34+3tbdq0aWMmTZpU5KyhZcuWGcBMmTKlyOWVZjZW/iyTfEXNyDl+/LgZOnSoqVWrlvHy8jLdu3c3f//9d7GzsU5fZsHnTvfJJ5+YSy+91Hh4eBgfHx/Tpk0bhzy3bt1qunfvbnx9fU3t2rXNzTffbPbu3Vto3SWdjZW/zJtvvtkEBgYaNzc307BhQzNkyBCTnp5uj9m0aZPp3bu38ff3N25ubqZ169ZFznLas2ePGTBggAkMDDSurq4mMjLSvPzyyyY7O9sh7vR8i5uN5e3tXaJ9t3fvXtOvXz/j4+NjfH19zY033mh+/PHHQrPUilLa2VgXXXRRoWWcPovmTB588EEDmOeff96hvWnTpgYwf/75p0N7UfsmIyPDDB8+3NSpU8fYbDaHPAFz7733Flrv6b8HRSluXxhjzPvvv2+AIo/p5cuXm2uvvdYEBAQYV1dXU79+fXPttdear776yiEuMTHRODk5GW9vb3Pq1Cl7++eff24A069fv0Lr3b17t+nRo4fx9fU1gMN+LsnxdqZtOv04LEr+cbBw4UIzaNAgU6tWLfusq+3btxeK//DDD01UVJRxc3Mz/v7+pm/fvmbLli2F4j7++GNz4YUXGg8PD9OiRQvzn//8p9jZWCXN/cMPPzRNmzY1bm5uplmzZuajjz4q8tj86KOPTGRkpHF3dzeNGzc2kydPNjNmzCh0vIeHh5trr722yP1S1PGUmppqHn/8cRMZGWnf/latWpkHH3zQxMfHG2OM+f77702vXr1M/fr1jZubm6lbt6655pprzC+//FLkemoamzGnXe1IJM/YsWOZPn06+/btK3JgptRML7zwAo8//jh79+7V1apFpErQaSwpZPXq1fzzzz+888473H333Sp0arC33noLgObNm5OZmcmSJUt44403uP3221XoiEiVoZ4dKcRms+Hl5cU111zDzJkzz/naOlL1ffTRR0ybNo3du3eTkZFBw4YNGTBgAI8//ni5jWMRESlrKnZERESkWqs80ylEREREyoGKHREREanWVOyIiIhItabZWOTeG+ngwYP4+vqW+BLeIiIiYi1jDCkpKYSGhp7xQqcqdsi9v0px900SERGRym3fvn1nvByGih3A19cXyN1Z53pZcREREalYycnJhIWF2T/Hi6Nih/+/EaSfn5+KHRERkSrmbENQNEBZREREqjUVOyIiIlKtqdgRERGRak3FjoiIiFRrKnZERESkWlOxIyIiItWaih0RERGp1lTsiIiISLWmYkdERESqNRU7IiIiUq1VmmJn8uTJ2Gw2xowZY28zxvDUU08RGhqKp6cnnTt3ZsuWLQ6vy8jIYPTo0QQFBeHt7U2fPn3Yv39/BWcvIiJSfUVERPDaa69ZncY5qxTFztq1a3n//feJiopyaH/ppZd49dVXeeutt1i7di0hISF0796dlJQUe8yYMWOYN28esbGxrFixgtTUVK677jqys7MrejNEREQAGDJkCDabrdBjx44d9O7dm27duhX5ulWrVmGz2fj999/ZvXs3NpsNFxcXDhw44BAXFxeHi4sLNpuN3bt3nzGXHTt2cOedd9KgQQPc3d1p1KgRt912G+vWrTunbTt27BijR48mMjISLy8vGjZsyP33309SUpJDXMHt9vb2pmnTpgwZMoT169ef03rPh+XFTmpqKgMHDuSDDz6gdu3a9nZjDK+99hqPPfYY/fr1o2XLlnz88cecPHmS2bNnA5CUlMSMGTN45ZVX6NatG23atOGzzz5j06ZNLF682KpN+n+pqbB7Nxw9anUmIiJSwa6++mri4uIcHo0aNWLYsGEsWbKEPXv2FHrNRx99xMUXX8wll1xibwsNDeWTTz5xiPv444+pX7/+WXNYt24dbdu25Z9//uG9995j69atzJs3j+bNmzN27Nhz2q6DBw9y8OBBpk6dyqZNm5g1axYLFixg2LBhhWJnzpxJXFwcW7Zs4e233yY1NZXLL7+80PaUO2OxO+64w4wZM8YYY0ynTp3MAw88YIwxZufOnQYwv//+u0N8nz59zB133GGMMeann34ygDl27JhDTFRUlJk0aVKx60xPTzdJSUn2x759+wxgkpKSynDLjDl1++3mEJhjTz5ZpssVEZHKbfDgwaZv375FPpeZmWmCg4PNU0895dB+4sQJ4+vra958801jjDG7du0ygHn88cdN06ZNHWIjIyPNE088YQCza9euIteTk5NjLrroItO2bVuTnZ1d6PnExERjjDFdunQx9957r8NzR44cMW5ubuann34yxhgTHh5upk2bVuz2fvnll8bNzc1kZmba2wAzb968QrF33HGH8fX1LfTZfS6SkpJK9Pltac9ObGwsv//+O5MnTy70XHx8PADBwcEO7cHBwfbn4uPjcXNzc+gROj2mKJMnT8bf39/+CAsLO99NKdIjW7YQDLz0v/+Vy/JFRGocY+DECWsexpTJJri4uHDHHXcwa9YsTIFlfvXVV5w6dYqBAwc6xPfp04fExERWrFgBwIoVKzh27Bi9e/c+43o2btzIli1bGDt2LE5OhT/ua9WqBcDw4cOZPXs2GRkZ9uc+//xzQkND6dKlS4m2KSkpCT8/P1xcXM4a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",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(zz, Trrzz[rixsel, :], 'r-', label='FVM Cyl2D') \n",
"plt.plot(zz, Tan, 'k:', label='analytic 1D')\n",
"plt.ylabel('T / K')\n",
"plt.xlabel('z / m')\n",
"plt.legend(frameon=False)\n",
"plt.title('Cylindrical cooling fin with Newton boundaries');"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "6447b206-e2b0-4419-a910-a183bdfe0445",
"metadata": {},
"outputs": [],
"source": [
"# Check notebook calculation integrity\n",
"\n",
"Tdev = Tan - Trrzz[rixsel, :]\n",
"assert np.all(abs(Tdev) < Tdev_tol),\\\n",
" \"deviation beyond tolerance between Cylindrical2D FVM and analytical 1D models\""
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "8ca2e7a4-fe61-46ee-bbcf-1b8d9cd3b44d",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.12.9"
}
},
"nbformat": 4,
"nbformat_minor": 5
}