{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "c452d9a4",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy \n",
    "from matplotlib import pyplot"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "ebf412ec",
   "metadata": {},
   "outputs": [],
   "source": [
    "length = 10\n",
    "k = 0.89\n",
    "# B.C\n",
    "temp_left = 100\n",
    "temp_right = 200\n",
    "total_sim_time = 10"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "a96ae447",
   "metadata": {},
   "outputs": [],
   "source": [
    "dx = .1\n",
    "x_vector = numpy.linspace(0, length, int(length/dx))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "7bd578bc",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 0.        ,  0.1010101 ,  0.2020202 ,  0.3030303 ,  0.4040404 ,\n",
       "        0.50505051,  0.60606061,  0.70707071,  0.80808081,  0.90909091,\n",
       "        1.01010101,  1.11111111,  1.21212121,  1.31313131,  1.41414141,\n",
       "        1.51515152,  1.61616162,  1.71717172,  1.81818182,  1.91919192,\n",
       "        2.02020202,  2.12121212,  2.22222222,  2.32323232,  2.42424242,\n",
       "        2.52525253,  2.62626263,  2.72727273,  2.82828283,  2.92929293,\n",
       "        3.03030303,  3.13131313,  3.23232323,  3.33333333,  3.43434343,\n",
       "        3.53535354,  3.63636364,  3.73737374,  3.83838384,  3.93939394,\n",
       "        4.04040404,  4.14141414,  4.24242424,  4.34343434,  4.44444444,\n",
       "        4.54545455,  4.64646465,  4.74747475,  4.84848485,  4.94949495,\n",
       "        5.05050505,  5.15151515,  5.25252525,  5.35353535,  5.45454545,\n",
       "        5.55555556,  5.65656566,  5.75757576,  5.85858586,  5.95959596,\n",
       "        6.06060606,  6.16161616,  6.26262626,  6.36363636,  6.46464646,\n",
       "        6.56565657,  6.66666667,  6.76767677,  6.86868687,  6.96969697,\n",
       "        7.07070707,  7.17171717,  7.27272727,  7.37373737,  7.47474747,\n",
       "        7.57575758,  7.67676768,  7.77777778,  7.87878788,  7.97979798,\n",
       "        8.08080808,  8.18181818,  8.28282828,  8.38383838,  8.48484848,\n",
       "        8.58585859,  8.68686869,  8.78787879,  8.88888889,  8.98989899,\n",
       "        9.09090909,  9.19191919,  9.29292929,  9.39393939,  9.49494949,\n",
       "        9.5959596 ,  9.6969697 ,  9.7979798 ,  9.8989899 , 10.        ])"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x_vector"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "76af06ce",
   "metadata": {},
   "outputs": [],
   "source": [
    "dt = 0.0001\n",
    "t_vector = numpy.linspace(0, total_sim_time, int(total_sim_time/dt))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "5a832f03",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.00000e+00, 1.00001e-04, 2.00002e-04, ..., 9.99980e+00,\n",
       "       9.99990e+00, 1.00000e+01])"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "t_vector"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "e3b5db62",
   "metadata": {},
   "outputs": [],
   "source": [
    "# I.C\n",
    "u = numpy.zeros([len(t_vector),len(x_vector)])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "b8a818de",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(100000, 100)"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "u.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "4c8c9327",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0., 0., 0., ..., 0., 0., 0.],\n",
       "       [0., 0., 0., ..., 0., 0., 0.],\n",
       "       [0., 0., 0., ..., 0., 0., 0.],\n",
       "       ...,\n",
       "       [0., 0., 0., ..., 0., 0., 0.],\n",
       "       [0., 0., 0., ..., 0., 0., 0.],\n",
       "       [0., 0., 0., ..., 0., 0., 0.]])"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "u"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "ee3ee8de",
   "metadata": {},
   "outputs": [],
   "source": [
    "u[0,0] =100"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "b496c70a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[100.,   0.,   0., ...,   0.,   0.,   0.],\n",
       "       [  0.,   0.,   0., ...,   0.,   0.,   0.],\n",
       "       [  0.,   0.,   0., ...,   0.,   0.,   0.],\n",
       "       ...,\n",
       "       [  0.,   0.,   0., ...,   0.,   0.,   0.],\n",
       "       [  0.,   0.,   0., ...,   0.,   0.,   0.],\n",
       "       [  0.,   0.,   0., ...,   0.,   0.,   0.]])"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "u"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "d741d5f9",
   "metadata": {},
   "outputs": [],
   "source": [
    "u[:,0] = temp_left\n",
    "u[:,-1] = temp_right"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "30c7c5ba",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[100.,   0.,   0., ...,   0.,   0., 200.],\n",
       "       [100.,   0.,   0., ...,   0.,   0., 200.],\n",
       "       [100.,   0.,   0., ...,   0.,   0., 200.],\n",
       "       ...,\n",
       "       [100.,   0.,   0., ...,   0.,   0., 200.],\n",
       "       [100.,   0.,   0., ...,   0.,   0., 200.],\n",
       "       [100.,   0.,   0., ...,   0.,   0., 200.]])"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "u"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "d2a7ea26",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "pyplot.plot(x_vector,u[0])\n",
    "pyplot.ylabel(\"temp\")\n",
    "pyplot.xlabel(\"x\")\n",
    "pyplot.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "cca1cb08",
   "metadata": {},
   "outputs": [],
   "source": [
    "for t in range(1, len(t_vector)-1):\n",
    "    for x in range(1, len(x_vector)-1):\n",
    "        u[t+1,x] = ((k* (dt/dx**2)) * (u[t, x+1] - 2* u[t,x] + u[t,x-1])) + u[t,x]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "0ab5c205",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[100.        ,   0.        ,   0.        , ...,   0.        ,\n",
       "          0.        , 200.        ],\n",
       "       [100.        ,   0.        ,   0.        , ...,   0.        ,\n",
       "          0.        , 200.        ],\n",
       "       [100.        ,   0.89      ,   0.        , ...,   0.        ,\n",
       "          1.78      , 200.        ],\n",
       "       ...,\n",
       "       [100.        ,  98.59123721,  97.1847561 , ..., 192.92058415,\n",
       "        196.4589255 , 200.        ],\n",
       "       [100.        ,  98.59125751,  97.1847967 , ..., 192.92063276,\n",
       "        196.45894983, 200.        ],\n",
       "       [100.        ,  98.59127782,  97.1848373 , ..., 192.92068138,\n",
       "        196.45897415, 200.        ]])"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "u"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "34b52750",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "pyplot.plot(x_vector,u[0])\n",
    "pyplot.ylabel(\"temp\")\n",
    "pyplot.xlabel(\"x\")\n",
    "pyplot.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "045a6630",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "100000"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(u)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "f6ac155c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "pyplot.plot(x_vector,u[99999])\n",
    "pyplot.ylabel(\"temp\")\n",
    "pyplot.xlabel(\"x\")\n",
    "pyplot.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "478da8ab",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "901531f1",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "39d204a0",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f8a013d3",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "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.11.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
