summaryrefslogtreecommitdiff
path: root/Materials_Science_by_Dr._M._Arumugam/Chapter3_1.ipynb
diff options
context:
space:
mode:
Diffstat (limited to 'Materials_Science_by_Dr._M._Arumugam/Chapter3_1.ipynb')
-rwxr-xr-xMaterials_Science_by_Dr._M._Arumugam/Chapter3_1.ipynb503
1 files changed, 503 insertions, 0 deletions
diff --git a/Materials_Science_by_Dr._M._Arumugam/Chapter3_1.ipynb b/Materials_Science_by_Dr._M._Arumugam/Chapter3_1.ipynb
new file mode 100755
index 00000000..f6d276be
--- /dev/null
+++ b/Materials_Science_by_Dr._M._Arumugam/Chapter3_1.ipynb
@@ -0,0 +1,503 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#3: Elementary Crystallography"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example number 3.2, Page number 3.50"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "spacing between (100) plane is 5.64 angstrom\n",
+ "spacing between (110) plane is 3.99 angstrom\n",
+ "spacing between (111) plane is 3.26 angstrom\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a=5.64; #lattice constant(angstrom)\n",
+ "h1=1;\n",
+ "k1=0;\n",
+ "l1=0;\n",
+ "h2=1;\n",
+ "k2=1;\n",
+ "l2=0;\n",
+ "h3=1;\n",
+ "k3=1;\n",
+ "l3=1;\n",
+ "\n",
+ "#Calculation\n",
+ "d100=a/math.sqrt(h1**2+k1**2+l1**2); #spacing between (100) plane\n",
+ "d110=a/math.sqrt(h2**2+k2**2+l2**2); #spacing between (110) plane\n",
+ "d111=a/math.sqrt(h3**2+k3**2+l3**2); #spacing between (111) plane\n",
+ "\n",
+ "#Result\n",
+ "print \"spacing between (100) plane is\",d100,\"angstrom\"\n",
+ "print \"spacing between (110) plane is\",round(d110,2),\"angstrom\"\n",
+ "print \"spacing between (111) plane is\",round(d111,2),\"angstrom\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example number 3.3, Page number 3.51"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "number of atoms in (100) is 1.535 *10**13 atoms/mm**2\n",
+ "number of atoms in (110) is 1.085 *10**13 atoms/mm**2\n",
+ "number of atoms in (111) is 1.772 *10**13 atoms/mm**2\n",
+ "answer varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "a=3.61*10**-7; #lattice constant(mm)\n",
+ "\n",
+ "#Calculation\n",
+ "A100=a**2; #surface area(mm**2)\n",
+ "n=1+(4*(1/4));\n",
+ "N1=n/A100; #number of atoms in (100)(per mm**2)\n",
+ "A110=math.sqrt(2)*a**2; #surface area(mm**2)\n",
+ "N2=n/A110; #number of atoms in (110)(per mm**2)\n",
+ "A111=math.sqrt(3)*a**2/2; #surface area(mm**2)\n",
+ "N3=n/A111; #number of atoms in (110)(per mm**2)\n",
+ "\n",
+ "#Result\n",
+ "print \"number of atoms in (100) is\",round(N1/10**13,3),\"*10**13 atoms/mm**2\"\n",
+ "print \"number of atoms in (110) is\",round(N2/10**13,3),\"*10**13 atoms/mm**2\"\n",
+ "print \"number of atoms in (111) is\",round(N3/10**13,3),\"*10**13 atoms/mm**2\"\n",
+ "print \"answer varies due to rounding off errors\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "##Example number 3.4, Page number 3.52"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "wavelength of x rays is 1.552 angstrom\n",
+ "answer varies due to rounding off errors\n",
+ "energy of x rays is 8 *10**3 eV\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "n=4; \n",
+ "A=107.87; #atomic weight\n",
+ "rho=10500; #density(kg/m**3)\n",
+ "N=6.02*10**26; #number of molecules\n",
+ "theta=19+(12/60); #angle(degrees)\n",
+ "h=1;\n",
+ "k=1;\n",
+ "l=1;\n",
+ "h0=6.625*10**-34; #planck constant\n",
+ "c=3*10**8; #velocity of light(m/s)\n",
+ "e=1.6*10**-19; #charge(coulomb)\n",
+ "\n",
+ "#Calculation\n",
+ "theta=theta*math.pi/180; #angle(radian)\n",
+ "a=(n*A/(N*rho))**(1/3);\n",
+ "d=a*10**10/math.sqrt(h**2+k**2+l**2); \n",
+ "lamda=2*d*math.sin(theta); #wavelength of x rays(angstrom)\n",
+ "E=h0*c/(lamda*10**-10*e); #energy of x rays(eV)\n",
+ "\n",
+ "#Result\n",
+ "print \"wavelength of x rays is\",round(lamda,3),\"angstrom\"\n",
+ "print \"answer varies due to rounding off errors\"\n",
+ "print \"energy of x rays is\",int(E/10**3),\"*10**3 eV\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example number 3.5, Page number 3.52"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "density is 2332 kg/m**3\n",
+ "answer varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "n=8; #number of atoms\n",
+ "r=2.351*10**-10; #bond length(angstrom)\n",
+ "A=28.09; #Atomic wt. of NaCl\n",
+ "N=6.02*10**26 #Avagadro number\n",
+ "\n",
+ "#Calculation\n",
+ "a=4*r/math.sqrt(3); \n",
+ "rho=n*A/(N*a**3); #density(kg/m**3)\n",
+ "\n",
+ "#Result\n",
+ "print \"density is\",int(rho),\"kg/m**3\"\n",
+ "print \"answer varies due to rounding off errors\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "collapsed": true
+ },
+ "source": [
+ "##Example number 3.6, Page number 3.53"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 29,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "radius of largest sphere is 0.1547 r\n",
+ "maximum radius of sphere is 0.414 r\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "from sympy import Symbol\n",
+ "\n",
+ "#Variable declaration\n",
+ "r=Symbol('r')\n",
+ "\n",
+ "#Calculation\n",
+ "a1=4*r/math.sqrt(3);\n",
+ "R1=(a1/2)-r; #radius of largest sphere\n",
+ "a2=4*r/math.sqrt(2);\n",
+ "R2=(a2/2)-r; #maximum radius of sphere\n",
+ "\n",
+ "#Result\n",
+ "print \"radius of largest sphere is\",round(R1/r,4),\"r\"\n",
+ "print \"maximum radius of sphere is\",round(R2/r,3),\"r\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example number 3.7, Page number 3.54"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 30,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "percent volume change is 0.5 %\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "r1=1.258*10**-10; #radius(m)\n",
+ "r2=1.292*10**-10; #radius(m)\n",
+ "\n",
+ "#Calculation\n",
+ "a_bcc=4*r1/math.sqrt(3);\n",
+ "v=a_bcc**3;\n",
+ "V1=v/2;\n",
+ "a_fcc=2*math.sqrt(2)*r2;\n",
+ "V2=a_fcc**3/4;\n",
+ "V=(V1-V2)*100/V1; #percent volume change is\",V,\"%\"\n",
+ "\n",
+ "#Result\n",
+ "print \"percent volume change is\",round(V,1),\"%\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example number 3.8, Page number 3.55"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 31,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "number of vacancies at 0K is 0 per mol\n",
+ "number of vacancies at 300K is 768.0 per mol\n",
+ "number of vacancies at 900K is 6.53 *10**16 per mol\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "delta_Hf=120*10**3; \n",
+ "T1=0; #temperature(K)\n",
+ "T2=300; #temperature(K)\n",
+ "n1=0;\n",
+ "N=6.022*10**23;\n",
+ "R=8.314;\n",
+ "T3=900; #temperature(K)\n",
+ "\n",
+ "#Calculation\n",
+ "n2=N*math.exp(-delta_Hf/(R*T2)); #number of vacancies at 300K(per mol)\n",
+ "n3=N*math.exp(-delta_Hf/(R*T3)); #number of vacancies at 900K(per mol)\n",
+ "\n",
+ "#Result\n",
+ "print \"number of vacancies at 0K is\",n1,\"per mol\"\n",
+ "print \"number of vacancies at 300K is\",round(n2),\"per mol\"\n",
+ "print \"number of vacancies at 900K is\",round(n3/10**16,2),\"*10**16 per mol\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example number 3.9, Page number 3.56"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 34,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "interplanar spacing of crystal is 1.824 angstrom\n",
+ "answer varies due to rounding off errors\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "theta1=6.45; #angle(degrees)\n",
+ "theta2=9.15; #angle(degrees)\n",
+ "theta3=13; #angle(degrees)\n",
+ "lamda=0.58; #wavelength(angstrom)\n",
+ "\n",
+ "#Calculation\n",
+ "theta1=theta1*math.pi/180; #angle(radian)\n",
+ "theta2=theta2*math.pi/180; #angle(radian)\n",
+ "theta3=theta3*math.pi/180; #angle(radian)\n",
+ "d=lamda/(2*math.sin(theta2)); #interplanar spacing of crystal(angstrom)\n",
+ "\n",
+ "#Result\n",
+ "print \"interplanar spacing of crystal is \",round(d,3),\"angstrom\"\n",
+ "print \"answer varies due to rounding off errors\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example number 3.10, Page number 3.56"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 35,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "lattice parameter of lead is 4.1 *10**-10 m\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "n=1; #order of diffraction\n",
+ "lamda=1.54*10**-10; #wavelength(m)\n",
+ "theta=32; #angle(degrees)\n",
+ "h=2;\n",
+ "k=2;\n",
+ "l=0;\n",
+ "\n",
+ "#Calculation\n",
+ "theta=theta*math.pi/180; #angle(radian)\n",
+ "d=n*lamda/(2*math.sin(theta));\n",
+ "a=d*math.sqrt(h**2+k**2+l**2); #lattice parameter of lead(m)\n",
+ "\n",
+ "#Result\n",
+ "print \"lattice parameter of lead is\",round(a*10**10,1),\"*10**-10 m\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "##Example number 3.11, Page number 3.57"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 37,
+ "metadata": {
+ "collapsed": false
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "amount of climb down is 0.36915 *10**-8 cm\n"
+ ]
+ }
+ ],
+ "source": [
+ "#importing modules\n",
+ "import math\n",
+ "from __future__ import division\n",
+ "\n",
+ "#Variable declaration\n",
+ "delta_Hf=1.6*10**-19; \n",
+ "T=500; #temperature(K)\n",
+ "N=6.026*10**23;\n",
+ "k=1.38*10**-23; #boltzmann constant\n",
+ "mv=5.55; #molar volume(cm**3)\n",
+ "ne=10**6; #number of edge dislocations(per cm**3)\n",
+ "v=5*10**7; #number of vacancies\n",
+ "a=2*10**-8; #lattice parameter(cm)\n",
+ "\n",
+ "#Calculation\n",
+ "n=(N/mv)*math.exp(-delta_Hf/(k*T)); #number of vacancies at 300K(per mol)\n",
+ "ac=n*a/(v*ne); #amount of climb down(cm)\n",
+ "\n",
+ "#Result\n",
+ "print \"amount of climb down is\",round(ac*10**8,5),\"*10**-8 cm\""
+ ]
+ }
+ ],
+ "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.9"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}