summaryrefslogtreecommitdiff
path: root/Fluid_Mechanics_by_Irfan_A._Khan/Chapter3.ipynb
diff options
context:
space:
mode:
Diffstat (limited to 'Fluid_Mechanics_by_Irfan_A._Khan/Chapter3.ipynb')
-rwxr-xr-xFluid_Mechanics_by_Irfan_A._Khan/Chapter3.ipynb541
1 files changed, 541 insertions, 0 deletions
diff --git a/Fluid_Mechanics_by_Irfan_A._Khan/Chapter3.ipynb b/Fluid_Mechanics_by_Irfan_A._Khan/Chapter3.ipynb
new file mode 100755
index 00000000..fa74673c
--- /dev/null
+++ b/Fluid_Mechanics_by_Irfan_A._Khan/Chapter3.ipynb
@@ -0,0 +1,541 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Chapter 3: Fluid Kinematics"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Example 3.1 Page no 117"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "(a) u = 4*X; v = -4*Y \n",
+ "(b) u= 4.0 m/s and v= -8.0 m/s\n",
+ "(c) Magnitude of velocity = 8.94 m/s and angle of resultant velocity = -63.4 deg\n"
+ ]
+ }
+ ],
+ "source": [
+ "# Dimension of flow field ; velocity components at (1,2) ; magnitude and direction of velocity \n",
+ "\n",
+ "from math import *\n",
+ "\n",
+ "# Given\n",
+ "\n",
+ "# V = 4*Xi-4Yj\n",
+ "\n",
+ "x=1 # x co-ordinate\n",
+ "\n",
+ "y=2 # y co-ordinate\n",
+ "\n",
+ "# Solution\n",
+ "\n",
+ "print \"(a) u = 4*X; v = -4*Y \"\n",
+ "\n",
+ "u = 4*x\n",
+ "\n",
+ "v=- 4*y\n",
+ "\n",
+ "print \"(b) u=\",round(u,0),\"m/s and v=\",round(v,0),\"m/s\"\n",
+ "\n",
+ "R =sqrt(u**2+v**2)\n",
+ "\n",
+ "ang = atan(v/u)*180/pi\n",
+ "\n",
+ "print \"(c) Magnitude of velocity =\",round(R,2),\"m/s and angle of resultant velocity = \",round(ang,1),\"deg\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Example 3.2 Page no 119"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "(a) Discharge = 1.06 m**3/s\n",
+ "(b) Mass flow rate = 1057.21 kg/s\n"
+ ]
+ }
+ ],
+ "source": [
+ "# Discharge and mass flow rate\n",
+ "\n",
+ "from math import *\n",
+ "\n",
+ "from __future__ import division\n",
+ "\n",
+ "# Given\n",
+ "\n",
+ "d = 0.3 # diameter of pipe in m\n",
+ "\n",
+ "v = 15 # velocity in m/s\n",
+ "\n",
+ "rho = 997.1 # density in kg/m**3\n",
+ "\n",
+ "A = pi*d**2/4\n",
+ "\n",
+ "# Solution\n",
+ "\n",
+ "Q=A*v\n",
+ "\n",
+ "print \"(a) Discharge =\",round(Q,2),\"m**3/s\"\n",
+ "\n",
+ "mdot = rho*Q\n",
+ "\n",
+ "print \"(b) Mass flow rate = \",round(mdot,2),\"kg/s\"\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Example 3.3 Page no 120 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Mean velocity of the flow = 5.0 m/s\n"
+ ]
+ }
+ ],
+ "source": [
+ "# Mean Velocity\n",
+ "\n",
+ "from math import *\n",
+ "\n",
+ "from __future__ import division\n",
+ "\n",
+ "from scipy import integrate\n",
+ "\n",
+ "# Given\n",
+ "\n",
+ "Vo = 10 # velocity in m/s\n",
+ "\n",
+ "r1 = 0\n",
+ "\n",
+ "ro = 0.1 # radius in m\n",
+ "\n",
+ "N = 1\n",
+ "\n",
+ "# Solution\n",
+ "\n",
+ "R = lambda r: (10*r-1000*r**3)\n",
+ "\n",
+ "R1,err=integrate.quad(R,r1,ro)\n",
+ "\n",
+ "Q = R1*2*pi\n",
+ "\n",
+ "A = pi*(0.1)**2\n",
+ "\n",
+ "V = Q/A\n",
+ "\n",
+ "print \"Mean velocity of the flow =\",round(V,0),\"m/s\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Example 3.4 Page no 126"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "2*x - 2*y**2\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "<matplotlib.figure.Figure at 0x2e9ee90>"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "# Sketch the stream lines in the first quadrant\n",
+ "\n",
+ "import matplotlib.pyplot as plt\n",
+ "\n",
+ "from math import *\n",
+ "\n",
+ "from scipy import integrate\n",
+ "\n",
+ "import numpy as np\n",
+ "\n",
+ "from sympy import *\n",
+ "\n",
+ "#init_printing(use_unicode=False, warp_line=False, no_global=True)\n",
+ "\n",
+ "# Given\n",
+ "\n",
+ "# V = 4*y(m)i+2(m)j\n",
+ "\n",
+ "x = Symbol('x')\n",
+ "U = integrate(2,x)\n",
+ "\n",
+ "#print u\n",
+ "\n",
+ "y = Symbol('y')\n",
+ "\n",
+ "V = integrate(-4*y,y)\n",
+ "\n",
+ "#print V\n",
+ "\n",
+ "Zhi = U + V\n",
+ "\n",
+ "print Zhi # for x and y =0 we get C = 0\n",
+ "\n",
+ "X = [5,6,7,8,9,10,11,12,13,14,15,16,17]\n",
+ "Y = [0,1.414,2,2.449,2.828,3.16,3.46,3.741,4,4.242,4.472,4.69,4.898]\n",
+ "\n",
+ "b1=plt.plot(X,Y)\n",
+ "\n",
+ "\n",
+ "X1 = [2.5,3,4,5,6,7,8,9,10,11,12,13,14,15]\n",
+ "Y1 = [0,1,1.732,2.23,2.645,3,3.31,3.60,3.87,4.123,4.35889,4.5825,4.795,5]\n",
+ "\n",
+ "b2=plt.plot(X1,Y1)\n",
+ "\n",
+ "\n",
+ "X2 = [0.5,1.5,2.5,3.5,4.5,5.5,6.5,7.5,8.5,9.5,10.5,11.5,12.5,13.5,14.5,15.5]\n",
+ "Y2 = [0,1.414,2,2.449,2.828,3.162,3.462,3.741,4,4.242,4.472,4.69,4.898,5.099,5.29,5.4772]\n",
+ "\n",
+ "b3=plt.plot(X2,Y2)\n",
+ "\n",
+ "plt.xlabel(\"x\")\n",
+ "\n",
+ "plt.ylabel(\"y\")\n",
+ "\n",
+ "plt.title(\"Streamline plot\")\n",
+ "\n",
+ "plt.legend([\"zhi=10\",\"zhi=5\",\"zhi=1\"])\n",
+ "plt.show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Example 3.5 PAge no 127"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Resutant velocity magnitude = 17.89 m/s\n",
+ "Angle = 63.4 deg with the X-axis in the 4th quadrant\n"
+ ]
+ }
+ ],
+ "source": [
+ "# magnitude and direction of flow field\n",
+ "\n",
+ "from math import *\n",
+ "\n",
+ "from sympy import *\n",
+ "\n",
+ "import numpy as np\n",
+ "\n",
+ "# Given\n",
+ "\n",
+ "x = 2 # X co-ordinate\n",
+ "\n",
+ "Y = 4 # Y co-ordiante\n",
+ "\n",
+ "# Solution\n",
+ "y = Symbol('y')\n",
+ "\n",
+ "zhi = 4*x*y\n",
+ "\n",
+ "zhiprime = zhi.diff(y)\n",
+ "\n",
+ "u = zhiprime\n",
+ "\n",
+ "x = Symbol('x')\n",
+ "\n",
+ "zhi = 4*x*Y\n",
+ "\n",
+ "zhiprime = zhi.diff(x)\n",
+ "\n",
+ "v = zhiprime\n",
+ "\n",
+ "R=sqrt(u**2+v**2)\n",
+ "\n",
+ "theta = atan(v/u)*180/pi\n",
+ "\n",
+ "print \"Resutant velocity magnitude = \",round(R,2),\"m/s\"\n",
+ "\n",
+ "print \"Angle =\",round(theta,1),\"deg with the X-axis in the 4th quadrant\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Example 3.6 Page no 130"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "(a) Velocity = 5.1 m/s\n",
+ "(b) Convective acceleration = 0.46 m**2/s\n"
+ ]
+ }
+ ],
+ "source": [
+ "# Determine velocity ; convective accleration\n",
+ "\n",
+ "from math import *\n",
+ "\n",
+ "from __future__ import division\n",
+ "\n",
+ "from sympy import *\n",
+ "\n",
+ "import numpy as np\n",
+ "\n",
+ "from scipy import integrate\n",
+ "\n",
+ "# Given\n",
+ "\n",
+ "d1 = 0.09 # diameter in cm\n",
+ "\n",
+ "d2 = 0.025 # diameter in cm\n",
+ "\n",
+ "rho = 1000 # density in kg/m**3\n",
+ "\n",
+ "mdot = 25 # mass flow rate in kg/s\n",
+ "\n",
+ "# Solution\n",
+ "\n",
+ "x = Symbol('x')\n",
+ "\n",
+ "A1 = pi*d1**2/4\n",
+ "\n",
+ "A2 = pi*d2**2/4\n",
+ "\n",
+ "AA = A1 - ((A1-A2)/40)*10 # from figure\n",
+ "\n",
+ "V = mdot/(rho*AA)\n",
+ "\n",
+ "print \"(a) Velocity =\",round(V,1),\"m/s\"\n",
+ "\n",
+ "AX = (A1 - ((A1-AA)/40)*x)\n",
+ "\n",
+ "v = 25*10**4/(rho*AX)\n",
+ "\n",
+ "vprime = v.diff(x)\n",
+ "\n",
+ "V1 = vprime\n",
+ "\n",
+ "# at x = 0.1 m we get dv/dx = 0..09\n",
+ "\n",
+ "VPrime = 0.09\n",
+ "\n",
+ "Acx = V*VPrime\n",
+ "\n",
+ "print \"(b) Convective acceleration =\",round(Acx,3),\"m**2/s\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Example 3.8 Page no 143 "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "z = -25.0\n",
+ "Hence the flow is rotational\n"
+ ]
+ }
+ ],
+ "source": [
+ "# Is the flow irrotational\n",
+ "\n",
+ "from math import *\n",
+ "\n",
+ "# Given\n",
+ "\n",
+ "# w = (16y-12x)i +(12y-9x)j\n",
+ "\n",
+ "# Solution\n",
+ "\n",
+ "y = Symbol('y')\n",
+ "\n",
+ "U = 16*y-12*x\n",
+ "\n",
+ "zhiprime = U.diff(y)\n",
+ "\n",
+ "u = zhiprime\n",
+ "\n",
+ "\n",
+ "x = Symbol('x')\n",
+ "\n",
+ "V = 12*y-9*x\n",
+ "\n",
+ "zhiprime1 = V.diff(x)\n",
+ "\n",
+ "v = zhiprime1\n",
+ "\n",
+ "#Vx = -9 # differentiate V wrt x\n",
+ "\n",
+ "#Vx = -9 # differentiate V wrt x\n",
+ "#Uy = 16 # differentiate U wrt y\n",
+ "\n",
+ "z = v-u\n",
+ "\n",
+ "print \"z = \",round(z,0)\n",
+ "\n",
+ "print \"Hence the flow is rotational\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Example 3.10 Page no 148"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Velocity at the larger cross section = 3.33 m/s\n"
+ ]
+ }
+ ],
+ "source": [
+ "# Velocity in larger section\n",
+ "\n",
+ "from math import *\n",
+ "\n",
+ "# Given\n",
+ "\n",
+ "d1 = 0.1 # diameter in m\n",
+ "\n",
+ "d2 = 0.3 # diameter in m\n",
+ "\n",
+ "V1 = 30 # velocity in m/s\n",
+ "\n",
+ "# Solution\n",
+ "\n",
+ "V2 = (d1**2/d2**2)*V1\n",
+ "\n",
+ "print \"Velocity at the larger cross section = \",round(V2,2),\"m/s\""
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 2",
+ "language": "python",
+ "name": "python2"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.3"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}