diff --git a/Oven Brick Model.ipynb b/Oven Brick Model.ipynb index d09fa32..e7152b1 100644 --- a/Oven Brick Model.ipynb +++ b/Oven Brick Model.ipynb @@ -129,6 +129,309 @@ "print(solution.gradient(bc=[{\"derivative\": 1}, {\"value\": 0}]).data)" ] }, + { + "cell_type": "markdown", + "id": "57d2748e", + "metadata": {}, + "source": [ + "$$\n", + "\\partial_t u = - \\frac{1}{2} \\left| \\nabla u \\right|^2 - \\nabla^2 u - \\nabla^4 u \n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "id": "87ac9698", + "metadata": {}, + "outputs": [], + "source": [ + "from pde import PDEBase, ScalarField, UnitGrid\n", + "\n", + "\n", + "class KuramotoSivashinskyPDE(pde.PDEBase):\n", + " \"\"\"Implementation of the normalized Kuramoto–Sivashinsky equation\"\"\"\n", + "\n", + " def evolution_rate(self, state, t=0):\n", + " \"\"\"implement the python version of the evolution equation\"\"\"\n", + " state_lap = state.laplace(bc=\"auto_periodic_neumann\")\n", + " state_lap2 = state_lap.laplace(bc=\"auto_periodic_neumann\")\n", + " state_grad = state.gradient(bc=\"auto_periodic_neumann\")\n", + " return -state_grad.to_scalar(\"squared_sum\") / 2 - state_lap - state_lap2\n" + ] + }, + { + "cell_type": "markdown", + "id": "c20ac3d8", + "metadata": {}, + "source": [ + "# Heat diffusion equation with Coke Oven Brick Properties" + ] + }, + { + "cell_type": "markdown", + "id": "fcd17e59", + "metadata": {}, + "source": [ + "## For constant $k$, $C_p$" + ] + }, + { + "cell_type": "markdown", + "id": "e87a0bbf", + "metadata": {}, + "source": [ + "$$\n", + "\\partial_t T = \\alpha \\Delta T\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "116d5038", + "metadata": {}, + "source": [ + "$$\n", + "\\partial_t T = \\frac{k}{\\rho C_p} \\Delta T\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "dc87d038", + "metadata": {}, + "source": [ + "## For varying $k$, $C_p$" + ] + }, + { + "cell_type": "markdown", + "id": "d8d70c8f", + "metadata": {}, + "source": [ + "$$\n", + "\\partial_t T = \\frac{1}{\\rho C_p} \\nabla \\cdot \\left( k \\nabla T \\right)\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "f9ed2160", + "metadata": {}, + "source": [ + "$$\n", + "\\partial_t T = \\frac{1}{\\rho C_p} \\left(\\nabla k \\cdot \\nabla T + k \\nabla^2 T \\right)\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "511804d4", + "metadata": {}, + "source": [ + "$$\n", + "k = c_1 T + c_0\n", + "$$\n", + "\n", + "$$\n", + "\\nabla k = c_1 \\nabla T\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "id": "ab5e4123", + "metadata": {}, + "source": [ + "$$\n", + "k = c_1 T + c_0\n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": 97, + "id": "5a43dfeb", + "metadata": {}, + "outputs": [], + "source": [ + "class CokeOvenBrickHeatEqn(pde.PDEBase):\n", + " \"\"\"Implementation of the normalized Kuramoto–Sivashinsky equation\"\"\"\n", + "\n", + " def __init__ (self, bc=\"auto_periodic_neumann\"):\n", + " self.bc = bc\n", + " self.rho = 1900 # kg / m3\n", + " self.kCoef0 = 0.93 # W / m / K\n", + " self.kCoef1 = 0.698e-3 # W / m / K2\n", + " self.cpCoef0 = 837.2 # J / kg / K\n", + " self.cpCoef1 = 251.2e-3 # J / kg / K2\n", + "\n", + " def k (self, T):\n", + " return T * kCoef1 + kCoef0 \n", + " \n", + " def cp (self, T):\n", + " return T * cpCoef1 + cpCoef0\n", + " \n", + " def update_bc (self, gradT_chamber=None, T_oven=None):\n", + " bc0, bc1 = self.bc\n", + " if gradT_chamber:\n", + " self.bc[0] = {\"derivative\": gradT_chamber} \n", + " if T_oven:\n", + " self.bc[1] = {\"value\": T_oven}\n", + "\n", + " def evolution_rate(self, state, t=0):\n", + " \"\"\"implement the python version of the evolution equation\"\"\"\n", + " state_lap = state.laplace(bc=self.bc)\n", + " state_grad = state.gradient(bc=self.bc)\n", + " \n", + " k = self.kCoef1 * state + self.kCoef0\n", + " cp = self.cpCoef1 * state + self.cpCoef0\n", + " \n", + " k_grad = self.kCoef1 * state_grad\n", + " \n", + " return (state_grad.dot(k_grad) + k * state_lap) / self.rho / cp\n" + ] + }, + { + "cell_type": "code", + "execution_count": 98, + "id": "8f2a53b4", + "metadata": {}, + "outputs": [], + "source": [ + "T0 = 800 + 273.15\n", + "simulation_time = 24 * 60 * 60 # 24 hours in seconds\n", + "dt = 1 # timestep 1 second\n", + "bc_update_period = 60 # update bc every 60 seconds\n", + "brick_thickness = 0.14 # m\n", + "n_grid_brick = 32\n", + "\n", + "grid = pde.CartesianGrid([[0, brick_thickness]], n_grid_brick, periodic=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 91, + "id": "d28a0363", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "3761b63479294b0a83c952d90335ba4a", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + " 0%| | 0/1.0 [00:00, ?it/s]" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Initial Condition\n", + "# Brick Temperature\n", + "field = pde.ScalarField(grid, T0)\n", + "# BC-0: Heat Flux from chamber to wall\n", + "\n", + "# BC-1: Oven side brick temperature\n", + "\n", + "\n", + "eq = CokeOvenBrickHeatEqn(bc=[{\"derivative\": 100}, {\"value\": T0}])" + ] + }, + { + "cell_type": "code", + "execution_count": 100, + "id": "00b419af", + "metadata": {}, + "outputs": [], + "source": [ + "times = np.arange(0, simulation_time, dt)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b360d874", + "metadata": {}, + "outputs": [], + "source": [ + "solutions = []\n", + "for i, t in enumerate(times):\n", + " \n", + " solutions.append(eq.solve(field, t_range=10000, dt=0.01))" + ] + }, + { + "cell_type": "code", + "execution_count": 93, + "id": "1aa77782", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "4e856f3c5a5f455dbe10e5cc00c9cf82", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + " 0%| | 0/10000.0 [00:00, ?it/s]" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "f4bbf5a7090742b7b08118e85bd5d88a", + "version_major": 2, + "version_minor": 0 + }, + "image/png": "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", + "text/html": [ + "\n", + "