{ "metadata": { "name": "", "signature": "sha256:64659bd7118f2ed4fed4f5f394c8650d9e88f0ec10ddc93e80d00fdddca77372" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "code", "collapsed": false, "input": [ "from IPython.display import display, Image\n", "from IPython.display import display_pretty, display_html, display_jpeg, display_png, display_json, display_latex, display_svg\n", "from IPython.display import Latex\n", "from IPython.display import HTML\n", "Image(filename='logo3.jpg', width=100)" ], "language": "python", "metadata": {}, "outputs": [ { "jpeg": "/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8LCwkMEQ8SEhEP\nERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUFBQcGBw4ICA4eFBEUHh4eHh4e\nHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh7/wAARCAGQAUYDASIA\nAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA\nAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3\nODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm\np6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA\nAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx\nBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK\nU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3\nuLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDyeCK6\nu75LS0jmuLiaURxRRKWeRycBVA5JJIAArf8A+EB+IH/Ql+J//BXP/wDE0fC3/kqvhX/sOWf/AKPS\nv0Er6DG42pRqWR7tevDDQppU07pdD8+/+EB+IH/Ql+J//BXP/wDE0f8ACA/ED/oS/E//AIK5/wD4\nmv0Eorj/ALUq/wBM5v7Sj/z6ifn3/wAID8QP+hL8T/8Agrn/APiaP+EB+IH/AEJfif8A8Fc//wAT\nX6CUUf2pV/ph/aUf+fUT8+/+EB+IH/Ql+J//AAVz/wDxNH/CA/ED/oS/E/8A4K5//ia/QSij+1Kv\n9MP7Sj/z6ifn3/wgPxA/6EvxP/4K5/8A4mj/AIQH4gf9CX4n/wDBXP8A/E1+glFL+1av9MP7Sj/z\n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\n", "metadata": { "jpeg": { "width": 100 } }, "output_type": "pyout", "prompt_number": 1, "text": [ "" ] } ], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Visit our website or Fanpage!\n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Project 2.1: Derivation of incompressible Navier - Stokes equations
\n", "Project 2.2: Time discretization of Navier-Stokes Equations in 2D
\n", "Project 2.3: Space discratization and update equations
\n", "Project 2.4: Project 2.4: Boundary condition, linear equation and visualization of N-S equations
\n", "Project 2.5: Full Code
\n" ] }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Project 2.4: Boundary condition, linear equation and visualization of N-S equations" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "In following notebook I would like to discuss three very important aspect of numerical solution. Especially visualization is something I did not mentioned before, mainly because it is independent of rest of code." ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "1. Boundary conditions:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For $U$ and $V$ we should use Dirichlet boundary conditions, which are the simplest ones, which are fixing boundary point value. Of course in case of North and South boundaries for $U$ and West and East for $V$ we shall average two neighboring points in the following manner:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "$$U_N = \\frac{U_{i+\\frac{1}{2},j} + U_{i+\\frac{1}{2},j+1}}{2} \\quad(1.1)$$\n", "Thus North boundary conditions are equal to:\n", "$$2U_N - U_{i+\\frac{1}{2},j} = U_{i+\\frac{1}{2},j+1} \\quad(1.2)$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In case of implementation we would like to define initial conditions before entering time loop as set of 4x2 values representing 4 directions and two vector fields in following way:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "uN = np.array(x*0)\n", "vN = np.array(avg(x)*0)\n", "uS = np.array(x*0)\n", "vS = np.array(avg(x)*0)\n", "uW = np.array(avg(y)*0+1.0)\n", "vW = np.array(y*0)\n", "uE = np.array(avg(y)*0+1.0)\n", "vE = np.array(y*0)" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It would mean we have constant West -> East flow" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Those arrays we are going to concatenate with U and V interior arrays in first step of each iteration according to formula 1.2 as follows:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "Ue = op.cncat((uW, U, uE))\n", "Ue = op.cncat((2 * op.vec2col(uS) - Ue[:, 0], Ue, 2 * op.vec2col(uN)-Ue[:, -1]), dim='h')\n", "\n", "Ve = op.cncat((vS.T, V, vN.T), dim='h')\n", "Ve = op.cncat((2 * op.vec2row(vW) - Ve[1, :], Ve, op.vec2row(vE) - Ve[:, -1]))" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "heading", "level": 6, "metadata": {}, "source": [ "Boundary condition in pressure calculation:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We would like to have constant stream through boundaries so Neumann boundary conditions seems like a perfect match. Namely we would like to have zero flow, which means following equation holds:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$$\\frac {dP}{dx_i} = 0$$\n", "$$$$\n", "For example for y-axis we have:\n", "$$\\frac {P_{i,j+1} - P_{i,j}}{h} = 0 \\quad Thus \\quad P_{i,j+1} = P_{i,j}$$" ] }, { "cell_type": "heading", "level": 6, "metadata": {}, "source": [ "Boudary conditions in Laplacians" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In case of Laplacians there is one decisive parameter for inserting boundary conditions, namely:\n", "$$ -L_0 = \\frac{1}{h^2}\\begin{bmatrix} a_{11} & -1 & 0 \\\\ -1 & 2 & -1 \\\\ 0 & -1 & a_{11} \\end{bmatrix} \\quad(1.5) $$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", " \n", "\n", "\n", "\n", "\n", "\n", "
$a_{11}$Boundary condition
1Neumann
2Dirichlet
3Dirichlet between points
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For example if we act with this operator on matrix of coordinates $X$ you should see why:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Usually boudary conditions have a form: $$L_u X = Constant$$\n", "$$$$\n", "$$\\frac {a_{11}X_{11} + X_{21}}{h^2} = C$$\n", "$$$$\n", "$$a_{11} = -1 => C = \\frac {X_{21} - X_{11}}{h} = \\frac {dX}{dx}$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Which means pressure Laplacian is equal to:" ] }, { "cell_type": "code", "collapsed": false, "input": [ " Lp = sparse.kron(sparse.eye(ny), Lap(nx, hx, boudary_cond='Neumann')) + \\\n", " sparse.kron(Lap(ny, hy, boudary_cond='Neumann'), sparse.eye(nx))" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "2. Solving linear equations" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We are going to solve two types of linear equations:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$$L_u U^{**} = U^* \\quad(2.1)$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For each velocity component and Poisson equation for pressure:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "$$-\\Delta P^{n+1} = -\\frac{1}{\\Delta t} F^n =\\frac{1}{\\Delta t}\\nabla \\cdot {\\bf U}^{n} \\quad(2.2a)$$\n", "$$$$\n", "$$U^{n+1} = U^n - \\Delta t\\nabla P^{n+1} \\quad(2.2b)$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here Python flexibility plays important role, to solve those linear expression we might use library associated with scipy, useful for solving sparse matrix equations:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from scipy.sparse.linalg import spsolve" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As I mentioned before we want to obtain optimum speed of calculation, so we are going to use vector form of $U$ and $V$. It means our implementation of equations should look like this:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "def generate_laplacians(ubx='Neumann', uby=\"Neumann\", vbx=\"Neumann\", vby=\"Neumann\", pbx=\"Neumann\", pby=\"Neumann\",\n", " qbx=\"Dirichlet_between\", qby=\"Dirichlet_between\"):\n", "\"\"\"Returns laplacians for vector field (U, V) and scalar fields P and stream function Q\n", " Arguments are just names of boundary conditions\n", "\"\"\"\n", " Lu = sparse.eye(nx*(ny-1))+dt / Re*(sparse.kron(sparse.eye(ny), Lap(nx-1, hx, boudary_cond=ubx)) +\n", " sparse.kron(Lap(ny, hy, boudary_cond=uby), sparse.eye(nx-1)))\n", "\n", " Lv = sparse.eye(nx*(ny-1))+dt / Re*(sparse.kron(sparse.eye(ny-1), Lap(nx, hx, boudary_cond=vbx)) +\n", " sparse.kron(Lap(ny-1, hy, boudary_cond=vby), sparse.eye(nx)))\n", "\n", " Lp = sparse.kron(sparse.eye(ny), Lap(nx, hx, boudary_cond=pbx)) + \\\n", " sparse.kron(Lap(ny, hy, boudary_cond=pby), sparse.eye(nx))\n", "\n", " Lq = sparse.kron(sparse.eye(ny-1), Lap(nx-1, hx, boudary_cond=qbx)) + \\\n", " sparse.kron(Lap(ny-1, hy, boudary_cond=qby), sparse.eye(nx-1))\n", "\n", " return Lu, Lv, Lp, Lq\n", "\n", "#velocity:\n", " rhs = np.ravel(U)\n", " U = spsolve(Lu, rhs, permc_spec='COLAMD') #colamd is one of preparation method used in spsolve\n", " U = np.reshape(U, (nx-1, ny))\n", "\n", " rhs = np.ravel(V)\n", " V = spsolve(Lv, rhs, permc_spec='COLAMD') \n", " V = np.reshape(V, (nx, ny-1))\n", "\n", "#pressure:\n", " rhs = np.ravel((np.diff(op.cncat((uW, U, uE)), axis=0)/hx + np.diff(op.cncat((vS.T, V, vN.T), dim='h'))/hy)) #gradient\n", " P = spsolve(Lp, -rhs, permc_spec='COLAMD')\n", " P = np.reshape(P[:], (nx, ny)) # 2.2a\n", " \n", " U = U - np.diff(P, axis=0)/hx # 2.2b\n", " V = V - np.diff(P)/hy " ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Where in formulas 2.2a 2.2b $\\Delta t$ canceled out. " ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "3. Visualisation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Real - time visualization is possible due to incompressible flow argument. It means divergence of vector field $V$, $U$ is 0 so in analogy with electrodynamics we can introduce vector potential function call stream function $Q$ which is defined as follows:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " $$\\frac {\\partial Q}{\\partial x} = u \\quad \\frac {\\partial Q}{\\partial y} = -v$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There is an operation called orthogonal gradient which is defined to match equations above, using it we find:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " $$(\\nabla Q)^o = \\bigg[\\frac{\\partial Q}{\\partial x},-\\frac{\\partial Q}{\\partial y}\\bigg] = {\\bf U}$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Applying curl on both sides yells:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " $$\\nabla \\times (\\nabla Q)^o = -\\Delta Q^o = {\\nabla \\times{ \\bf U} = \\frac {\\partial u}{\\partial y} - \\frac {\\partial v}{\\partial x}}$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Which means calculating stream function Q turns into Poisson Equation. We are assuming Q as zero at the boundaries so final implementation has a following form:" ] }, { "cell_type": "code", "collapsed": false, "input": [ " rhs = np.diff(U)/hy - np.diff(V, axis=0)/hx\n", " rhs = np.ravel(rhs)\n", " q = spsolve(Lq, rhs, permc_spec='COLAMD')\n", " Q = np.zeros((nx+1, ny+1))\n", "\n", " Q[1:-1, 1:-1] = np.reshape(q, (nx-1, ny-1))" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It can\u2019t be that hard! For the last time we connect interior points of velocity field using quiver plot which combined with counter plot of stream function and colored contour plot of pressure should result in beautiful animation." ] }, { "cell_type": "code", "collapsed": false, "input": [ " rhs = np.diff(U)/hy - np.diff(V, axis=0)/hx\n", " rhs = np.ravel(rhs)\n", " q = spsolve(Lq, rhs, permc_spec='COLAMD')\n", " Q = np.zeros((nx+1, ny+1))\n", "\n", " Q[1:-1, 1:-1] = np.reshape(q, (nx-1, ny-1))\n", " [x_avg, y_avg] = np.meshgrid(avg(x), avg(y))\n", "\n", " cxf = plt.contourf(x_avg, y_avg, P.T)\n", " cx = plt.contour(X, Y, Q.T)\n", "\n", " Ue = op.cncat((op.vec2col(uS), avg(op.cncat((uW, U, uE)).T).T, op.vec2col(uN)), dim='h')\n", " Ve = np.concatenate((op.vec2row(vW), avg(op.cncat((op.vec2col(vS), V, op.vec2col(vN)), dim='h')), op.vec2row(vE)))\n", " #Len = (Ue**2 + Ve**2 + eps)**0.5 #normalizing factor\n", " #ax = plt.quiver(x, y, (Ue/Len).T, (Ve/Len).T, scale=50, headwidth=4, headlength=3, headaxislength=3)#with normalisation\n", " #st = plt.streamplot(x, y, (Ue/Len).T, (Ve/Len).T) #stream function\n", " ax = plt.quiver(x, y, Ue.T, Ve.T, scale=50, headwidth=4, headlength=3, headaxislength=3)\n", " tx = fig.add_subplot(111)\n", " for obs in obstacles: #obstacles\n", " tx.add_patch(obs.get_patch()[0])\n", " position=fig.add_axes([0.88,0.15,0.02,0.7])\n", " cbar = plt.colorbar(cxf, cax = position)\n", " plt.draw()\n", " plt.clf()" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can ask me: \"Hey obstacles? What obstacles\" I decided to take into conideration ractangular obstacles. Thus I write a class obstacle in a following way:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "class Obstacle():\n", " def __init__(self, lx, ly, sx, sy, boundary_cond='Dirichlet'):\n", " self.sx = sx\n", " self.sy = sy\n", " self.lx = lx\n", " self.ly = ly\n", " self.x0 = self.sx - self.lx/2.0\n", " self.y0 = self.sy - self.ly/2.0\n", " self.mesh = []\n", " self.bc = boundary_cond\n", " self.polygon = plt.Rectangle((self.x0, self.y0), self.lx, self.ly, fill=True)\n", " self.patches = [self.polygon]\n", "\n", " def set_points(self, hx, hy, nx, ny):\n", " map = np.zeros((nx, ny))\n", " map[round(self.x0/hx):round((self.x0+self.lx)/hx), round(self.y0/hy):round((self.y0+self.ly)/hy)] = 1\n", " self.mesh = map\n", "\n", " def get_points(self):\n", " return self.mesh\n", "\n", " def insert_obj(self, U, V): #set velocity to zero within an object\n", " U[self.mesh[:-1, :]==1] = 0\n", " V[self.mesh[:, :-1]==1] = 0\n", "\n", "\n", " def get_patch(self):\n", " return self.patches\n", " \n" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Example of obstacle class usage: " ] }, { "cell_type": "code", "collapsed": false, "input": [ "obstacles = []\n", "\n", "obstacles.append(Obstacle(0.1, 0.3, 0.2, 0.4)) \n", "for obs in obstacles:\n", " obs.set_points(hx, hy, nx, ny)\n", " \n", "#inside a loop:\n", " for obs in obstacles:\n", " obs.insert_obj(U, V)\n" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It should produce following picture:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from IPython.display import YouTubeVideo\n", "YouTubeVideo(\"jV8QKn6Xcuc\")" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "\n", " \n", " " ], "metadata": {}, "output_type": "pyout", "prompt_number": 2, "text": [ "" ] } ], "prompt_number": 2 }, { "cell_type": "heading", "level": 5, "metadata": {}, "source": [ "NEXT TIME: Full implementation and running examples" ] }, { "cell_type": "heading", "level": 4, "metadata": {}, "source": [ "Do not forget to visit our website:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from IPython.display import HTML\n", "HTML('')" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "" ], "metadata": {}, "output_type": "pyout", "prompt_number": 5, "text": [ "" ] } ], "prompt_number": 5 }, { "cell_type": "heading", "level": 5, "metadata": {}, "source": [ "4. References" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[1]Seibold Benjamin, MIT: A compact and fast Matlab code solving the incompressible Navier-Stokes equations on ractangular domains,
\n", "[2]Matyka Maciej, Wroclaw University: Solution to two-dimensional Incompressible Navier-Stokes Equations with\n", "SIMPLE, SIMPLER and Vorticity-Stream Function Approaches.\n", "Driven-Lid Cavity Problem: Solution and Visualization.\n" ] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }