{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# CHAPTER18:LAMINAR BOUNDARY LAYERS"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example E01 : Pg 595"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The total frictional drag is:(a)D = 17563872.6566 N\n",
      "(b) D = 501884115.614 N\n"
     ]
    }
   ],
   "source": [
    "# All the quantities are expressed in SI units\n",
    "from math import sqrt\n",
    "p_inf = 101000.;                    # freestream pressure\n",
    "T_inf = 288.;                       # freestream temperature\n",
    "c = 2.;                             # chord length of the plate\n",
    "S = 40.;                            # planform area of the plate\n",
    "mue_inf=1.7894*10.**5.;               # coefficient of viscosity at sea level\n",
    "gam=1.4;                         # ratio of specific heats\n",
    "R=287.;                           # specific gas constant\n",
    "# the freestream density is\n",
    "rho_inf = p_inf/R/T_inf;\n",
    "# the speed of sound is\n",
    "a_inf = sqrt(gam*R*T_inf);\n",
    "# (a)\n",
    "V_inf = 100.;\n",
    "# thus the mach number can be calculated as\n",
    "M_inf = V_inf/a_inf;\n",
    "# the Reynolds number at the trailing is given as\n",
    "Re_c = rho_inf*V_inf*c/mue_inf;\n",
    "# from eq.(18.22)\n",
    "Cf = 1.328/sqrt(Re_c);\n",
    "# the friction drag on one surface of the plate is given by\n",
    "D_f = 1./2.*rho_inf*V_inf**2.*S*Cf;\n",
    "# the total drag generated due to both surfaces is\n",
    "D = 2.*D_f;\n",
    "print\"The total frictional drag is:(a)D =\",D,\"N\"\n",
    "# (b)\n",
    "V_inf = 1000.;\n",
    "# thus the mach number can be calculated as\n",
    "M_inf = V_inf/a_inf;\n",
    "# the Reynolds number at the trailing is given as\n",
    "Re_c = rho_inf*V_inf*c/mue_inf;\n",
    "# from eq.(18.22)\n",
    "Cf = 1.2/sqrt(Re_c);\n",
    "# the friction drag on one surface of the plate is given by\n",
    "D_f = 1./2.*rho_inf*V_inf**2.*S*Cf;\n",
    "# the total drag generated due to both surfaces is\n",
    "D = 2.*D_f;\n",
    "print\"(b) D =\",D,\"N\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example E02 : Pg 596"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The total frictional drag is: D = 4978.09594496 N\n"
     ]
    }
   ],
   "source": [
    "# All the quantities are expressed in SI units\n",
    "from math import sqrt\n",
    "Pr = 0.71;                    # Prandlt number of air at standard conditions\n",
    "Pr_star = Pr;\n",
    "Te = 288.;                     # temperature of the upper plate\n",
    "ue = 1000.;                    # velocity of the upper plate\n",
    "Me = 2.94;                    # Mach number of flow on the upper plate\n",
    "p_star = 101000.;\n",
    "R = 287.;                      # specific gas constant\n",
    "T0 = 288.;                     # reference temperature at sea level\n",
    "mue0 = 1.7894*10**-5;             # reference viscosity at sea level\n",
    "c = 2.;                        # chord length of the plate\n",
    "S = 40.;                       # plate planform area\n",
    "\n",
    "# recovery factor for a boundary layer is given by eq.(18.47) as\n",
    "r = sqrt(Pr);\n",
    "\n",
    "# rearranging eq.(16.49), we get for M = 2.94\n",
    "T_aw = Te*(1+r*(2.74-1));\n",
    "\n",
    "# from eq.(18.53)\n",
    "T_star = Te*(1 + 0.032*Me**2. + 0.58*(T_aw/Te-1.));\n",
    "\n",
    "# from the equation of state\n",
    "rho_star = p_star/R/T_star;\n",
    "\n",
    "# from eq.(15.3)\n",
    "mue_star = mue0*(T_star/T0)**1.5*(T0+110.)/(T_star+110.);\n",
    "\n",
    "# thus\n",
    "Re_c_star = rho_star*ue*c/mue_star;\n",
    "\n",
    "# from eq.(18.22)\n",
    "Cf_star = 1.328/sqrt(Re_c_star);\n",
    "\n",
    "# hence, the frictional drag on one surface of the plate is\n",
    "D_f = 1./2.*rho_star*ue**2.*S*Cf_star;\n",
    "\n",
    "# thus, the total frictional drag is given by\n",
    "D = 2.*D_f;\n",
    "\n",
    "print\"The total frictional drag is: D =\",D,\"N\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example E03 : Pg 600"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The total frictional drag is: D = 5014.11379241 N\n"
     ]
    }
   ],
   "source": [
    "# All the quantities are expressed in SI units\n",
    "from math import sqrt\n",
    "Pr = 0.71;                    # Prandlt number of air at standard conditions\n",
    "Pr_star = Pr;\n",
    "Te = 288.;                     # temperature of the upper plate\n",
    "ue = 1000.;                    # velocity of the upper plate\n",
    "Me = 2.94;                    # Mach number of flow on the upper plate\n",
    "p_star = 101000.;\n",
    "R = 287.;                      # specific gas constant\n",
    "gam = 1.4;                    # ratio of specific heats\n",
    "T0 = 288.;                     # reference temperature at sea level\n",
    "mue0 = 1.7894*10**-5;             # reference viscosity at sea level\n",
    "c = 2.;                        # chord length of the plate\n",
    "S = 40.;                       # plate planform area\n",
    "\n",
    "# recovery factor for a boundary layer is given by eq.(18.47) as\n",
    "r = sqrt(Pr);\n",
    "\n",
    "# from ex.(8.2)\n",
    "T_aw = Te*2.467;\n",
    "T_w = T_aw;\n",
    "\n",
    "# from the Meador-Smart equation\n",
    "T_star = Te*(0.45 + 0.55*T_w/Te + 0.16*r*(gam-1)/2*Me**2.);\n",
    "\n",
    "# from the equation of state\n",
    "rho_star = p_star/R/T_star;\n",
    "\n",
    "# from eq.(15.3)\n",
    "mue_star = mue0*(T_star/T0)**1.5*(T0+110)/(T_star+110.);\n",
    "\n",
    "# thus\n",
    "Re_c_star = rho_star*ue*c/mue_star;\n",
    "\n",
    "# from eq.(18.22)\n",
    "Cf_star = 1.328/sqrt(Re_c_star);\n",
    "\n",
    "# hence, the frictional drag on one surface of the plate is\n",
    "D_f = 1./2.*rho_star*ue**2.*S*Cf_star;\n",
    "\n",
    "# thus, the total frictional drag is given by\n",
    "D = 2.*D_f;\n",
    "\n",
    "print\"The total frictional drag is: D =\",D,\"N\""
   ]
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python [Root]",
   "language": "python",
   "name": "Python [Root]"
  },
  "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.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
