{
 "metadata": {
  "name": "",
  "signature": "sha256:2b710cf5b5be9f51b281cf20f926c177245f0b5c79ffccf88ed3e06dd1ffcbfa"
 },
 "nbformat": 3,
 "nbformat_minor": 0,
 "worksheets": [
  {
   "cells": [
    {
     "cell_type": "heading",
     "level": 1,
     "metadata": {},
     "source": [
      "Chapter 3- Optical Fiber Fabrication"
     ]
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example1: PgNo-83"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import math\n",
      "\n",
      "# variable declaration\n",
      "n1=1.50 # core refractive index\n",
      "n2=1.48 # cladding refractive index\n",
      "y=1.3*math.pow(10,(-6))\n",
      "m=1000 # the no. of models\n",
      "\n",
      "# Calculations\n",
      "v=math.sqrt(2*m)\n",
      "a=(v*y)/(2*math.pi*(math.sqrt(pow(n1,2)-math.pow(n2,2)))*math.pow(10,6)) # core radius in micrometer\n",
      "\n",
      "# Results\n",
      "print ('%s %.2e %s' %(\" core radius= \",a ,\"micrometer\"))\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        " core radius=  3.79e-11 micrometer\n"
       ]
      }
     ],
     "prompt_number": 1
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example2: PgNo-83"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import math\n",
      "\n",
      "# Variable declaration\n",
      "n1=1.505 # core refractive index\n",
      "n2=1.502 # cladding refractive index\n",
      "\n",
      "# Calculations\n",
      "n_m=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
      "y=1.3*math.pow(10,(-6))\n",
      "v=2.4\n",
      "a=(v*y)/(2*math.pi*(math.sqrt(math.pow(n1,2)-math.pow(n2,2))))*math.pow(10,6)# core radius in micrometer\n",
      "\n",
      "# Results\n",
      "print ('%s %.2f'%(\" numerical aperture= \",n_m))\n",
      "print ('%s %.3f %s' %(\"\\n core radius= \",a,\"micrometer\"))"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        " numerical aperture=  0.09\n",
        "\n",
        " core radius=  5.228 micrometer\n"
       ]
      }
     ],
     "prompt_number": 2
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example3: PgNo-84"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import math\n",
      "# Variable declaration\n",
      "\n",
      "n1=1.5 # core refractive index\n",
      "dl=0.01 # index difference\n",
      "m=0 # for the dominant mode\n",
      "v=0 # for the dominant mode\n",
      "y=1.3 # in micrometer\n",
      "a=5.0 # radius in micrometer\n",
      "\n",
      "# Calculations\n",
      "k=(2*math.pi)/y\n",
      "b=math.pow(k,2)*math.pow(n1,2)-(2*k*n1*math.sqrt(2*dl))/a\n",
      "B=math.sqrt(b) # propagation constant in rad/um\n",
      "\n",
      "# Results\n",
      "print ('%s %.3f %s' %(\" propagation constant= \",B,\"rad/um\"))"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        " propagation constant=  7.221 rad/um\n"
       ]
      }
     ],
     "prompt_number": 3
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example4: PgNo-86"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "# Printing the results\n",
      "b=1/2 # propagtion constant\n",
      "print (\" normalised propagtion constant\")\n",
      "print (\"\\n B=(pow((b/k),2)-pow(n2,2))/(pow(n1,2)-pow(n2,2))\")\n",
      "print (\"\\n thus when b=1/2\")\n",
      "print (\"\\n B=k*sqrt(pow(n2,2)+b*(pow(n1,2)-pow(n2,2))\")\n",
      "print (\"\\n B=k*sqrt(pow(n1,2)-pow(n2,2)/2)\")\n",
      "print (\"\\n which gives its rms value\")"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        " normalised propagtion constant\n",
        "\n",
        " B=(pow((b/k),2)-pow(n2,2))/(pow(n1,2)-pow(n2,2))\n",
        "\n",
        " thus when b=1/2\n",
        "\n",
        " B=k*sqrt(pow(n2,2)+b*(pow(n1,2)-pow(n2,2))\n",
        "\n",
        " B=k*sqrt(pow(n1,2)-pow(n2,2)/2)\n",
        "\n",
        " which gives its rms value\n"
       ]
      }
     ],
     "prompt_number": 4
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example5: PgNo-87"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import math\n",
      "\n",
      "# Variable declaration\n",
      "n1=3.6 #core refractive index\n",
      "n2=3.3 # cladding refractive index\n",
      "d=2.0 # thickness in um\n",
      "y=0.8 # wavelength in um\n",
      "\n",
      "# Calculations\n",
      "m=(2*d*math.sqrt(math.pow(n1,2)-math.pow(n2,2))/y) # total no. of models allowed\n",
      "M=math.ceil(m) # total no. of models allowed\n",
      "\n",
      "print \" Total no. of models allowed= \",int(M)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        " Total no. of models allowed=  8\n"
       ]
      }
     ],
     "prompt_number": 5
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example6: PgNo-88"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import math\n",
      "\n",
      "# Initialisation of variables\n",
      "n1=1.48 # core refractive index\n",
      "a=40*(math.pow(10,-6)) #core radius in meter\n",
      "dl=0.015 # index difference\n",
      "y=0.85*(math.pow(10,-6)) # wavelength in um\n",
      "\n",
      "# Calculations\n",
      "v=(2*math.pi*a*n1*math.sqrt(2*dl))/y # normalised frequency\n",
      "M=math.pow(v,2)/2\n",
      "m=math.ceil(M) # the total no. of guided  modes\n",
      "\n",
      "# Results\n",
      "print ('%s %.2f' %(\" normalised frequency= \",v))\n",
      "print \"\\n The total no. of guided  modess = \",int(m)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        " normalised frequency=  75.80\n",
        "\n",
        " The total no. of guided  modess =  2873\n"
       ]
      }
     ],
     "prompt_number": 6
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example7: PgNo-89"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import math\n",
      "\n",
      "# Initialisation of variables\n",
      "n1=1.46 # core refractive index\n",
      "dl=0.015 # index difference\n",
      "a=30*(math.pow(10,-6))# core radius in meter\n",
      "y=0.85*(math.pow(10,-6)) #wavelength in um\n",
      "\n",
      "# calcualtions\n",
      "n2=n1-(n1*dl)# cladding refractive index\n",
      "v=(2*math.pi*a*n1*math.sqrt(2*dl))/y # normalised frequency\n",
      "M=math.pow(v,2)/2 # the total no. of guided  modes\n",
      "\n",
      "# Results\n",
      "print ('%s %.2f' %(\" Cladding refractive index= \",n2))\n",
      "print ('%s %.3f'%(\"\\n Normalised frequency= \",v))\n",
      "print \"\\n The total no. of guided  modes = \",int(M)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        " Cladding refractive index=  1.44\n",
        "\n",
        " Normalised frequency=  56.078\n",
        "\n",
        " The total no. of guided  modes =  1572\n"
       ]
      }
     ],
     "prompt_number": 7
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example8: PgNo-91"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import math\n",
      "\n",
      "# Initialisation of variables\n",
      "n1=1.5 # core refractive index\n",
      "dl=0.01 # index difference\n",
      "M=1100 # the total no. of guided  modes\n",
      "y=1.3*(math.pow(10,-6)) # wavelength in um\n",
      "v=math.sqrt(2*M)# normalised frequency\n",
      "\n",
      "# Calculations\n",
      "a=(v*y)/(2*math.pi*n1*math.sqrt(2*dl))*math.pow(10,6) #core radius in meter\n",
      "\n",
      "# Results\n",
      "print ('%s %.2f' %(\" Normalised frequency= \",v))\n",
      "print ('%s %.2f %s' %(\"\\n The diameter of the fiber core = \",2*a,\"um\"))"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        " Normalised frequency=  46.90\n",
        "\n",
        " The diameter of the fiber core =  91.50 um\n"
       ]
      }
     ],
     "prompt_number": 8
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example9: PgNo-91"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import math\n",
      "\n",
      "# Initialisation of variables\n",
      "n1=1.45 # core refractive index\n",
      "n_m=0.16 # numerical aperture\n",
      "\n",
      "# Calculations\n",
      "a=30*math.pow(10,-6) # core radius in micrometer\n",
      "y=0.5*(math.pow(10,-6)) # wavelength in um\n",
      "v=(2*math.pi*a*n_m)/y #normalised frequency\n",
      "\n",
      "# Results\n",
      "print ('%s %.2f' %(\" Normalised frequency= \",v))"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        " Normalised frequency=  60.32\n"
       ]
      }
     ],
     "prompt_number": 9
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example10: PgNo-93"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import math\n",
      "\n",
      "# Initialisation of variables\n",
      "n1=3.6 # core refractive index\n",
      "n2=3.56 # cladding refractive index\n",
      "y=0.85*(math.pow(10,-6))# wavelength in um\n",
      "m=1\n",
      "n=0\n",
      "v_c=2.405 # for planner guide\n",
      "\n",
      "# Calculations\n",
      "a=(v_c*y)/(2*math.pi*math.sqrt(math.pow(n1,2)-math.pow(n2,2)))# core radius in micrometer\n",
      "\n",
      "print ('%s %.2f %s' %(\"The max thickness= \",a*pow(10,6),\"um\"))"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "The max thickness=  0.61 um\n"
       ]
      }
     ],
     "prompt_number": 10
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example11: PgNo-94"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import math\n",
      "\n",
      "# variable declaration\n",
      "n1=1.5 #core refractive index\n",
      "y=1.3*(math.pow(10,-6)) # wavelength in um\n",
      "M=1100 #  total no. of models\n",
      "dl=0.01 # index difference\n",
      "\n",
      "# Calculations\n",
      "v=math.sqrt(2*M)\n",
      "V=math.ceil(v)\n",
      "a=(V*y)/(2*math.pi*n1*math.sqrt(2*dl))*math.pow(10,6) # core radius in micrometer\n",
      "a1=math.ceil(a)# core radius in micrometer\n",
      "\n",
      "# Results\n",
      "print ('%s %.2f %s' %(\"The core diameter= \",2*a1,\"um\"))"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "The core diameter=  92.00 um\n"
       ]
      }
     ],
     "prompt_number": 11
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example12: PgNo-96"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import math\n",
      "\n",
      "# Initialisation of variables\n",
      "n1=1.45 # core refractive index\n",
      "dl=0.015 # index difference\n",
      "\n",
      "# Calculations\n",
      "y=0.85*(math.pow(10,-6)) # wavelength in meter\n",
      "v=2.4*math.pow((1+(2/2)),(0.5))# Max normalised frequency\n",
      "a=(v*y)/(2*math.pi*n1*math.pow((2*dl),(0.5))) # Max core radius in m\n",
      "d=2*a # The max core diameter in meter\n",
      "\n",
      "# Results\n",
      "print ('%s %.3f %s'%(\" The max core diameter in meter= \",d*pow(10,6),\"um\"))"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        " The max core diameter in meter=  3.657 um\n"
       ]
      }
     ],
     "prompt_number": 12
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example13: PgNo-98"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import math\n",
      "\n",
      "# Variable Initialisation\n",
      "n1=1.48 #core refractive index\n",
      "n2=1.46 # cladding refractive index\n",
      "a=2.5   # radius in um\n",
      "y=0.85  # wavelength in um\n",
      "dl=(n1-n2)/n1 # index difference\n",
      "v=(2*math.pi*a*n1*math.pow((2*dl),(0.5)))/y #the normaised frequency\n",
      "M=(v*v)/2 # number of modes\n",
      "print \" The number of modes= \",int(M)\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        " The number of modes=  10\n"
       ]
      }
     ],
     "prompt_number": 13
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example14: PgNo-101"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import math\n",
      "\n",
      "# Initialisation of variables\n",
      "a=25 # radius in um\n",
      "y=1.3 # wavelength in um\n",
      "v=26.6 # the normaised frequency\n",
      "NA=(v*y)/(2*math.pi*a) #Numerical aperture\n",
      "a_c=math.pi*math.pow((NA),2)\n",
      "M=(v*v)/2\n",
      "\n",
      "# Results\n",
      "print ('%s %.3f' %(\" The number of modes= \", NA))\n",
      "print ('%s %.3f' %(\"\\n The number of modes= \", a_c))\n",
      "print (\"\\n Answer in textbook is wrong\")\n",
      "print \"\\n The number of modes= \",int(M)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        " The number of modes=  0.220\n",
        "\n",
        " The number of modes=  0.152\n",
        "\n",
        " Answer in textbook is wrong\n",
        "\n",
        " The number of modes=  353\n"
       ]
      }
     ],
     "prompt_number": 14
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example15: PgNo-103"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import math\n",
      "\n",
      "# Declaration of variables\n",
      "n1=1.49 # core refractive index\n",
      "n2=1.47 # cladding refractive index\n",
      "a=2  # radius in um\n",
      "dl=(n1-n2)/n1 # index difference\n",
      "v_c=2.405\n",
      "\n",
      "# calculations\n",
      "y_c=(2*math.pi*a*n1*math.pow((2*dl),(0.5)))/v_c # cut off wavelength in um\n",
      "Y=1.31 # wavelength in um\n",
      "A=(v_c*Y)/(2*math.pi*n1*math.pow((2*dl),(0.5))) # min core radius in um\n",
      "\n",
      "# Results\n",
      "print ('%s %.3f %s' %(\" The cut off wavelength = \",y_c,\"um\"))\n",
      "print ('%s %.3f %s' %(\"\\n The min core radius = \",A,\"um\"))\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        " The cut off wavelength =  1.276 um\n",
        "\n",
        " The min core radius =  2.054 um\n"
       ]
      }
     ],
     "prompt_number": 15
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example16: PgNo-105"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import math\n",
      "\n",
      "# Initialisation of variables\n",
      "a=25 # radius in um\n",
      "NA=0.3 # Numerical aperture\n",
      "y=1 # wavelength in um\n",
      "v=(2*math.pi*a*NA)/y # the normalised frequency\n",
      "V=47.1 # the normalised frequency\n",
      "M=(V*V)/4 # The mode volume\n",
      "\n",
      "# Results\n",
      "print ('%s %.2f' %(\" The normalised frequency = \",v))\n",
      "print \"\\n The mode volume = \",int(M),\"guided modes\""
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        " The normalised frequency =  47.12\n",
        "\n",
        " The mode volume =  554 guided modes\n"
       ]
      }
     ],
     "prompt_number": 16
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example17: PgNo-107"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import math\n",
      "\n",
      "# variable declaration\n",
      "n1=1.46 # core refractive index\n",
      "a=4.5   # radius in um\n",
      "dl=0.0025 # relative index difference\n",
      "v_c=2.405\n",
      "\n",
      "# calculations\n",
      "y_c=(2*math.pi*a*n1*math.pow((2*dl),(0.5)))/v_c # cut off wavelength in um\n",
      "\n",
      "print ('%s %.3f %s' %(\" The cut off wavelength = \",y_c,\"um\"))"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        " The cut off wavelength =  1.214 um\n"
       ]
      }
     ],
     "prompt_number": 17
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example18: PgNo-109"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import math\n",
      "\n",
      "# Initialisation of variables\n",
      "n1=1.5 #core refractive index\n",
      "n2=1.45 # cladding refractive index\n",
      "a=50 # radius in um\n",
      "y=1.3 #operating wavelength in um\n",
      "\n",
      "# calculations\n",
      "NA=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
      "N_A=0.38 \n",
      "v=(2*math.pi*a*N_A)/y # cut of numbers\n",
      "M=math.pow(v,2)/2 # number of modes\n",
      "\n",
      "print ('%s %.2f'%(\" The cut of numbers = \",v))\n",
      "print \"\\n The number of modes = \",int(M)\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        " The cut of numbers =  91.83\n",
        "\n",
        " The number of modes =  4216\n"
       ]
      }
     ],
     "prompt_number": 18
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example19: PgNo-111"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import math\n",
      "\n",
      "# Variable initialisation\n",
      "n1=1.53 # core refractive index\n",
      "n2=1.5 # cladding refractive index\n",
      "y=1.5 # operating wavelength in um\n",
      "\n",
      "# calculation\n",
      "NA=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
      "a=(2.405*y)/(2*math.pi*NA)# max radius in um\n",
      "\n",
      "print ('%s %.2f %s' %(\" The max core radius = \",a,\"um\"))"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        " The max core radius =  1.90 um\n"
       ]
      }
     ],
     "prompt_number": 19
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example20: PgNo-112"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import math\n",
      "\n",
      "# variable declaration\n",
      "a=25 # max radius in um\n",
      "y=0.8 # operating wavelength in um\n",
      "NA=0.343 # numerical aperture\n",
      "v=(2*math.pi*a*NA)/y # v-number\n",
      "M=math.pow(v,2)/2 #number of modes\n",
      "\n",
      "print ('%s %.6f' %(\" The v-number = \",v))\n",
      "print \"\\n The number of modes = \",int(M)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        " The v-number =  67.347893\n",
        "\n",
        " The number of modes =  2267\n"
       ]
      }
     ],
     "prompt_number": 20
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example21: PgNo-114"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import math\n",
      "\n",
      "# Initialisation of variables\n",
      "n1=1.5 #core refractive index\n",
      "NA=0.38 # numerical aperture\n",
      "v=75 # v-number\n",
      "y=1.3 # operating wavelength in um\n",
      "a=(v*y)/(2*math.pi*NA) # core radius in um\n",
      "n2=math.sqrt(math.pow(n1,2)-math.pow(NA,2))# cladding refractive index\n",
      "\n",
      "# Results\n",
      "print ('%s %.2f %s' %(\" The core radius = \",a,\"um\"))\n",
      "print ('%s %.2f' %(\"\\n The cladding refractive index = \", n2))\n",
      "print (\"\\n answer in textbook is wrong \")"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        " The core radius =  40.84 um\n",
        "\n",
        " The cladding refractive index =  1.45\n",
        "\n",
        " answer in textbook is wrong \n"
       ]
      }
     ],
     "prompt_number": 21
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example22: PgNo-117"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import math\n",
      "\n",
      "#Initialisation of variables\n",
      "y=1.2 # operating wavelength in um\n",
      "w=5 # spot size in um\n",
      "x=(2*y)/(math.pi*w) # the divergence angle in degree\n",
      "\n",
      "# results\n",
      "print ('%s %.3f %s' %(\" The divergence angle = \",x,\"degree\"))"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        " The divergence angle =  0.153 degree\n"
       ]
      }
     ],
     "prompt_number": 22
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example23: PgNo-119"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import math\n",
      "\n",
      "# Initialisation of variables\n",
      "n1=1.46 # core refractive index\n",
      "a=4.5 # core radius in um\n",
      "dl=0.0025 # relative index difference\n",
      "NA=n1*(math.sqrt(2*dl)) # numerical aperture\n",
      "v=2.405\n",
      "y=(2*math.pi*a*NA)/(v) # cut off wavelength in um\n",
      "\n",
      "print ('%s %.3f %s' %(\" The cut off wavelength = \",y,\"um\"))"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        " The cut off wavelength =  1.214 um\n"
       ]
      }
     ],
     "prompt_number": 23
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example24: PgNo-121"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import math\n",
      "\n",
      "# variable declaration\n",
      "n1=1.5 # core refractive index\n",
      "n2=1.47 # cladding refractive index\n",
      "y1=0.87 # operating wavelength in um\n",
      "y2=1.5 # operating wavelength in um\n",
      "a=25.0 # max radius in um\n",
      "\n",
      "# Calculations\n",
      "NA=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
      "v1=(2*math.pi*a*NA)/y1\n",
      "v2=(2*math.pi*a*NA)/y2\n",
      "al=2.0 # parabolic index profile for GRIN\n",
      "M1=(al/(al+2))*(math.pow(v1,2)/2)# number of modes\n",
      "M2=(al/(al+2))*(math.pow(v2,2)/2)# number of modes\n",
      "\n",
      "# Results\n",
      "print \" The number of modes at 870 nm = \",int(M1),\"um\"\n",
      "print \"\\n The number of modes = \",int(M2),\"um\"\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        " The number of modes at 870 nm =  726 um\n",
        "\n",
        " The number of modes =  244 um\n"
       ]
      }
     ],
     "prompt_number": 24
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example25: PgNo-122"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import math\n",
      "\n",
      "# Initialisation of variables\n",
      "n1=1.5 # core refractive index\n",
      "n2=1.46 # cladding refractive index\n",
      "v=2.4 # cut off parameter\n",
      "y=0.85 # operating wavelength in um\n",
      "\n",
      "# Calculations\n",
      "NA=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
      "a=(v*y)/(2*math.pi*NA)# max radius in um\n",
      "w=v*a # spot size\n",
      "x=(2*y)/(3.4*w) # divergence angle in degree\n",
      "d=50 # distance in meter\n",
      "w_s=(y*d)/(math.pi*w) # spot size at 50 meter\n",
      "\n",
      "# Results\n",
      "print ('%s %.2f %s' %(\" The numerical aperture = \",NA,\"um\"))\n",
      "print ('%s %.2f %s' %(\"\\n The max core radius = \",a,\"um\"))\n",
      "print ('%s %.2f %s' %(\"\\n The spot size = \",w,\"um\"))\n",
      "print ('%s %.3f %s' %(\"\\n The divergence angle = \",x,\"degree\"))\n",
      "print ('%s %.2f %s' %(\"\\n The spot size at 50 meter = \",w_s,\"m\"))\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        " The numerical aperture =  0.34 um\n",
        "\n",
        " The max core radius =  0.94 um\n",
        "\n",
        " The spot size =  2.26 um\n",
        "\n",
        " The divergence angle =  0.221 degree\n",
        "\n",
        " The spot size at 50 meter =  5.97 m\n"
       ]
      }
     ],
     "prompt_number": 25
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example26: PgNo-124"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import math\n",
      "\n",
      "# Initialisation of variables\n",
      "n1=1.53 # core refractive index\n",
      "n2=1.50 # cladding  refractive index\n",
      "y=1.2  # wavelength in um\n",
      "v=2.405\n",
      "a=(v*y)/(2*math.pi*(math.sqrt(math.pow(n1,2)-math.pow(n2,2)))) #core radius in micrometer\n",
      "\n",
      "print ('%s %.3f %s' %(\" The max diameter= \",2*a,\"um\"))"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        " The max diameter=  3.047 um\n"
       ]
      }
     ],
     "prompt_number": 26
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example27: PgNo-127"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import math\n",
      "# Initialisation of variables\n",
      "n1=1.47 # core refractive index\n",
      "n2=1.46 # cladding  refractive index\n",
      "y=1.3   # wavelength in um\n",
      "dl=(n1-n2)/n1 # fractional refractive index diff\n",
      "\n",
      "# calculations\n",
      "NA=math.sqrt(math.pow(n1,2)-math.pow(n2,2))\n",
      "v=2.405\n",
      "a=(v*y)/(2*math.pi*(math.sqrt(math.pow(n1,2)-math.pow(n2,2))))# largest core radius in micrometer\n",
      "n_eff=n1-(NA/(2*math.pi*(a/y))) # fractional refractive index\n",
      "\n",
      "# Results\n",
      "print ('%s %.2f %s' %(\" The largest core radius = \",a,\"um\"))\n",
      "print ('%s %.2f' %(\"\\n The fractional refractive index= \",n_eff))\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        " The largest core radius =  2.91 um\n",
        "\n",
        " The fractional refractive index=  1.46\n"
       ]
      }
     ],
     "prompt_number": 27
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example28: PgNo-130"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import math\n",
      "\n",
      "# initialisation of variables\n",
      "n1=1.50 # core refractive index\n",
      "n2=1.48 # cladding  refractive index\n",
      "NA=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) # numerical aperture\n",
      "a=25 # core radius in um\n",
      "y=0.85 # wavelength in um\n",
      "v=(2*math.pi*a*NA)/y #cut off parameter\n",
      "M=math.pow(v,2)/2 # number of modes\n",
      "\n",
      "# Results\n",
      "print ('%s %.3f' %(\" The cut off parameter = \",v))\n",
      "print \"\\n The number of modes = \",int(M)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        " The cut off parameter =  45.115\n",
        "\n",
        " The number of modes =  1017\n"
       ]
      }
     ],
     "prompt_number": 28
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example29: PgNo-132"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import math\n",
      "\n",
      "# initialisation of variables\n",
      "n1=1.50 # core refractive index\n",
      "a=25    # core radius in um\n",
      "y=1.5   # wavelength in um\n",
      "v=2.405\n",
      "\n",
      "# Calculations\n",
      "NA=(v*y)/(2*math.pi*a) # numerical aperture\n",
      "D=math.pow((NA/n1),2)/(2) # max value of D\n",
      "n2=n1-(D*n1) # cladding refractive index\n",
      "\n",
      "# Results\n",
      "print ('%s %.6f' %(\" The max value of D = \",D))\n",
      "print ('%s %.2f' %(\"\\n The cladding refractive index = \",n2))"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        " The max value of D =  0.000117\n",
        "\n",
        " The cladding refractive index =  1.50\n"
       ]
      }
     ],
     "prompt_number": 29
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example30: PgNo-133"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import math\n",
      "# variable declaration\n",
      "n1=1.52 #core refractive index\n",
      "n2=1.48 #cladding  refractive index\n",
      "a=45    # core radius in um\n",
      "y=0.85  # wavelength in um\n",
      "\n",
      "# Calculations\n",
      "dl=(n1-n2)/n1 # relative refractive index\n",
      "x=(math.asin(n2/n1))*(180/math.pi) # critical angle in degree\n",
      "NA=math.sqrt(math.pow(n1,2)-math.pow(n2,2)) #numerical aperture\n",
      "a_c=(math.asin(NA))*(180/math.pi) #acceptance angle in degree\n",
      "a_s=math.pi*(math.pow(n1,2)-math.pow(n2,2))# solid acceptance angle\n",
      "v=(2*math.pi*a*0.34)/y # normalise v-number\n",
      "M=math.pow(v,2)/2 # number of guided modes\n",
      "a1=5 # for single mode step fiber\n",
      "v1=(2*math.pi*a1*0.34)/y\n",
      "M1=math.pow(v1,2)/2\n",
      "R=int(M)-int(M1)# reduction in modes\n",
      "\n",
      "# Results\n",
      "print ('%s %.4f' %(\" The max value of D = \",dl))\n",
      "print ('%s %.2f %s' %(\"\\n The critical angle = \",x,\"degree\"))\n",
      "print ('%s %.2f %s' %(\"\\n The acceptance angle = \",2*a_c,\"degree\"))\n",
      "print ('%s %.2f %s' %(\"\\n The solid acceptance angle = \",a_s,\"degree\"))\n",
      "print ('%s %.2f ' %(\"\\n The numerical aperture = \",NA))\n",
      "print ('%s %.2f ' %(\"\\n The normalise v-number = \",v))\n",
      "print \"\\n The number of guided modes = \",int(M)\n",
      "print \"\\n The reduction in modes = \",R\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        " The max value of D =  0.0263\n",
        "\n",
        " The critical angle =  76.83 degree\n",
        "\n",
        " The acceptance angle =  40.54 degree\n",
        "\n",
        " The solid acceptance angle =  0.38 degree\n",
        "\n",
        " The numerical aperture =  0.35 \n",
        "\n",
        " The normalise v-number =  113.10 \n",
        "\n",
        " The number of guided modes =  6395\n",
        "\n",
        " The reduction in modes =  6317\n"
       ]
      }
     ],
     "prompt_number": 30
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example31: PgNo-135"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "import math\n",
      "# Initialisation of variables\n",
      "\n",
      "n1=1.46 #core refractive index\n",
      "a=45/2 #max radius in um\n",
      "y=0.85 # operating wavelength in um\n",
      "NA=0.17 # numerical aperture\n",
      "v=(2*math.pi*a*NA)/y #normalised frequency\n",
      "M=math.pow(v,2)/2 # number of modes\n",
      "\n",
      "# Results\n",
      "print ('%s %.2f' %(\" The normalised frequency = \",v))\n",
      "print \"\\n The number of modes = \",int(M)\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        " The normalised frequency =  27.65\n",
        "\n",
        " The number of modes =  382\n"
       ]
      }
     ],
     "prompt_number": 31
    }
   ],
   "metadata": {}
  }
 ]
}