(************** Content-type: application/mathematica ************** CreatedBy='Mathematica 4.2' Mathematica-Compatible Notebook This notebook can be used with any Mathematica-compatible application, such as Mathematica, MathReader or Publicon. The data for the notebook starts with the line containing stars above. To get the notebook into a Mathematica-compatible application, do one of the following: * Save the data starting with the line of stars above into a file with a name ending in .nb, then open the file inside the application; * Copy the data starting with the line of stars above to the clipboard, then use the Paste menu command inside the application. Data for notebooks contains only printable 7-bit ASCII and can be sent directly in email or through ftp in text mode. Newlines can be CR, LF or CRLF (Unix, Macintosh or MS-DOS style). NOTE: If you modify the data for this notebook not in a Mathematica- compatible application, you must delete the line below containing the word CacheID, otherwise Mathematica-compatible applications may try to use invalid cache data. For more information on notebooks and Mathematica-compatible applications, contact Wolfram Research: web: http://www.wolfram.com email: info@wolfram.com phone: +1-217-398-0700 (U.S.) Notebook reader applications are available free of charge from Wolfram Research. *******************************************************************) (*CacheID: 232*) (*NotebookFileLineBreakTest NotebookFileLineBreakTest*) (*NotebookOptionsPosition[ 20271, 551]*) (*NotebookOutlinePosition[ 21040, 577]*) (* CellTagsIndexPosition[ 20996, 573]*) (*WindowFrame->Normal*) Notebook[{ Cell[CellGroupData[{ Cell[TextData[{ StyleBox["FREQUENCY MODULATION DYNAMIC FORCE SPECTROSCOPY \n", "Subtitle", FontSize->28], StyleBox["Determination of Force and Energy vs Separation from Frequency vs \ Separation Data\n", "Subtitle"], StyleBox["[JE S", "Subtitle", FontSize->16], StyleBox["ader", FontSize->16], StyleBox[" ", FontSize->16, FontSlant->"Italic"], StyleBox["and SP Jarvis", FontSize->16, FontVariations->{"CompatibilityType"->0}], StyleBox[", ", FontSize->16], StyleBox["Applied Physics Letters", FontSize->16, FontSlant->"Italic"], StyleBox[", 84, 1801-1803 (2004)]", FontSize->16] }], "Title"], Cell[TextData[{ StyleBox["Mathematica", FontSlant->"Italic"], " notebook to implement the conversion procedure [Sader", StyleBox[" et al", FontSlant->"Italic"], "., ", StyleBox["Applied Physics Letters", FontSlant->"Italic"], ", ", StyleBox["84", FontWeight->"Bold"], ", 1801 (2004)] for determining force and/or energy vs separation from \ frequency shift vs separation data obtained using frequency modulation atomic \ force microscopy measurements. Procedure is valid for any amplitude of \ oscillation. \n\n", StyleBox["INSTRUCTIONS:", FontWeight->"Bold"], "\n(1) Enter operating conditions for experiment and conversion under the \ \"Operating conditions\" heading.\n(2) Enter required datafile name and \ directory containing file under \"", StyleBox["INPUT DATA - Frequency shift vs separation", FontFamily->"Times New Roman", FontVariations->{"CompatibilityType"->0}], "\" heading. The datafile must contain two columns:\nfirst is separation \ (metres), second is frequency shift (Hz). Separation should preferably \ increase with increasing line number in the datafile. Smaller separation \ corresponds to tip being closer to the sample. See Notes (d) and (e) below.\n\ (3) Select all headings, and then execute by pressing Enter.\n(4) Program \ returns Force (nN) and/or Energy (aJ) vs separation (nm).\n(5) All plots are \ given under the \"Plotting results\" heading.\n\n", StyleBox["NOTES:", FontWeight->"Bold"], " (a) Procedure is for constant cantilever oscillation amplitude \ measurements only.\n\t (b) The smallest separation is normalised to zero \ by the program.\n\t (c) Frequency shift must go to zero at the largest \ separations - corresponding to no interaction force.\n\t (d) ", StyleBox["If separation is not increasing with line number, a warning \ message is given in \"INPUT DATA ", FontWeight->"Bold"], StyleBox["- Frequency shift vs separation", FontFamily->"Times New Roman", FontWeight->"Bold", FontVariations->{"CompatibilityType"->0}], StyleBox["\" section\n\t and the datafile is subsequently sorted in \ order of increasing separation.\n", FontWeight->"Bold"], "\t (e) ", StyleBox["If repeated separation values are encountered in the datafile, \ only one of these repeated separation values is retained. \n\t A \ warning is given in \"INPUT DATA ", FontWeight->"Bold"], StyleBox["- Frequency shift vs separation", FontFamily->"Times New Roman", FontWeight->"Bold", FontVariations->{"CompatibilityType"->0}], StyleBox["\" section.", FontWeight->"Bold"] }], "Text", TextJustification->0], Cell[CellGroupData[{ Cell[TextData[{ "Loads ", StyleBox["Mathematica", FontSlant->"Italic"], " package" }], "Section"], Cell[BoxData[ \(\(<< NumericalMath`ListIntegrate`;\)\)], "Input"] }, Closed]], Cell[CellGroupData[{ Cell["Operating conditions", "Section"], Cell["Nanometre definition:", "Text"], Cell[BoxData[ \(\(nm = 10^\(-9\);\)\)], "Input"], Cell["Cantlever spring constant (N/m):", "Text"], Cell[BoxData[ \(\(kspring\ = \ 4;\)\)], "Input"], Cell["Resonant frequency - far from surface (Hz):", "Text"], Cell[BoxData[ \(\(f0\ = \ 20\ 10^3;\)\)], "Input"], Cell["Amplitude of oscillation (m):", "Text"], Cell[BoxData[ \(\(amp\ = \ 0.43\ nm;\)\)], "Input"], Cell["Smoothing - number of points to average:", "Text"], Cell[BoxData[ \(\(\(set\ = \ 20;\)\(\ \)\)\)], "Input"], Cell["\<\ Frequency offset at large distances. Ensures frequency shift in given data is \ zero at large separations. (Hz):\ \>", "Text"], Cell[BoxData[ \(\(freqoffset\ = \ 0;\)\)], "Input"], Cell["Force conversion - (Yes = 1; No = 0):", "Text"], Cell[BoxData[ \(\(Forceconvert\ = \ 1;\)\)], "Input"], Cell["Energy conversion - (Yes = 1; No = 0):", "Text"], Cell[BoxData[ \(\(Energyconvert\ = \ 1;\)\)], "Input"] }, Closed]], Cell[CellGroupData[{ Cell[TextData[StyleBox["INPUT DATA - Frequency shift vs separation ", FontFamily->"Arial", FontSize->16, FontWeight->"Bold"]], "Section", CellDingbat->"\[FilledSquare]"], Cell["\<\ Reads in frequency shift vs separation data from specified file. Frequency is \ in Hertz. Separation in metres.\ \>", "Text"], Cell["Directory containing file:", "Text"], Cell[BoxData[ \(\(SetDirectory["\"];\)\)], "Input"], Cell[BoxData[ \(\(\(data\ = \ ReadList["\", \ Number, \ RecordLists \[Rule] True\ ];\)\(\ \)\)\)], "Input"], Cell["\<\ Folloing procedure checks that separation is increasing with line number - if \ this is not the case it sorts the datafile in order of increasing separation. Also checks that each separation value is unique, and eliminates non-unique \ separation values:\ \>", "Text"], Cell[BoxData[{ \(\(len\ = \ Length[data];\)\ \n\), "\n", \(\(errororder\ = \ 0;\)\ \), "\n", \(\(\(checkeliminate\ = \ 0;\)\(\n\) \)\), "\n", \(\(\(m\ = \ 1;\)\(\n\) \)\ \ \ \ \), "\n", \(\(\(For[i\ = \ 1, \ i\ <= \ len\ - \ 1, \ \(i++\), \n\t If[data[\([i\ + \ 1, \ 1]\)]\ < \ data[\([i, \ 1]\)], \ lineerror[m]\ = \ i; \ m\ += \ 1; \ errororder\ = \ 1]];\)\(\[IndentingNewLine]\) \)\), "\[IndentingNewLine]", \(\(\(m\ -= \ 1;\)\(\[IndentingNewLine]\) \)\), "\n", \(\(\(If[errororder\ == \ 1, \ Print["\", \ Array[lineerror, \ m]]; \[IndentingNewLine]Print["\"]; \[IndentingNewLine]\ data\ = \ Sort[data];\[IndentingNewLine]];\)\(\[IndentingNewLine]\) \)\), "\[IndentingNewLine]", \(\(n\ = \ 1;\)\ \n\), "\n", \(\(\(For[i\ = \ 1, \ i\ <= \ len\ - \ 1, \ \(i++\), \n\t If[data[\([i\ + \ 1, \ 1]\)]\ == \ data[\([i, \ 1]\)], \ reset[n]\ = \ i\ + \ 1; \ n\ += \ 1; \ checkeliminate\ = \ 1]];\)\(\[IndentingNewLine]\) \)\), "\[IndentingNewLine]", \(\(\(n\ -= \ 1;\)\(\n\) \)\), "\n", \(\(tabdelete\ = \ Table[{reset[j]}, \ {j, \ 1, \ n}];\)\), "\n", \(\(\(data\ = \ Delete[data, \ tabdelete];\)\(\n\) \)\), "\[IndentingNewLine]", \(\(\(If[checkeliminate\ == \ 1, \ Print["\"]];\)\(\n\) \)\), "\n", \(\(ClearAll[m, \ n, \ i, \ j, \ len];\)\)}], "Input"], Cell["\<\ Converts datafile into \[CapitalDelta]f/f vs separation(m) data, and \ normalises separation so that zero separation corresponds to smallest \ separation:\ \>", "Text"], Cell[BoxData[{ \(\(datanew\ = \ Table[{data[\([i, \ 1]\)]\ - \ data[\([1, \ 1]\)]\ , \ data[\([i, \ 2]\)]\ /\ f0\ - \ freqoffset\ /\ f0}, \ {i, \ 1, \ Length[data]}];\)\), "\[IndentingNewLine]", \(\(data\ = \ datanew;\)\)}], "Input"], Cell["\<\ Plot of frequency vs separation data is given in \"Plotting results\" \ heading.\ \>", "Text"] }, Closed]], Cell[CellGroupData[{ Cell["Smoothing algorithm and numerical derivative calculation", "Section"], Cell["Smoothing procedure (repeats procedure once):", "Text"], Cell[BoxData[{ \(\(data1\ = \ Table[{data[\([i, \ 1]\)], \ 1\ /\ \((2\ set\ + \ 1)\)\ Sum[ data[\([i\ + \ n, \ 2]\)], \ {n, \ \(-set\), \ set}]}, \ \ {i, \ set\ + \ 1, \ Length[data]\ - \ set}];\)\), "\n", \(\(\(data2\ = \ \ Table[{data1[\([i, \ 1]\)], \ 1\ /\ \((2\ set\ + \ 1)\)\ Sum[ data1[\([i\ + \ n, \ 2]\)], \ {n, \ \(-set\), \ set}]}, \ \ {i, \ set\ + \ 1, \ Length[data1]\ - \ set}];\)\(\[IndentingNewLine]\) \)\), "\n", \(\(smooth\ = \ Table[data2[\([i]\)], \ {i, \ 2, \ Length[data2]\ - \ 1}];\)\)}], "Input"], Cell["Numerical derivative computation:", "Text"], Cell[BoxData[ \(\(deriv\ = \ Table[{data2[\([i, \ 1]\)], \ \((data2[\([i\ + \ 1, \ 2]\)]\ - \ data2[\([i\ - \ 1, \ 2]\)])\)\ /\ \((data2[\([i\ + \ 1, \ 1]\)]\ - \ data2[\([i\ - \ 1, \ 1]\)])\)}, \ {i, \ 2, \ Length[data2]\ - \ 1}];\)\)], "Input"], Cell["\<\ Plot of smoothed data and its derivative given in \"Plotting results\" \ heading.\ \>", "Text"] }, Closed]], Cell[CellGroupData[{ Cell["Force evaluation", "Section", CellDingbat->"\[FilledSquare]"], Cell["\<\ Evaluates integral to determine force vs separation data from frequency shift \ vs separation data.\ \>", "Text"], Cell[BoxData[ \(\(inttable[z_]\ := \ Table[{smooth[\([t, \ 1]\)], \ \((1\ + \ \(Sqrt[amp]\ /\ 8\)\ /\ Sqrt[Pi\ \((smooth[\([t, \ 1]\)]\ - \ smooth[\([z, \ 1]\)])\)])\)\ smooth[\([t, \ 2]\)]\ - \ Sqrt[amp]^3\ /\ Sqrt[2\ \((smooth[\([t, \ 1]\)]\ - \ smooth[\([z, \ 1]\)])\)]\ deriv[\([t, \ 2]\)]}, \ {t, \ z + 1, \ Length[smooth]}];\)\)], "Input", CellDingbat->None], Cell["\<\ These functions account for the integrable singularity at t = z:\ \>", "Text"], Cell[BoxData[{ \(\(correct0[z_]\ := \ smooth[\([z, \ 2]\)]\ \((smooth[\([z + 1, \ 1]\)]\ - \ smooth[\([z, \ 1]\)])\);\)\), "\[IndentingNewLine]", \(\(correct1[z_]\ := \ 2\ \((\(Sqrt[amp]\ /\ 8\)\ /\ Sqrt[Pi])\)\ smooth[\([z, \ 2]\)]\ Sqrt[ smooth[\([z + 1, \ 1]\)]\ - \ smooth[\([z, \ 1]\)]];\)\), "\[IndentingNewLine]", \(\(correct2[ z_]\ := \ \(-\ 2\)\ \((Sqrt[amp]^3\ /\ Sqrt[2])\)\ deriv[\([z, \ 2]\)]\ Sqrt[ smooth[\([z + 1, \ 1]\)]\ - \ smooth[\([z, \ 1]\)]];\)\)}], "Input", CellDingbat->None], Cell["Complete integral expression for force:", "Text"], Cell[BoxData[ \(\(int[z_]\ := \ 2\ kspring\ \((correct0[z]\ + \ correct1[z]\ + \ correct2[z]\ + \ ListIntegrate[inttable[z], \ 2])\);\)\)], "Input", CellDingbat->None], Cell["Evaluates force vs separation:", "Text"], Cell[BoxData[ \(\(If[Forceconvert\ \[Equal] \ 1, \ Forcedata\ = \ Table[{smooth[\([z, \ 1]\)], \ int[z]}, \ {z, \ 1, \ Length[smooth]\ - \ 1}]];\)\)], "Input", CellDingbat->None], Cell["Plot of force data given in \"Plotting results\" heading.", "Text"] }, Closed]], Cell[CellGroupData[{ Cell["Energy evaluation", "Section", CellDingbat->"\[FilledSquare]"], Cell["\<\ Evaluates integral to determine force vs separation data from frequency shift \ vs separation data.\ \>", "Text"], Cell[BoxData[ \(\(inttable[z_]\ := \ Table[{smooth[\([t, \ 1]\)], \ smooth[\([t, \ 2]\)]\ \((\((smooth[\([t, \ 1]\)]\ - \ smooth[\([z, \ 1]\)])\)\ + \ Sqrt[amp]\ /\ 4\ Sqrt[\((smooth[\([t, \ 1]\)]\ - \ smooth[\([z, \ 1]\)])\)\ /\ Pi]\ + \ Sqrt[amp]^3\ /\ Sqrt[2\ \((smooth[\([t, \ 1]\)]\ - \ smooth[\([z, \ 1]\)])\)])\)}, \ {t, \ z + 1, \ Length[smooth]}];\)\)], "Input", CellDingbat->None], Cell["\<\ These functions account for the integrable singularity at t = z:\ \>", "Text"], Cell[BoxData[{ \(\(correct0[z_]\ := \ 1/2\ \ smooth[\([z, \ 2]\)]\ \((smooth[\([z + 1, \ 1]\)]\ - \ smooth[\([z, \ 1]\)])\)^2;\)\), "\[IndentingNewLine]", \(\(correct1[z_]\ := \ 2\ /\ 3\ \((\(Sqrt[amp]\ /\ 4\)\ /\ Sqrt[Pi])\)\ smooth[\([z, \ 2]\)]\ Sqrt[ smooth[\([z + 1, \ 1]\)]\ - \ smooth[\([z, \ 1]\)]]^3;\)\), "\[IndentingNewLine]", \(\(correct2[z_]\ := \ 2\ \((Sqrt[amp]^3\ /\ Sqrt[2])\)\ smooth[\([z, \ 2]\)]\ Sqrt[ smooth[\([z + 1, \ 1]\)]\ - \ smooth[\([z, \ 1]\)]];\)\)}], "Input", CellDingbat->None], Cell["Complete integral expression for force:", "Text"], Cell[BoxData[ \(\(int[z_]\ := \ 2\ kspring\ \((correct0[z]\ + \ correct1[z]\ + \ correct2[z]\ + \ ListIntegrate[inttable[z], \ 2])\);\)\)], "Input", CellDingbat->None], Cell["Evaluates force vs separation:", "Text"], Cell[BoxData[ \(\(If[Energyconvert\ \[Equal] \ 1, \ Energydata\ = \ Table[{smooth[\([z, \ 1]\)], \ int[z]}, \ {z, \ 1, \ Length[smooth]\ - \ 1}]];\)\)], "Input", CellDingbat->None], Cell["Plot of force data given in \"Plotting results\" heading.", "Text"] }, Closed]], Cell[CellGroupData[{ Cell["Plotting results", "Section"], Cell[BoxData[{ \(\(dataplot\ = \ Table[{data[\([i, \ 1]\)]\ \ /\ nm, \ data[\([i, \ 2]\)]}, \ {i, \ 1, \ Length[data]}];\)\), "\[IndentingNewLine]", \(\(smoothplot\ = \ Table[{smooth[\([i, \ 1]\)]\ \ /\ nm, \ smooth[\([i, \ 2]\)]}, \ {i, \ 1, \ Length[smooth]}];\)\), "\[IndentingNewLine]", \(\(derivplot\ = \ Table[{deriv[\([i, \ 1]\)]\ \ /\ nm, \ deriv[\([i, \ 2]\)]\ nm}, \ {i, \ 1, \ Length[deriv]}];\)\), "\[IndentingNewLine]", \(\(If[Forceconvert\ \[Equal] \ 1, \ Forcedataplot\ = \ Table[{Forcedata[\([i, \ 1]\)]\ \ /\ nm, \ Forcedata[\([i, \ 2]\)]\ 10^9}, \ {i, \ 1, \ Length[Forcedata]}]];\)\), "\[IndentingNewLine]", \(\(If[Energyconvert\ \[Equal] \ 1, \ Energydataplot\ = \ Table[{Energydata[\([i, \ 1]\)]\ /\ nm, \ Energydata[\([i, \ 2]\)]\ 10^18}, \ {i, \ 1, \ Length[Energydata]}]];\)\)}], "Input"], Cell[BoxData[ \(\(\( (*\ Plots\ frequency\ vs\ separation\ data\ \ *) \)\(\[IndentingNewLine]\)\(\(Print["\<\>"];\)\[IndentingNewLine] Print["\<(Number of data points = \>", \ Length[data], "\<)\>"]; Print[StyleForm["\", \ FontFamily -> "\", \ FontWeight \[Rule] "\", \ FontSize \[Rule] 14]];\[IndentingNewLine] \(porig\ = \ ListPlot[dataplot, \ PlotRange \[Rule] All, \ Frame \[Rule] True, \ Axes \[Rule] False, \ DefaultFont \[Rule] {"\", \ 12}, \ FrameLabel \[Rule] {"\", \ \ "\<\[CapitalDelta]f/f\>"}];\)\n\[IndentingNewLine] (*\ Plots\ smooth\ frequency\ vs\ separation\ and\ derivative\ data\ \ *) \[IndentingNewLine] \(Print["\<\>"];\)\[IndentingNewLine] \(Print[ StyleForm["\", \ FontFamily -> "\", \ FontWeight \[Rule] "\", \ FontSize \[Rule] 14]];\)\[IndentingNewLine] \(psmooth\ = \ ListPlot[smoothplot, \ PlotRange \[Rule] All, \ Frame \[Rule] True, \ Axes \[Rule] False, \ DefaultFont \[Rule] {"\", \ 12}, \ FrameLabel \[Rule] {"\", \ \ "\<\[CapitalDelta]f/f\>"}, \ PlotStyle \[Rule] {RGBColor[1, 0, 0]}];\)\n\[IndentingNewLine] \(Print["\<\>"];\)\[IndentingNewLine] \(Print[ StyleForm["\", \ FontFamily -> "\", \ FontWeight \[Rule] "\", \ FontSize \[Rule] 14]];\)\[IndentingNewLine] \(pcomp\ = \ Show[psmooth, \ porig, \ PlotRange \[Rule] All];\)\[IndentingNewLine]\[IndentingNewLine] \(Print["\<\>"];\)\[IndentingNewLine] \(Print[ StyleForm["\", \ FontFamily -> "\", \ FontWeight \[Rule] "\", \ FontSize \[Rule] 14]];\)\[IndentingNewLine] \(pderiv\ = \ ListPlot[derivplot, \ PlotRange \[Rule] All, \ Frame \[Rule] True, \ Axes \[Rule] False, \ DefaultFont \[Rule] {"\", \ 12}, \ FrameLabel \[Rule] {"\", \ \*"\"\<\!\(\[PartialD]\ \_z\) \[CapitalDelta]f/f (\!\(nm\^\(-1\)\))\>\""}];\)\[IndentingNewLine]\n \(If[Forceconvert\ \[Equal] \ 1, \[IndentingNewLine] (*\ Plots\ recovered\ force\ vs\ separation\ data\ \ *) \[IndentingNewLine]Print["\<\>"]; \[IndentingNewLine]Print[ StyleForm["\", \ FontFamily -> "\", \ FontWeight \[Rule] "\", \ FontSize \[Rule] 14]]; \[IndentingNewLine]pforcedata\ = \ ListPlot[Forcedataplot, \ PlotRange \[Rule] All, \ Frame \[Rule] True, \ Axes \[Rule] False, \ FrameLabel \[Rule] {"\", \ "\"}, \ DefaultFont \[Rule] {"\", \ 12}];\[IndentingNewLine]];\)\n\[IndentingNewLine] \(If[Energyconvert\ \[Equal] \ 1, \[IndentingNewLine] (*\ Plots\ recovered\ energy\ vs\ separation\ data\ \ *) \[IndentingNewLine]Print["\<\>"]; \[IndentingNewLine]Print[ StyleForm["\", \ FontFamily -> "\", \ FontWeight \[Rule] "\", \ FontSize \[Rule] 14]]; \[IndentingNewLine]penergydata\ = \ ListPlot[Energydataplot, \ PlotRange \[Rule] All, \ Frame \[Rule] True, \ Axes \[Rule] False, \ FrameLabel \[Rule] {"\", \ "\"}, \ \ DefaultFont \[Rule] {"\", \ 12}];\[IndentingNewLine]];\)\)\)\)], "Input", TextAlignment->Left, TextJustification->0] }, Closed]] }, Open ]] }, FrontEndVersion->"4.2 for Microsoft Windows", ScreenRectangle->{{0, 1280}, {0, 951}}, WindowToolbars->"EditBar", WindowSize->{952, 813}, WindowMargins->{{138, Automatic}, {Automatic, 25}}, PrintingCopies->1, PrintingPageRange->{Automatic, Automatic}, StyleDefinitions -> "Default.nb" ] (******************************************************************* Cached data follows. If you edit this Notebook file directly, not using Mathematica, you must remove the line containing CacheID at the top of the file. The cache data will then be recreated when you save this file from within Mathematica. *******************************************************************) (*CellTagsOutline CellTagsIndex->{} *) (*CellTagsIndex CellTagsIndex->{} *) (*NotebookFileOutline Notebook[{ Cell[CellGroupData[{ Cell[1776, 53, 653, 22, 218, "Title"], Cell[2432, 77, 2666, 59, 375, "Text"], Cell[CellGroupData[{ Cell[5123, 140, 107, 5, 59, "Section"], Cell[5233, 147, 69, 1, 30, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[5339, 153, 39, 0, 39, "Section"], Cell[5381, 155, 37, 0, 33, "Text"], Cell[5421, 157, 52, 1, 30, "Input"], Cell[5476, 160, 48, 0, 33, "Text"], Cell[5527, 162, 53, 1, 30, "Input"], Cell[5583, 165, 59, 0, 33, "Text"], Cell[5645, 167, 55, 1, 30, "Input"], Cell[5703, 170, 45, 0, 33, "Text"], Cell[5751, 172, 56, 1, 30, "Input"], Cell[5810, 175, 56, 0, 33, "Text"], Cell[5869, 177, 60, 1, 30, "Input"], Cell[5932, 180, 136, 3, 33, "Text"], Cell[6071, 185, 56, 1, 30, "Input"], Cell[6130, 188, 53, 0, 33, "Text"], Cell[6186, 190, 58, 1, 30, "Input"], Cell[6247, 193, 54, 0, 33, "Text"], Cell[6304, 195, 59, 1, 30, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[6400, 201, 177, 4, 39, "Section"], Cell[6580, 207, 135, 3, 33, "Text"], Cell[6718, 212, 42, 0, 33, "Text"], Cell[6763, 214, 90, 1, 30, "Input"], Cell[6856, 217, 147, 3, 30, "Input"], Cell[7006, 222, 278, 5, 52, "Text"], Cell[7287, 229, 1738, 37, 650, "Input"], Cell[9028, 268, 178, 4, 33, "Text"], Cell[9209, 274, 281, 5, 50, "Input"], Cell[9493, 281, 104, 3, 33, "Text"] }, Closed]], Cell[CellGroupData[{ Cell[9634, 289, 75, 0, 39, "Section"], Cell[9712, 291, 61, 0, 33, "Text"], Cell[9776, 293, 703, 15, 90, "Input"], Cell[10482, 310, 49, 0, 33, "Text"], Cell[10534, 312, 339, 6, 50, "Input"], Cell[10876, 320, 105, 3, 33, "Text"] }, Closed]], Cell[CellGroupData[{ Cell[11018, 328, 69, 1, 39, "Section"], Cell[11090, 331, 123, 3, 33, "Text"], Cell[11216, 336, 558, 11, 70, "Input"], Cell[11777, 349, 88, 2, 33, "Text"], Cell[11868, 353, 632, 13, 70, "Input"], Cell[12503, 368, 55, 0, 33, "Text"], Cell[12561, 370, 201, 4, 30, "Input"], Cell[12765, 376, 46, 0, 33, "Text"], Cell[12814, 378, 222, 5, 30, "Input"], Cell[13039, 385, 73, 0, 33, "Text"] }, Closed]], Cell[CellGroupData[{ Cell[13149, 390, 70, 1, 39, "Section"], Cell[13222, 393, 123, 3, 33, "Text"], Cell[13348, 398, 619, 13, 110, "Input"], Cell[13970, 413, 88, 2, 33, "Text"], Cell[14061, 417, 664, 14, 70, "Input"], Cell[14728, 433, 55, 0, 33, "Text"], Cell[14786, 435, 201, 4, 30, "Input"], Cell[14990, 441, 46, 0, 33, "Text"], Cell[15039, 443, 224, 5, 30, "Input"], Cell[15266, 450, 73, 0, 33, "Text"] }, Closed]], Cell[CellGroupData[{ Cell[15376, 455, 35, 0, 39, "Section"], Cell[15414, 457, 1035, 21, 150, "Input"], Cell[16452, 480, 3791, 67, 792, "Input"] }, Closed]] }, Open ]] } ] *) (******************************************************************* End of Mathematica Notebook file. *******************************************************************)