{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "#1 Loading functions and modules\n", "from fenics import *\n", "import matplotlib.pyplot as plt\n", "T = 0.1\n", "num_steps = 20\n", "dt = T/num_steps\n", "rho = 7500\n", "Cp = 500\n", "k = 50\n", "alpha = k/(rho*Cp)" ] }, { "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": [ "#2 Create mesh and define function space\n", "nx = 0.008\n", "ny = 0.003\n", "mesh = RectangleMesh(Point(0,0),Point(nx,ny),30, 30,'left')\n", "V = FunctionSpace(mesh, 'Lagrange', 1) #Lagrange are triangular elements\n", "plot(mesh)\n", "plt.show()\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# Boundary conditions\n", "u0 = Constant(100)\n", "def boundary(x, on_boundary):\n", " return on_boundary\n", "\n", "bc = DirichletBC(V,u0, boundary)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "u_n = project(1, V)\n", "u = TrialFunction(V)\n", "v = TestFunction(V)\n", "f = Constant(0.0)\n", "F = u*v*dx + alpha*dt*dot(grad(u), grad(v))*dx-u_n*v*dx\n", "a, L = lhs(F), rhs(F)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "vtkfile = File('solution/solution.pvd')\n", "u = Function(V)\n", "t = 0\n", "for n in range(num_steps):\n", " t += dt\n", " #u0.t = t\n", " solve(a == L, u, bc)\n", " #c = plot(u,)\n", " #plt.colorbar(c)\n", " #plt.show()\n", " ####\n", " vtkfile << (u, t)\n", " u_n.assign(u)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1e-13" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "1E-13" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "100.0" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "1e2" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "100.0000000000001" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "1E-13+1e2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Boundary conditions" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "#1 Loading functions and modules\n", "from fenics import *\n", "import matplotlib.pyplot as plt\n", "T = 4\n", "num_steps = 200\n", "dt = T/num_steps\n", "rho = 7500\n", "Cp = 500\n", "k = 50\n", "alpha = k/(rho*Cp)" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#2 Create mesh and define function space\n", "nx = 0.008\n", "ny = 0.003\n", "mesh = RectangleMesh(Point(0,0),Point(nx,ny),8, 8,'left')\n", "V = FunctionSpace(mesh, 'Lagrange', 1) #Lagrange are triangular elements\n", "plot(mesh)\n", "plt.show()\n", "\n" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [], "source": [ "#Boundary Conditions\n", "tol = 1E-14\n", "\n", "def BC1(x, on_boundary):\n", " return on_boundary and abs(x[0]-nx) < tol\n", "\n", "def BC2(x, on_boundary):\n", " return on_boundary and abs(x[0]-0) < tol\n", "\n", "bc1=DirichletBC(V,Constant(25),BC1)\n", "bc2=DirichletBC(V,Constant(800),BC2)\n", "bc=(bc1,bc2)" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "u_n = project(25, V)\n", "u = TrialFunction(V)\n", "v = TestFunction(V)\n", "f = Constant(0.0)\n", "F = u*v*dx + alpha*dt*dot(grad(u), grad(v))*dx-u_n*v*dx\n", "a, L = lhs(F), rhs(F)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [], "source": [ "vtkfile = File('solution/solution2.pvd')\n", "u = Function(V)\n", "t = 0\n", "for n in range(num_steps):\n", " t += dt\n", " #u0.t = t\n", " solve(a == L, u, bc)\n", " vtkfile << (u, t)\n", " #c = plot(u,)\n", " #plt.colorbar(c)\n", " #plt.show()\n", " u_n.assign(u)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "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.6.7" } }, "nbformat": 4, "nbformat_minor": 2 }