Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
compmech-project01/01_Getting-started-project.ipynb
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
360 lines (360 sloc)
64.6 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Computational Mechanics Project #01 - Heat Transfer in Forensic Science\n", | |
"\n", | |
"We can use our current skillset for a macabre application. We can predict the time of death based upon the current temperature and change in temperature of a corpse. \n", | |
"\n", | |
"Forensic scientists use Newton's law of cooling to determine the time elapsed since the loss of life, \n", | |
"\n", | |
"$\\frac{dT}{dt} = -K(T-T_a)$,\n", | |
"\n", | |
"where $T$ is the current temperature, $T_a$ is the ambient temperature, $t$ is the elapsed time in hours, and $K$ is an empirical constant. \n", | |
"\n", | |
"Suppose the temperature of the corpse is 85$^o$F at 11:00 am. Then, 2 hours later the temperature is 74$^{o}$F. \n", | |
"\n", | |
"Assume ambient temperature is a constant 65$^{o}$F.\n", | |
"\n", | |
"1. Use Python to calculate $K$ using a finite difference approximation, $\\frac{dT}{dt} \\approx \\frac{T(t+\\Delta t)-T(t)}{\\Delta t}$. " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 531, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"0.275" | |
] | |
}, | |
"execution_count": 531, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"import numpy as np\n", | |
"\n", | |
"T_a = 65;\n", | |
"dt = 2;\n", | |
"T_i = 85;\n", | |
"T_f = 74;\n", | |
"dTdt = (T_f - T_i)/dt;\n", | |
"K = -dTdt/(T_i - T_a);\n", | |
"K" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"2. Change your work from problem 1 to create a function that accepts the temperature at two times, ambient temperature, and the time elapsed to return $K$. " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 532, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"0.275" | |
] | |
}, | |
"execution_count": 532, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"def measure_K(Temp_t1,Temp_t2,Temp_ambient,delta_t):\n", | |
" ''' Determine the value of K based upon temperature of corpse \n", | |
" when discovered, Temp_t1\n", | |
" after time, delta_t, Temp_t2\n", | |
" with ambient temperature, Temp_ambient\n", | |
" Arguments\n", | |
" ---------\n", | |
" your inputs...\n", | |
" \n", | |
" Returns\n", | |
" -------\n", | |
" your outputs...\n", | |
" \n", | |
" '''\n", | |
" K = -((Temp_t2 - Temp_t1)/delta_t)/(Temp_t1 - Temp_ambient);\n", | |
" return K\n", | |
"\n", | |
"K = measure_K(85, 74, 65, 2)\n", | |
"K" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"3. A first-order thermal system has the following analytical solution, \n", | |
"\n", | |
" $T(t) =T_a+(T(0)-T_a)e^{-Kt}$\n", | |
"\n", | |
" where $T(0)$ is the temperature of the corpse at t=0 hours i.e. at the time of discovery and $T_a$ is a constant ambient temperature. \n", | |
"\n", | |
" a. Show that an Euler integration converges to the analytical solution as the time step is decreased. Use the constant $K$ derived above and the initial temperature, T(0) = 85$^o$F. \n", | |
"\n", | |
" b. What is the final temperature as t$\\rightarrow\\infty$?\n", | |
" \n", | |
" c. At what time was the corpse 98.6$^{o}$F? i.e. what was the time of death?" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 533, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"import numpy as np\n", | |
"def Temperature(M,N):\n", | |
" t = np.linspace(0,M,N)\n", | |
" T_i = 85\n", | |
" T_a = 65\n", | |
" K = 0.275\n", | |
" T_analytical = T_a + (T_i - T_a)*(np.exp(-K*t))\n", | |
" \n", | |
" T_numerical = np.zeros(len(t));\n", | |
" for i in range(1, len(t)):\n", | |
" T_numerical[0] = T_i\n", | |
" dt = M/N\n", | |
" T_numerical[i] = T_a + (T_numerical[i - 1] - T_a)*np.exp(-K*dt);\n", | |
" return T_analytical, T_numerical,t\n", | |
"T_analytical, T_numerical, t = Temperature(20,100)\n", | |
"\n", | |
"import matplotlib.pyplot as plt\n", | |
"%matplotlib inline\n", | |
"plt.plot(t, T_analytical, '*-', label='Analytical');\n", | |
"plt.plot(t, T_numerical, 'o-', label='Numerical');\n", | |
"plt.title('Temperature over time');\n", | |
"plt.xlabel('Time (hr)');\n", | |
"plt.ylabel('Temperature ($^o$F)');\n", | |
"plt.legend();" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"As t $\\rightarrow\\infty$, T $\\rightarrow$ 65$^o$F." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 534, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Time of death: 9 :0 7 AM\n" | |
] | |
} | |
], | |
"source": [ | |
"t = -np.log((98.6 - T_a)/(T_i - T_a))/K\n", | |
"time = 11+t\n", | |
"time;\n", | |
"print('Time of death:',int(time),':0','{:.0f}'.format(60*(time-int(time))),'AM')" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"4. Now that we have a working numerical model, we can look at the results if the\n", | |
"ambient temperature is not constant i.e. T_a=f(t). We can use the weather to improve our estimate for time of death. Consider the following Temperature for the day in question. \n", | |
"\n", | |
"|time| Temp ($^o$F)|\n", | |
"|---|---|\n", | |
"|8am|55|\n", | |
"|9am|58|\n", | |
"|10am|60|\n", | |
"|11am|65|\n", | |
"|noon|66|\n", | |
"|1pm|67|\n", | |
"\n", | |
"a. Create a function that returns the current temperature based upon the time (0 hours=11am, 65$^{o}$F) \n", | |
" *Plot the function $T_a$ vs time. Does it look correct? Is there a better way to get $T_a(t)$?\n", | |
"\n", | |
"b. Modify the Euler approximation solution to account for changes in temperature at each hour. \n", | |
" Compare the new nonlinear Euler approximation to the linear analytical model. \n", | |
" At what time was the corpse 98.6$^{o}$F? i.e. what was the time of death? \n", | |
" \n", | |
" " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 535, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"60\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"#4a\n", | |
"\n", | |
"T_a = np.array([55,58,60,65,66,67])\n", | |
"def amb_Temp(t):\n", | |
" i = t + 3\n", | |
" Temp = T_a\n", | |
" print(Temp[i])\n", | |
" return Temp\n", | |
" \n", | |
"\n", | |
"Temp = amb_Temp(-1)\n", | |
"Temp\n", | |
"t = np.linspace(8,13,6)\n", | |
"plt.plot(t, Temp, 'o-');\n", | |
"plt.title('Ambient temperature over time');\n", | |
"plt.xlabel('Time (hr)');\n", | |
"plt.ylabel('Ambient Temp ($^o$ F)');" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"The ambient temperature vs. time graph doesn't look quite right because there is a large jump in temperature at 10:00 AM. However, without additional data points in between, there is no way to correct that." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 536, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"#4b\n", | |
"\n", | |
"import numpy as np\n", | |
"def Temp_nl(M,N):\n", | |
" t = np.linspace(0,M,N)\n", | |
" T_i = 85\n", | |
" T_a = [55,58,60,65,66,67]\n", | |
" K = 0.275\n", | |
" T_analytical = 65 + (T_i - 65)*(np.exp(-K*t))\n", | |
" T_num_nl = np.zeros(len(t));\n", | |
" for i in range(0, len(t)):\n", | |
" T_num_nl[0] = T_i\n", | |
" dt = M/N\n", | |
" for j in range(0, len(T_a)):\n", | |
" T_num_nl[i] = T_a[j - 1] + (T_num_nl[i - 1] - T_a[j - 1])*np.exp(-K*dt);\n", | |
" return T_analytical,T_num_nl,t\n", | |
"T_analytical, T_num_nl, t = Temp_nl(2,10)\n", | |
"\n", | |
"import matplotlib.pyplot as plt\n", | |
"%matplotlib inline\n", | |
"plt.plot(t, T_analytical, '*-', label='Analytical');\n", | |
"plt.plot(t, T_num_nl, 'o-', label='Numerical');\n", | |
"plt.title('Temperature over time');\n", | |
"plt.xlabel('Time (hr)');\n", | |
"plt.ylabel('Temperature ($^o$F)');\n", | |
"plt.legend();" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 537, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Time of death: 9 : 25 AM\n" | |
] | |
} | |
], | |
"source": [ | |
"t = -np.log((98.6 - T_a[2])/(T_i - T_a[2]))/K\n", | |
"time = 11+t\n", | |
"time;\n", | |
"print('Time of death:',int(time),':','{:.0f}'.format(60*(time-int(time))),'AM')" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3", | |
"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.7.3" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 4 | |
} |