(* Content-type: application/vnd.wolfram.mathematica *) (*** Wolfram Notebook File ***) (* http://www.wolfram.com/nb *) (* CreatedBy='Mathematica 13.0' *) (*CacheID: 234*) (* Internal cache information: NotebookFileLineBreakTest NotebookFileLineBreakTest NotebookDataPosition[ 158, 7] NotebookDataLength[ 225443, 4889] NotebookOptionsPosition[ 211020, 4635] NotebookOutlinePosition[ 211556, 4654] CellTagsIndexPosition[ 211513, 4651] WindowFrame->Normal*) (* Beginning of Notebook Content *) Notebook[{ Cell["3.029 Spring 2022\[LineSeparator]Lecture 13 - 03/14/2022", "Subtitle", CellChangeTimes->{{3.8525512993398438`*^9, 3.8525513206118402`*^9}, { 3.852652054138073*^9, 3.8526520591301193`*^9}, {3.853194369726288*^9, 3.8531943739664793`*^9}, 3.8531971130005827`*^9, {3.853361889945813*^9, 3.853361893353859*^9}, {3.854455749568426*^9, 3.8544557604776297`*^9}, { 3.8545621484661007`*^9, 3.8545621501697083`*^9}, {3.85499650158072*^9, 3.854996504060568*^9}, {3.855176893175762*^9, 3.855176906151746*^9}, { 3.855604699389501*^9, 3.855604707177799*^9}, {3.85582102333785*^9, 3.855821026740013*^9}, {3.8561799930634317`*^9, 3.8561800234790487`*^9}},ExpressionUUID->"47622c80-d933-404e-88da-\ 20759783ea1a"], Cell[CellGroupData[{ Cell["Molecular Dynamics", "Chapter", CellChangeTimes->{{3.852551340964005*^9, 3.852551346980482*^9}, 3.8526520737398577`*^9, {3.853194378006518*^9, 3.853194381142681*^9}, { 3.853361935778483*^9, 3.853361942498363*^9}, {3.854456274982847*^9, 3.854456277927383*^9}, {3.8544565045315533`*^9, 3.854456514672267*^9}, 3.854562160779923*^9, {3.854996506556843*^9, 3.854996508477077*^9}, { 3.854996641253805*^9, 3.854996643918687*^9}, {3.855604708758831*^9, 3.855604727103332*^9}, {3.855660670350954*^9, 3.855660672414981*^9}, { 3.8558210308839273`*^9, 3.8558210389988337`*^9}, {3.856180026750667*^9, 3.856180028663183*^9}},ExpressionUUID->"770ff757-b306-4f79-85f0-\ 83fe775e7aeb"], Cell["\<\ In the last couple of lectures, we investigated polymer dynamics using a \ closed form viscous-dragging motion for reptation\ \>", "Item", CellChangeTimes->{{3.856180389998012*^9, 3.856180465695979*^9}},ExpressionUUID->"46a813d8-0bef-4ea9-95fb-\ bce4902bc1e8"], Cell[CellGroupData[{ Cell["\<\ Today, we will end our unit on classical dynamics, by investigating a \ numerical technique for modeling the dynamics of atoms and molecules more \ generally\ \>", "Item", CellChangeTimes->{{3.856180389998012*^9, 3.856180493451847*^9}, { 3.8561805296614227`*^9, 3.856180570240184*^9}},ExpressionUUID->"e8624621-727d-4ce6-accf-\ a3309e2d7b9f"], Cell["\<\ In doing so, we will quickly re-visit Hamiltonian and Newtonian mechanics \ from L01-L03\ \>", "Subitem", CellChangeTimes->{{3.856180389998012*^9, 3.856180493451847*^9}, { 3.8561805296614227`*^9, 3.856180603372611*^9}},ExpressionUUID->"2746f1a1-8e08-4044-af52-\ c1733f66ce85"] }, Open ]], Cell[CellGroupData[{ Cell["Symplectic Integration", "Section", CellChangeTimes->{{3.856180709998302*^9, 3.856180714558537*^9}},ExpressionUUID->"3518b599-f5f3-4473-bb8d-\ c38031d0ceae"], Cell[TextData[{ "Recall that instead of solving for N ", Cell[BoxData[ FormBox[ SuperscriptBox["2", "nd"], TraditionalForm]], FormatType->TraditionalForm,ExpressionUUID-> "f244e6f6-a833-4487-9571-6dcc261ea909"], " order differential equations using Newton\[CloseCurlyQuote]s second law of \ motion" }], "Item", CellChangeTimes->{{3.856180729635262*^9, 3.856180785463614*^9}},ExpressionUUID->"fa1cc1ad-7caa-4363-af01-\ 5add39bdbc0a"], Cell[BoxData[ RowBox[{"\t", FormBox[ TemplateBox[<|"boxes" -> FormBox[ RowBox[{ StyleBox["m", "TI"], FractionBox[ SuperscriptBox[ StyleBox["d", "TI"], "2"], RowBox[{ StyleBox["d", "TI"], SuperscriptBox[ StyleBox["t", "TI"], "2"]}]], OverscriptBox[ StyleBox["x", "TI"], "\[RightVector]"], RowBox[{"(", StyleBox["t", "TI"], ")"}], "\[LongEqual]", OverscriptBox[ StyleBox["F", "TI"], "\[RightVector]"]}], TraditionalForm], "errors" -> {}, "input" -> "m \\frac{d^2}{dt^2} \\vec{x}(t) = \\vec{F}", "state" -> "Boxes"|>, "TeXAssistantTemplate"], TraditionalForm]}]], "DisplayFormulaNumbered", CellChangeTimes->{{3.856180779877439*^9, 3.856180782587152*^9}},ExpressionUUID->"b853ddb5-cadc-4983-b900-\ d7eb6db19aa9"], Cell[TextData[{ "We can instead solve the 2N ", Cell[BoxData[ FormBox[ SuperscriptBox["1", "st"], TraditionalForm]], FormatType->TraditionalForm,ExpressionUUID-> "e5529438-0997-41bd-86b9-1df76a9a9a9c"], " order Hamilton\[CloseCurlyQuote]s equations given by" }], "Item", CellChangeTimes->{{3.856180729635262*^9, 3.856180846408305*^9}},ExpressionUUID->"8310c7f0-b0a8-4c64-bfbb-\ 4fd3396ac310"], Cell[BoxData[ RowBox[{"\t", RowBox[{ FormBox[ TemplateBox[<|"boxes" -> FormBox[ RowBox[{ FractionBox[ RowBox[{ StyleBox["d", "TI"], OverscriptBox[ StyleBox["q", "TI"], "\[RightVector]"]}], RowBox[{ StyleBox["d", "TI"], StyleBox["t", "TI"]}]], "\[LongEqual]", FractionBox[ RowBox[{"\[PartialD]", StyleBox["H", "TI"]}], RowBox[{"\[PartialD]", OverscriptBox[ StyleBox["p", "TI"], "\[RightVector]"]}]], "\[LongEqual]", SubscriptBox["\[Del]", OverscriptBox[ StyleBox["p", "TI"], "\[RightVector]"]], StyleBox["H", "TI"]}], TraditionalForm], "errors" -> {}, "input" -> "\\frac{d \\vec{q}}{dt} = \\frac{\\partial H}{\\partial \\vec{p}} = \ \\nabla_{\\vec{p}} H", "state" -> "Boxes"|>, "TeXAssistantTemplate"], TraditionalForm], "\[LineSeparator]", "\t", TemplateBox[<|"boxes" -> FormBox[ RowBox[{ FractionBox[ RowBox[{ StyleBox["d", "TI"], OverscriptBox[ StyleBox["p", "TI"], "\[RightVector]"]}], RowBox[{ StyleBox["d", "TI"], StyleBox["t", "TI"]}]], "\[LongEqual]", "-", FractionBox[ RowBox[{"\[PartialD]", StyleBox["H", "TI"]}], RowBox[{"\[PartialD]", OverscriptBox[ StyleBox["q", "TI"], "\[RightVector]"]}]], "\[LongEqual]", "-", SubscriptBox["\[Del]", OverscriptBox[ StyleBox["q", "TI"], "\[RightVector]"]], StyleBox["H", "TI"], "\[LongEqual]", OverscriptBox[ StyleBox["F", "TI"], "\[RightVector]"]}], TraditionalForm], "errors" -> {}, "input" -> "\\frac{d \\vec{p}}{dt} = - \\frac{\\partial H}{\\partial \\vec{q}} = \ -\\nabla_{\\vec{q}} H = \\vec{F}", "state" -> "Boxes"|>, "TeXAssistantTemplate"]}]}]], "DisplayFormulaNumbered", CellChangeTimes->{{3.856180779877439*^9, 3.856180782587152*^9}, { 3.856180858378889*^9, 3.8561808656126003`*^9}, 3.856181425066486*^9},ExpressionUUID->"eb69e280-dc90-4525-963b-\ 5aaa7106819e"], Cell["\<\ In L01-L02, we saw how this often leads to a simplified description for \ complex systems\ \>", "Item", CellChangeTimes->{{3.856180882021451*^9, 3.856180913980743*^9}},ExpressionUUID->"0724d2c1-53ea-430b-9371-\ eeb8f6565afd"], Cell[CellGroupData[{ Cell["\<\ Here, we will make use of another property of Hamilton\[CloseCurlyQuote]s \ equations\ \>", "Item", CellChangeTimes->{{3.856180882021451*^9, 3.856180939596035*^9}},ExpressionUUID->"0350987b-fd32-4ae4-b5c4-\ 8a05083f3c23"], Cell[TextData[{ "Namely, that the ", ButtonBox["Geometry of Hamiltonian Systems", BaseStyle->"Hyperlink", ButtonData->{ URL["https://en.wikipedia.org/wiki/Hamiltonian_mechanics#Geometry_of_\ Hamiltonian_systems"], None}, ButtonNote-> "https://en.wikipedia.org/wiki/Hamiltonian_mechanics#Geometry_of_\ Hamiltonian_systems"], " enables energy-conserving integration schemes, which are numerically more \ stable" }], "Subitem", CellChangeTimes->{{3.856180882021451*^9, 3.856181007634111*^9}},ExpressionUUID->"56ba64a2-8a77-4155-803f-\ a91c3cbfee34"] }, Open ]], Cell[CellGroupData[{ Cell["Lennard Jones Potential", "Subsection", CellChangeTimes->{{3.856181454894665*^9, 3.856181459710853*^9}},ExpressionUUID->"4fcec8d7-8704-4420-9c71-\ 6607712cf733"], Cell["\<\ Recall that the normalized Lennard-Jones potential is given by\ \>", "Item", CellChangeTimes->{{3.8561814612115173`*^9, 3.856181473572661*^9}},ExpressionUUID->"f580eacd-9616-40d4-89c6-\ c544f6414cca"], Cell[BoxData[ RowBox[{"\t", TemplateBox[<|"boxes" -> FormBox[ RowBox[{ SubscriptBox[ OverscriptBox[ StyleBox["U", "TI"], "~"], StyleBox["ljp", FontSlant -> "Plain"]], "\[LongEqual]", FractionBox["1", SuperscriptBox["\[Rho]", "12"]], "-", FractionBox["2", SuperscriptBox["\[Rho]", "6"]]}], TraditionalForm], "errors" -> {}, "input" -> "\\tilde{U}_{\\mathrm{ljp}}=\\frac{1}{\\rho^{12}} - \\frac{2}{\\rho^6}", "state" -> "Boxes"|>, "TeXAssistantTemplate"]}]], "DisplayFormulaNumbered", CellChangeTimes->{{3.856180779877439*^9, 3.856180782587152*^9}, 3.8561815208133163`*^9, 3.856181554815453*^9},ExpressionUUID->"02007911-62d1-4dab-8a99-\ aa9268d3f41f"], Cell[CellGroupData[{ Cell[TextData[{ "For two particles a normalized distance ", Cell[BoxData[ FormBox[ TemplateBox[<|"boxes" -> FormBox[ RowBox[{"\[Rho]", "\[LongEqual]", StyleBox["r", "TI"], "/", SubscriptBox[ StyleBox["r", "TI"], RowBox[{ StyleBox["m", "TI"], StyleBox["i", "TI"], StyleBox["n", "TI"]}]]}], TraditionalForm], "errors" -> {}, "input" -> "\\rho = r/r_{\\mathm{min}}", "state" -> "Boxes"|>, "TeXAssistantTemplate"], TraditionalForm]],ExpressionUUID-> "9594e1eb-3739-48ca-a58f-e34f7aa877fb"], " apart" }], "Subitem", CellChangeTimes->{{3.856181610155905*^9, 3.8561816369448643`*^9}},ExpressionUUID->"6bf713fe-ebb0-475a-bab3-\ ca6cd0a336ea"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"lennardJonesPotentialNonDimensional", "[", "\[Rho]_", "]"}], "=", RowBox[{ FractionBox["1", SuperscriptBox["\[Rho]", "12"]], "-", FractionBox["2", SuperscriptBox["\[Rho]", "6"]]}]}], ";"}]], "Input", CellChangeTimes->{{3.856181562474478*^9, 3.856181588231838*^9}}, CellLabel->"In[61]:=",ExpressionUUID->"341b5e60-1879-4f8d-bb7f-5b00f0c61a79"] }, Open ]], Cell[CellGroupData[{ Cell[TextData[{ "The ", StyleBox["magnitude", FontSlant->"Italic"], " of the force experienced by the particles is given by" }], "Item", CellChangeTimes->{{3.8561814612115173`*^9, 3.856181473572661*^9}, { 3.856181595928145*^9, 3.8561816070478163`*^9}, {3.85618163856666*^9, 3.8561816550322857`*^9}, {3.856181689063074*^9, 3.856181691528626*^9}},ExpressionUUID->"b0fded2e-25f5-4332-a718-\ a987e46d47c7"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"lennardJonesForce", "[", "\[Rho]_", "]"}], "=", RowBox[{"-", RowBox[{ RowBox[{"lennardJonesPotentialNonDimensional", "'"}], "[", "\[Rho]", "]"}]}]}]], "Input", CellChangeTimes->{{3.856181673985259*^9, 3.8561816858970737`*^9}}, CellLabel->"In[62]:=",ExpressionUUID->"88b2301c-49b9-488d-84bf-fa2d7039ae06"], Cell[BoxData[ RowBox[{ FractionBox["12", SuperscriptBox["\[Rho]", "13"]], "-", FractionBox["12", SuperscriptBox["\[Rho]", "7"]]}]], "Output", CellChangeTimes->{{3.856181686214643*^9, 3.856181696769149*^9}, 3.856259597843335*^9}, CellLabel->"Out[62]=",ExpressionUUID->"a1b93573-0698-48a9-97df-648387573ccc"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["\<\ To obtain the force vector we need to specify the generalized coordinates and \ take the vector-calculus gradient (Grad) instead\ \>", "Item", CellChangeTimes->{ 3.8561817309931183`*^9, {3.856181785232078*^9, 3.85618184490676*^9}},ExpressionUUID->"e6eccdee-fad4-4298-be90-\ 23e6f5c23bfc"], Cell[CellGroupData[{ Cell[TextData[{ "In 2D, we can specify the positions using ", Cell[BoxData[ FormBox[ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ SubscriptBox["x", "A"], ",", SubscriptBox["y", "A"]}], ")"}], ",", RowBox[{"(", RowBox[{ SubscriptBox["x", "B"], ",", SubscriptBox["y", "B"]}], ")"}]}], ")"}], TraditionalForm]], FormatType->TraditionalForm,ExpressionUUID-> "b2d63030-c216-447c-9aab-ca1a231fb892"] }], "Subitem", CellChangeTimes->{{3.8561817077092533`*^9, 3.856181715360725*^9}, { 3.8561818499305983`*^9, 3.856181871620268*^9}, {3.8561820021499043`*^9, 3.85618201096631*^9}},ExpressionUUID->"d66d090b-f744-4497-903b-\ 00ae38b21b8a"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"Block", "[", RowBox[{ RowBox[{"{", "\[IndentingNewLine]", RowBox[{ RowBox[{"posA", "=", RowBox[{"{", RowBox[{"xA", ",", "yA"}], "}"}]}], ",", RowBox[{"posB", "=", RowBox[{"{", RowBox[{"xB", ",", "yB"}], "}"}]}], ",", "\[IndentingNewLine]", "vectorConnectingAB", ",", "\[IndentingNewLine]", "distanceAB", ",", "\[IndentingNewLine]", "ljp"}], "\[IndentingNewLine]", "}"}], ",", "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{ RowBox[{"vectorConnectingAB", "=", RowBox[{"posA", "-", "posB"}]}], ";", "\[IndentingNewLine]", RowBox[{"distanceAB", "=", SqrtBox[ RowBox[{"vectorConnectingAB", ".", "vectorConnectingAB"}]]}], ";", "\[IndentingNewLine]", RowBox[{"ljp", "=", RowBox[{ "lennardJonesPotentialNonDimensional", "[", "distanceAB", "]"}]}], ";", "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{"Grad", "[", RowBox[{ RowBox[{"-", "ljp"}], ",", "posA"}], "]"}]}]}], "\[IndentingNewLine]", "]"}]], "Input", CellChangeTimes->{{3.8561819679577417`*^9, 3.8561821072792683`*^9}, { 3.856182168736187*^9, 3.856182201144374*^9}}, CellLabel-> "In[161]:=",ExpressionUUID->"91e67e27-5f05-43c9-b2ff-493411a83d76"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{ FractionBox[ RowBox[{"12", " ", RowBox[{"(", RowBox[{"xA", "-", "xB"}], ")"}]}], SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{"xA", "-", "xB"}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{"yA", "-", "yB"}], ")"}], "2"]}], ")"}], "7"]], "-", FractionBox[ RowBox[{"12", " ", RowBox[{"(", RowBox[{"xA", "-", "xB"}], ")"}]}], SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{"xA", "-", "xB"}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{"yA", "-", "yB"}], ")"}], "2"]}], ")"}], "4"]]}], ",", RowBox[{ FractionBox[ RowBox[{"12", " ", RowBox[{"(", RowBox[{"yA", "-", "yB"}], ")"}]}], SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{"xA", "-", "xB"}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{"yA", "-", "yB"}], ")"}], "2"]}], ")"}], "7"]], "-", FractionBox[ RowBox[{"12", " ", RowBox[{"(", RowBox[{"yA", "-", "yB"}], ")"}]}], SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{"xA", "-", "xB"}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{"yA", "-", "yB"}], ")"}], "2"]}], ")"}], "4"]]}]}], "}"}]], "Output", CellChangeTimes->{ 3.856182107737628*^9, {3.8561821709145308`*^9, 3.856182202068609*^9}}, CellLabel-> "Out[161]=",ExpressionUUID->"87a03dfa-44f1-4e29-bac6-b736afa64b21"] }, Open ]] }, Open ]], Cell["This can be equivalently written as ", "Subitem", CellChangeTimes->{ 3.8561817309931183`*^9, {3.856181785232078*^9, 3.85618184490676*^9}, { 3.856182515706481*^9, 3.85618252959569*^9}},ExpressionUUID->"1312dc9e-7c8a-449a-9c04-\ 5c553d61e6d9"] }, Open ]], Cell[BoxData[ RowBox[{"\t", TemplateBox[<|"boxes" -> FormBox[ RowBox[{ SubscriptBox[ OverscriptBox[ StyleBox["F", "TI"], "\[RightVector]"], StyleBox["ljp", FontSlant -> "Plain"]], "\[LongEqual]", "-", FractionBox[ RowBox[{"12", OverscriptBox["\[Rho]", "\[RightVector]"], RowBox[{"(", RowBox[{"1", "-", SuperscriptBox["\[Rho]", "6"]}], ")"}]}], SuperscriptBox["\[Rho]", "14"]]}], TraditionalForm], "errors" -> {}, "input" -> "\\vec{F}_{\\mathrm{ljp}}=-\\frac{12 \ \\vec{\\rho}\\left(1-\\rho^6\\right)}{\\rho^{14}}", "state" -> "Boxes"|>, "TeXAssistantTemplate"]}]], "DisplayFormulaNumbered", CellChangeTimes->{{3.856180779877439*^9, 3.856180782587152*^9}, 3.8561815208133163`*^9, 3.856181554815453*^9, 3.8561825407247057`*^9, 3.8561826224181023`*^9},ExpressionUUID->"4391f038-0904-4120-963e-\ 394a432e5080"], Cell[CellGroupData[{ Cell[TextData[{ StyleBox["Note:", FontWeight->"Bold"], " ", "The Lennard-Jones potential is a pair-potential, meaning we have to compute \ these for all pairs of particles" }], "Item", CellChangeTimes->{{3.8561814612115173`*^9, 3.856181473572661*^9}, { 3.856182640002742*^9, 3.856182725795327*^9}},ExpressionUUID->"6aac544b-0523-4640-99df-\ a056141cd059"], Cell[TextData[{ "Naively, this relies on computing pairwise distances and has a ", Cell[BoxData[ FormBox[ SuperscriptBox["N", "2"], TraditionalForm]], FormatType->TraditionalForm,ExpressionUUID-> "e8c6c65d-00d1-43c2-a5e8-17f8d15b55a9"], " complexity" }], "Subitem", CellChangeTimes->{{3.8561814612115173`*^9, 3.856181473572661*^9}, { 3.856182640002742*^9, 3.856182757571767*^9}},ExpressionUUID->"adc231f7-57d4-470b-bbe5-\ 937d75246e64"], Cell[CellGroupData[{ Cell["\<\ We discussed how to do this (somewhat) efficiently last lecture using \ DistanceMatrix\ \>", "Subitem", CellChangeTimes->{{3.8561814612115173`*^9, 3.856181473572661*^9}, { 3.856182640002742*^9, 3.856182782612752*^9}},ExpressionUUID->"4a9a05f5-f5fd-4272-b82f-\ 2379813a9ac6"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"With", "[", RowBox[{ RowBox[{"{", RowBox[{"pts", "=", RowBox[{"RandomReal", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{"3", ",", "2"}], "}"}]}], "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"MatrixForm", "[", RowBox[{"DistanceMatrix", "[", "pts", "]"}], "]"}]}], "\[IndentingNewLine]", "]"}]], "Input", CellChangeTimes->{{3.8561828188882513`*^9, 3.856182847880179*^9}}, CellLabel-> "In[163]:=",ExpressionUUID->"52d36528-782f-449c-917a-a0760648df53"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"0.`", "0.5579626096778874`", "1.6489225534702714`"}, {"0.5579626096778874`", "0.`", "1.9894949979136411`"}, {"1.6489225534702714`", "1.9894949979136411`", "0.`"} }, GridBoxAlignment->{"Columns" -> {{Center}}, "Rows" -> {{Baseline}}}, GridBoxSpacings->{"Columns" -> { Offset[0.27999999999999997`], { Offset[0.7]}, Offset[0.27999999999999997`]}, "Rows" -> { Offset[0.2], { Offset[0.4]}, Offset[0.2]}}], "\[NoBreak]", ")"}], Function[BoxForm`e$, MatrixForm[BoxForm`e$]]]], "Output", CellChangeTimes->{{3.856182850926497*^9, 3.8561828525167418`*^9}}, CellLabel-> "Out[163]//MatrixForm=",ExpressionUUID->"dd2fe4dc-1017-475b-9870-\ 7631fd953c2e"] }, Open ]], Cell[CellGroupData[{ Cell["\<\ Note however that the diagonal distance (naturally) returns zero which will \ blow up our force calculation.\[LineSeparator]Since we don\[CloseCurlyQuote]t \ want to compute forces for self-interactions, we will set this to the \ equilibrium distance of 1 (no-force)\ \>", "Subsubitem", CellChangeTimes->{ 3.8561828092914124`*^9, {3.856183462894356*^9, 3.85618347619053*^9}, { 3.856183755768203*^9, 3.85618375960916*^9}, {3.856187530600727*^9, 3.856187568353232*^9}, {3.8561876230182657`*^9, 3.856187649242083*^9}},ExpressionUUID->"ae669d16-1301-4eb7-8519-\ 1821f17c0ea5"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"With", "[", RowBox[{ RowBox[{"{", RowBox[{"pts", "=", RowBox[{"RandomReal", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{"3", ",", "2"}], "}"}]}], "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"MatrixForm", "[", RowBox[{ RowBox[{"DistanceMatrix", "[", "pts", "]"}], "+", RowBox[{"IdentityMatrix", "[", RowBox[{"Length", "[", "pts", "]"}], "]"}]}], "]"}]}], "\[IndentingNewLine]", "]"}]], "Input", CellChangeTimes->{{3.8561876614032087`*^9, 3.85618766617175*^9}}, CellLabel-> "In[164]:=",ExpressionUUID->"e8c63de5-4ff2-46ba-919e-1dc66282dfc4"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"1.`", "1.0198008955391744`", "0.20556576451568667`"}, {"1.0198008955391744`", "1.`", "1.0596996012782285`"}, {"0.20556576451568667`", "1.0596996012782285`", "1.`"} }, GridBoxAlignment->{"Columns" -> {{Center}}, "Rows" -> {{Baseline}}}, GridBoxSpacings->{"Columns" -> { Offset[0.27999999999999997`], { Offset[0.7]}, Offset[0.27999999999999997`]}, "Rows" -> { Offset[0.2], { Offset[0.4]}, Offset[0.2]}}], "\[NoBreak]", ")"}], Function[BoxForm`e$, MatrixForm[BoxForm`e$]]]], "Output", CellChangeTimes->{3.856187666601609*^9}, CellLabel-> "Out[164]//MatrixForm=",ExpressionUUID->"4529b28f-f353-4f5f-89e1-\ deb332a0cab3"] }, Open ]] }, Open ]] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["\<\ We can write a function to compute all the forces given a list of particles\ \>", "Item", CellChangeTimes->{{3.8561876930782003`*^9, 3.856187709704402*^9}},ExpressionUUID->"084bc1ed-1f44-4052-9fe7-\ 5e4775a8dfa2"], Cell[CellGroupData[{ Cell["By summing over the columns of the DistanceMatrix ", "Subitem", CellChangeTimes->{{3.8561876930782003`*^9, 3.8561877312584677`*^9}},ExpressionUUID->"15e18c67-d061-41d4-a94c-\ ebd148a18dd3"], Cell[BoxData[ RowBox[{ RowBox[{"lennardJonesForces", "[", RowBox[{"pts_", "?", "MatrixQ"}], "]"}], ":=", " ", RowBox[{"Block", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"differenceMat", " ", "=", " ", RowBox[{"Outer", "[", RowBox[{"Subtract", ",", "pts", ",", "pts", ",", "1"}], "]"}]}], ",", "\[IndentingNewLine]", RowBox[{"distanceMatSquared", " ", "=", RowBox[{ RowBox[{"DistanceMatrix", "[", RowBox[{"pts", ",", " ", RowBox[{ "DistanceFunction", "\[Rule]", "SquaredEuclideanDistance"}]}], "]"}], " ", "+", " ", RowBox[{"IdentityMatrix", "[", RowBox[{"Length", "[", "pts", "]"}], "]"}]}]}], ",", "\[IndentingNewLine]", "distanceMatSixth", ",", "forceMatrix"}], "\[IndentingNewLine]", "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"distanceMatSixth", "=", " ", SuperscriptBox["distanceMatSquared", "3"]}], ";", "\[IndentingNewLine]", RowBox[{"Total", "[", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"-", "12"}], " ", "differenceMat"}], ")"}], " ", RowBox[{"(", " ", RowBox[{"1", "-", "distanceMatSixth"}], ")"}]}], ")"}], "/", SuperscriptBox["distanceMatSquared", "7"]}], "]"}]}]}], "\[IndentingNewLine]", "]"}]}]], "Input", CellChangeTimes->{{3.856187740012413*^9, 3.856187765325172*^9}, { 3.85618781102969*^9, 3.856187885215147*^9}, {3.856187981176543*^9, 3.856187983631445*^9}, {3.856188609165822*^9, 3.85618861628584*^9}}, CellLabel->"In[63]:=",ExpressionUUID->"fdb716d0-c274-4332-8f4d-a0f0d696aef7"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"With", "[", RowBox[{ RowBox[{"{", RowBox[{"pts", "=", RowBox[{"RandomReal", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{"3", ",", "2"}], "}"}]}], "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"lennardJonesForces", "[", "pts", "]"}]}], "\[IndentingNewLine]", "]"}]], "Input", CellChangeTimes->{{3.8561878685428762`*^9, 3.856187870365844*^9}, 3.8561886213276157`*^9}, CellLabel-> "In[197]:=",ExpressionUUID->"dfb0f678-433d-4669-81c9-46e2149eb86e"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", "0.5645553281966532`"}], ",", "0.8534794453654933`"}], "}"}], ",", RowBox[{"{", RowBox[{"19685.849064685506`", ",", RowBox[{"-", "68027.1880682184`"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "19685.28450935731`"}], ",", "68026.33458877302`"}], "}"}]}], "}"}]], "Output", CellChangeTimes->{{3.85618787068871*^9, 3.856187889169511*^9}, 3.856187984468019*^9, 3.8561886218984127`*^9}, CellLabel-> "Out[197]=",ExpressionUUID->"e12e3387-c116-485d-bcff-08f60b3ddefd"] }, Open ]] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["We\[CloseCurlyQuote]ll start by simulating a square grid of particles", \ "Item", CellChangeTimes->{{3.8561814612115173`*^9, 3.856181473572661*^9}, { 3.85618800304454*^9, 3.856188023598609*^9}, {3.85618813960804*^9, 3.856188145632113*^9}, {3.856189343820826*^9, 3.856189345493266*^9}},ExpressionUUID->"6f227075-f254-43de-a4bf-\ 58c9fe56dc90"], Cell[BoxData[ RowBox[{"With", "[", RowBox[{ RowBox[{"{", RowBox[{"pts", "=", RowBox[{"Tuples", "[", RowBox[{ RowBox[{"Range", "[", RowBox[{ RowBox[{"-", "5"}], ",", "5"}], "]"}], ",", "2"}], "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"Graphics", "[", RowBox[{ RowBox[{ RowBox[{"Disk", "[", RowBox[{"#", ",", RowBox[{"3", "/", "8"}]}], "]"}], "&"}], "/@", "pts"}], "]"}]}], "\[IndentingNewLine]", "]"}]], "Input", CellChangeTimes->{{3.856188146242145*^9, 3.856188174744842*^9}}, CellLabel-> "In[175]:=",ExpressionUUID->"03848881-f63b-475a-91ae-2cc3fc9243ba"], Cell[CellGroupData[{ Cell["\<\ In-fact, let\[CloseCurlyQuote]s write a simple visualization function to \ color these with their total LennardJones Potential\ \>", "Subitem", CellChangeTimes->{{3.8561814612115173`*^9, 3.856181473572661*^9}, { 3.85618800304454*^9, 3.856188023598609*^9}, {3.85618813960804*^9, 3.856188145632113*^9}, {3.856188190520343*^9, 3.856188223912937*^9}, { 3.856188429251216*^9, 3.856188429253297*^9}, {3.8561894788316927`*^9, 3.856189478832488*^9}},ExpressionUUID->"20176109-576b-4f4e-a86b-\ cc7cefe8471b"], Cell[CellGroupData[{ Cell["First, we need a function to compute the total Energies", "Subsubitem", CellChangeTimes->{{3.8561814612115173`*^9, 3.856181473572661*^9}, { 3.85618800304454*^9, 3.856188023598609*^9}, {3.85618813960804*^9, 3.856188145632113*^9}, {3.856188190520343*^9, 3.856188223912937*^9}, { 3.856188429251216*^9, 3.856188429253297*^9}, {3.856189479556674*^9, 3.856189487492653*^9}},ExpressionUUID->"77cf8410-40aa-49a9-a2c8-\ 87271ada60be"], Cell[BoxData[ RowBox[{ RowBox[{"lennardJonesEnergies", "[", RowBox[{"pts_", "?", "MatrixQ"}], "]"}], ":=", " ", RowBox[{"Block", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"{", "\[IndentingNewLine]", RowBox[{ RowBox[{"distanceMatSquared", " ", "=", RowBox[{ RowBox[{"DistanceMatrix", "[", RowBox[{"pts", ",", " ", RowBox[{ "DistanceFunction", "\[Rule]", "SquaredEuclideanDistance"}]}], "]"}], " ", "+", " ", RowBox[{"IdentityMatrix", "[", RowBox[{"Length", "[", "pts", "]"}], "]"}]}]}], ",", "\[IndentingNewLine]", "distanceMatSixth"}], "\[IndentingNewLine]", "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"distanceMatSixth", "=", " ", RowBox[{"distanceMatSquared", "^", "3"}]}], ";", "\[IndentingNewLine]", RowBox[{"Total", "[", RowBox[{ FractionBox["1", "distanceMatSixth"], " ", "-", " ", FractionBox["2", SuperscriptBox["distanceMatSixth", "2"]]}], "]"}]}]}], "\[IndentingNewLine]", "]"}]}]], "Input", CellChangeTimes->{{3.8561886006070433`*^9, 3.856188643237949*^9}}, CellLabel->"In[64]:=",ExpressionUUID->"61631010-3829-493a-af98-98015cfcc873"] }, Open ]], Cell[CellGroupData[{ Cell["Then, we rescale the colors to a global min/max range", "Subsubitem", CellChangeTimes->{{3.856189492500659*^9, 3.856189505095089*^9}},ExpressionUUID->"82b44c32-8696-47f1-8f39-\ caa4bc74f945"], Cell[BoxData[{ RowBox[{ RowBox[{"cf", "=", RowBox[{"With", "[", RowBox[{ RowBox[{"{", RowBox[{"cols", "=", RowBox[{"{", RowBox[{ RowBox[{"Darker", "[", RowBox[{"XYZColor", "[", RowBox[{"1", ",", "0.2", ",", "1"}], "]"}], "]"}], ",", RowBox[{"LUVColor", "[", RowBox[{".16", ",", ".5", ",", "1"}], "]"}]}], "}"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{ "ResourceFunction", "[", "\"\\"", "]"}], "[", "cols", "]"}]}], "]"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"colorFunction", "=", RowBox[{ RowBox[{"cf", "[", RowBox[{ FractionBox["3", "2"], "+", FractionBox["#", "4"]}], "]"}], "&"}]}], " ", ";"}], "\[IndentingNewLine]"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"particleGraphic", "[", RowBox[{"pts_", "?", "MatrixQ"}], "]"}], ":=", " ", RowBox[{"Graphics", "[", "\[IndentingNewLine]", RowBox[{"MapThread", "[", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"colorFunction", "[", "#2", "]"}], ",", RowBox[{"Disk", "[", RowBox[{"#1", ",", RowBox[{"3", "/", "8"}]}], "]"}]}], "}"}], "&"}], ",", RowBox[{"{", RowBox[{"pts", ",", RowBox[{"lennardJonesEnergies", "[", "pts", "]"}]}], "}"}]}], "]"}], "\[IndentingNewLine]", "]"}]}]}], "Input", CellChangeTimes->{{3.8561887336374283`*^9, 3.856188795608499*^9}, { 3.856188870663309*^9, 3.8561889656979713`*^9}, {3.856189525214285*^9, 3.856189581295188*^9}, {3.856189678882166*^9, 3.85618970124923*^9}, { 3.856189743561981*^9, 3.8561897457997093`*^9}}, CellLabel->"In[65]:=",ExpressionUUID->"07026006-20c9-432a-bfb7-8f9e89bdbb91"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"particleGraphic", "[", RowBox[{"N", "[", RowBox[{"Tuples", "[", RowBox[{ RowBox[{"Range", "[", RowBox[{ RowBox[{"-", "5"}], ",", "5"}], "]"}], ",", "2"}], "]"}], "]"}], "]"}]], "Input", CellChangeTimes->{{3.856188978055262*^9, 3.856188979953886*^9}}, CellLabel-> "In[270]:=",ExpressionUUID->"954ef1d3-b923-442c-aa97-63fc69cf2cb1"], Cell[BoxData[ GraphicsBox[{ {RGBColor[ 0.20804529292841345`, 0.48634906463358896`, 0.38711701442905644`], DiskBox[{-5., -5.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.7619660739657892, 0.8172437511553111, 0.8800047978263059], DiskBox[{-5., -4.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.7431521781039886, 0.8088450931072656, 0.8744964515922125], DiskBox[{-5., -3.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.7408857041790898, 0.8078333228917896, 0.8738328716935783], DiskBox[{-5., -2.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.7404024899698642, 0.8076176126031257, 0.873691395882869], DiskBox[{-5., -1.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.7403040891996596, 0.8075736857935651, 0.8736625860331723], DiskBox[{-5., 0.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.7404024899698642, 0.8076176126031257, 0.873691395882869], DiskBox[{-5., 1.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.7408857041790895, 0.8078333228917894, 0.8738328716935782], DiskBox[{-5., 2.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.7431521781039883, 0.8088450931072654, 0.8744964515922123], DiskBox[{-5., 3.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.7619660739657892, 0.8172437511553111, 0.8800047978263059], DiskBox[{-5., 4.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.20804529292841337`, 0.4863490646335888, 0.3871170144290561], DiskBox[{-5., 5.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.7619660739657892, 0.8172437511553111, 0.8800047978263059], DiskBox[{-4., -5.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9889300508114878, 0.7969595781103542, 0.9709976933609992], DiskBox[{-4., -4.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9867017618134187, 0.805906364593049, 0.9694831942590941], DiskBox[{-4., -3.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9864302746332572, 0.8069964107386787, 0.969298672820946], DiskBox[{-4., -2.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9863735094932341, 0.807224328027633, 0.96926009131125], DiskBox[{-4., -1.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.986362129785399, 0.8072700186074118, 0.9692523568758553], DiskBox[{-4., 0.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9863735094932341, 0.8072243280276333, 0.96926009131125], DiskBox[{-4., 1.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9864302746332572, 0.8069964107386787, 0.969298672820946], DiskBox[{-4., 2.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9867017618134187, 0.805906364593049, 0.9694831942590941], DiskBox[{-4., 3.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9889300508114877, 0.7969595781103544, 0.9709976933609992], DiskBox[{-4., 4.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.7619660739657889, 0.817243751155311, 0.8800047978263058], DiskBox[{-4., 5.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.7431521781039886, 0.8088450931072656, 0.8744964515922125], DiskBox[{-3., -5.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9867017618134188, 0.8059063645930485, 0.9694831942590942], DiskBox[{-3., -4.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9843441202886191, 0.8153725134379238, 0.9678807782461724], DiskBox[{-3., -3.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9840426317302006, 0.8165830178929037, 0.9676758657992882], DiskBox[{-3., -2.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9839780346568724, 0.8168423811186678, 0.9676319611667984], DiskBox[{-3., -1.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9839649795722054, 0.816894798491428, 0.9676230880295974], DiskBox[{-3., 0.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9839780346568724, 0.816842381118668, 0.9676319611667984], DiskBox[{-3., 1.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9840426317302006, 0.8165830178929039, 0.9676758657992881], DiskBox[{-3., 2.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9843441202886191, 0.8153725134379238, 0.9678807782461724], DiskBox[{-3., 3.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9867017618134188, 0.8059063645930485, 0.9694831942590942], DiskBox[{-3., 4.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.7431521781039883, 0.8088450931072654, 0.8744964515922123], DiskBox[{-3., 5.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.7408857041790898, 0.8078333228917896, 0.8738328716935783], DiskBox[{-2., -5.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9864302746332572, 0.8069964107386787, 0.969298672820946], DiskBox[{-2., -4.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9840426317302006, 0.8165830178929037, 0.9676758657992882], DiskBox[{-2., -3.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9837300393724582, 0.8178381051294639, 0.9674634064434894], DiskBox[{-2., -2.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9836616061861491, 0.8181128707037533, 0.9674168945236732], DiskBox[{-2., -1.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9836476155414927, 0.8181690444364267, 0.9674073855152879], DiskBox[{-2., 0.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9836616061861491, 0.8181128707037535, 0.9674168945236731], DiskBox[{-2., 1.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9837300393724582, 0.8178381051294639, 0.9674634064434894], DiskBox[{-2., 2.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9840426317302006, 0.8165830178929039, 0.9676758657992881], DiskBox[{-2., 3.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9864302746332572, 0.8069964107386787, 0.969298672820946], DiskBox[{-2., 4.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.7408857041790895, 0.8078333228917894, 0.8738328716935782], DiskBox[{-2., 5.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.7404024899698636, 0.8076176126031254, 0.8736913958828688], DiskBox[{-1., -5.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9863735094932342, 0.8072243280276328, 0.96926009131125], DiskBox[{-1., -4.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9839780346568724, 0.8168423811186678, 0.9676319611667984], DiskBox[{-1., -3.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9836616061861491, 0.8181128707037533, 0.9674168945236732], DiskBox[{-1., -2.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9835915551167853, 0.8183941322281901, 0.9673692829787923], DiskBox[{-1., -1.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9835771277879047, 0.8184520592884241, 0.9673594771696484], DiskBox[{-1., 0.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9835915551167852, 0.8183941322281904, 0.9673692829787922], DiskBox[{-1., 1.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9836616061861491, 0.8181128707037533, 0.9674168945236732], DiskBox[{-1., 2.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9839780346568724, 0.816842381118668, 0.9676319611667984], DiskBox[{-1., 3.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9863735094932342, 0.8072243280276328, 0.96926009131125], DiskBox[{-1., 4.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.7404024899698636, 0.8076176126031254, 0.8736913958828688], DiskBox[{-1., 5.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.740304089199659, 0.8075736857935648, 0.873662586033172], DiskBox[{0., -5.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9863621297853992, 0.8072700186074113, 0.9692523568758554], DiskBox[{0., -4.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9839649795722055, 0.8168947984914278, 0.9676230880295974], DiskBox[{0., -3.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9836476155414927, 0.8181690444364267, 0.9674073855152879], DiskBox[{0., -2.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9835771277879047, 0.8184520592884241, 0.9673594771696484], DiskBox[{0., -1.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9835625760785791, 0.8185104857476524, 0.9673495868229636], DiskBox[{0., 0.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9835771277879046, 0.8184520592884243, 0.9673594771696484], DiskBox[{0., 1.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9836476155414927, 0.8181690444364267, 0.9674073855152879], DiskBox[{0., 2.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9839649795722054, 0.816894798491428, 0.9676230880295974], DiskBox[{0., 3.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9863621297853992, 0.8072700186074113, 0.9692523568758554], DiskBox[{0., 4.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.7403040891996586, 0.8075736857935647, 0.8736625860331719], DiskBox[{0., 5.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.7404024899698636, 0.8076176126031254, 0.8736913958828688], DiskBox[{1., -5.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9863735094932341, 0.8072243280276333, 0.96926009131125], DiskBox[{1., -4.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9839780346568724, 0.816842381118668, 0.9676319611667984], DiskBox[{1., -3.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9836616061861491, 0.8181128707037535, 0.9674168945236731], DiskBox[{1., -2.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9835915551167852, 0.8183941322281906, 0.9673692829787922], DiskBox[{1., -1.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9835771277879046, 0.8184520592884243, 0.9673594771696484], DiskBox[{1., 0.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9835915551167851, 0.8183941322281909, 0.9673692829787922], DiskBox[{1., 1.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9836616061861491, 0.8181128707037535, 0.9674168945236731], DiskBox[{1., 2.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9839780346568724, 0.816842381118668, 0.9676319611667984], DiskBox[{1., 3.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9863735094932341, 0.8072243280276333, 0.96926009131125], DiskBox[{1., 4.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.7404024899698636, 0.8076176126031254, 0.8736913958828688], DiskBox[{1., 5.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.7408857041790892, 0.8078333228917893, 0.8738328716935782], DiskBox[{2., -5.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9864302746332573, 0.8069964107386784, 0.9692986728209461], DiskBox[{2., -4.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9840426317302007, 0.8165830178929034, 0.9676758657992882], DiskBox[{2., -3.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9837300393724582, 0.8178381051294635, 0.9674634064434894], DiskBox[{2., -2.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9836616061861491, 0.8181128707037533, 0.9674168945236732], DiskBox[{2., -1.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9836476155414927, 0.8181690444364265, 0.967407385515288], DiskBox[{2., 0.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9836616061861491, 0.8181128707037535, 0.9674168945236731], DiskBox[{2., 1.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9837300393724582, 0.8178381051294639, 0.9674634064434894], DiskBox[{2., 2.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9840426317302006, 0.8165830178929037, 0.9676758657992882], DiskBox[{2., 3.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9864302746332572, 0.8069964107386787, 0.969298672820946], DiskBox[{2., 4.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.7408857041790888, 0.8078333228917891, 0.873832871693578], DiskBox[{2., 5.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.7431521781039876, 0.8088450931072652, 0.8744964515922121], DiskBox[{3., -5.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9867017618134188, 0.8059063645930488, 0.9694831942590942], DiskBox[{3., -4.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9843441202886191, 0.8153725134379236, 0.9678807782461724], DiskBox[{3., -3.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9840426317302006, 0.8165830178929037, 0.9676758657992882], DiskBox[{3., -2.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9839780346568724, 0.816842381118668, 0.9676319611667984], DiskBox[{3., -1.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9839649795722054, 0.816894798491428, 0.9676230880295974], DiskBox[{3., 0.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9839780346568723, 0.8168423811186684, 0.9676319611667983], DiskBox[{3., 1.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9840426317302006, 0.8165830178929037, 0.9676758657992882], DiskBox[{3., 2.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9843441202886191, 0.8153725134379238, 0.9678807782461724], DiskBox[{3., 3.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9867017618134188, 0.8059063645930488, 0.9694831942590942], DiskBox[{3., 4.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.7431521781039873, 0.8088450931072649, 0.8744964515922121], DiskBox[{3., 5.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.7619660739657875, 0.8172437511553103, 0.8800047978263055], DiskBox[{4., -5.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9889300508114877, 0.7969595781103544, 0.9709976933609992], DiskBox[{4., -4.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9867017618134188, 0.8059063645930488, 0.9694831942590942], DiskBox[{4., -3.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9864302746332572, 0.8069964107386787, 0.969298672820946], DiskBox[{4., -2.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9863735094932341, 0.807224328027633, 0.96926009131125], DiskBox[{4., -1.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.986362129785399, 0.8072700186074115, 0.9692523568758554], DiskBox[{4., 0.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.986373509493234, 0.8072243280276336, 0.9692600913112499], DiskBox[{4., 1.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9864302746332572, 0.8069964107386787, 0.969298672820946], DiskBox[{4., 2.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9867017618134188, 0.8059063645930488, 0.9694831942590942], DiskBox[{4., 3.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.9889300508114877, 0.7969595781103544, 0.9709976933609992], DiskBox[{4., 4.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.7619660739657872, 0.8172437511553102, 0.8800047978263054], DiskBox[{4., 5.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.20804529292841312`, 0.48634906463358824`, 0.3871170144290551], DiskBox[{5., -5.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.7619660739657875, 0.8172437511553103, 0.8800047978263055], DiskBox[{5., -4.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.7431521781039873, 0.8088450931072649, 0.8744964515922121], DiskBox[{5., -3.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.7408857041790888, 0.8078333228917891, 0.873832871693578], DiskBox[{5., -2.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.7404024899698629, 0.807617612603125, 0.8736913958828686], DiskBox[{5., -1.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.740304089199658, 0.8075736857935644, 0.8736625860331718], DiskBox[{5., 0.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.7404024899698626, 0.8076176126031249, 0.8736913958828686], DiskBox[{5., 1.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.7408857041790888, 0.8078333228917891, 0.873832871693578], DiskBox[{5., 2.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.7431521781039873, 0.8088450931072649, 0.8744964515922121], DiskBox[{5., 3.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.7619660739657872, 0.8172437511553102, 0.8800047978263054], DiskBox[{5., 4.}, NCache[Rational[3, 8], 0.375]]}, {RGBColor[0.20804529292841306`, 0.48634906463358807`, 0.3871170144290548], DiskBox[{5., 5.}, NCache[Rational[3, 8], 0.375]]}}]], "Output", CellChangeTimes->{3.85618898024105*^9, 3.8561895590391483`*^9, 3.856189703478405*^9, 3.8561897500098658`*^9}, CellLabel-> "Out[270]=",ExpressionUUID->"b0fd819b-0675-4bcc-8673-25b1e9304d18"] }, Open ]] }, Open ]] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["\<\ We are now ready to solve Hamilton\[CloseCurlyQuote]s equations directly \ using `NDSolveValue`\ \>", "Item", CellChangeTimes->{{3.8561814612115173`*^9, 3.856181473572661*^9}, { 3.85618800304454*^9, 3.856188023598609*^9}, {3.856188139124433*^9, 3.8561881391259613`*^9}},ExpressionUUID->"cbcfbff9-cba5-4db4-bbd2-\ 7877e635d5e2"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"{", RowBox[{"ljSquareLatticePositions", ",", "ljSquareLatticeMomenta"}], "}"}], " ", "=", RowBox[{"With", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"initialPositions", "=", RowBox[{"N", "[", RowBox[{"Tuples", "[", RowBox[{ RowBox[{"Range", "[", RowBox[{ RowBox[{"-", "5"}], ",", "5"}], "]"}], ",", "2"}], "]"}], "]"}]}], ",", RowBox[{"initialMomenta", "=", RowBox[{"ConstantArray", "[", RowBox[{"0.", ",", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"2", " ", "5"}], "+", "1"}], ")"}], "^", "2"}], ",", "2"}], "}"}]}], "]"}]}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"NDSolveValue", "[", RowBox[{ RowBox[{"{", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{ RowBox[{"p", "'"}], "[", "t", "]"}], "\[Equal]", RowBox[{"lennardJonesForces", "[", RowBox[{"q", "[", "t", "]"}], "]"}]}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"q", "'"}], "[", "t", "]"}], " ", "\[Equal]", " ", RowBox[{"p", "[", "t", "]"}]}], ",", " ", "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{ RowBox[{"p", "[", "0", "]"}], " ", "==", " ", "initialMomenta"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"q", "[", "0", "]"}], "\[Equal]", " ", "initialPositions"}]}], "\[IndentingNewLine]", "}"}], ",", RowBox[{"{", RowBox[{"q", ",", "p"}], "}"}], ",", RowBox[{"{", RowBox[{"t", ",", "0", ",", "20"}], "}"}], ",", "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{"Method", "\[Rule]", RowBox[{"{", RowBox[{"\"\\"", ",", RowBox[{"\"\\"", "\[Rule]", "2"}], ",", RowBox[{"\"\\"", "\[Rule]", RowBox[{"{", RowBox[{"q", "[", "t", "]"}], "}"}]}]}], "}"}]}], ",", "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{"StartingStepSize", "\[Rule]", RowBox[{"1", "/", "50"}]}], ",", RowBox[{"MaxSteps", "\[Rule]", "Infinity"}]}], "]"}]}], "\[IndentingNewLine]", "]"}]}], ";"}]], "Input", CellChangeTimes->{{3.856188120770039*^9, 3.856188135392847*^9}, { 3.856189014554989*^9, 3.8561891413013783`*^9}, {3.8561891855033617`*^9, 3.8561892073655367`*^9}, {3.856189255526366*^9, 3.8561893183993883`*^9}, { 3.856189370431978*^9, 3.856189397391917*^9}, {3.856189461594269*^9, 3.856189469575952*^9}}, CellLabel->"In[68]:=",ExpressionUUID->"c65e625e-aea9-41e6-91e4-5f2e0685320a"] }, Open ]], Cell[CellGroupData[{ Cell["The solution exhibits a mechanical instability", "Item", CellChangeTimes->{{3.8561814612115173`*^9, 3.856181473572661*^9}, { 3.85618800304454*^9, 3.856188023598609*^9}, {3.856188139124433*^9, 3.8561881391259613`*^9}, {3.8561898644964848`*^9, 3.856189913975809*^9}},ExpressionUUID->"9b915241-30bd-45bf-bdb9-\ 668c8f6dd91b"], Cell["\<\ highlighting that the square lattice is not stable for a 2D material\ \>", "Subitem", CellChangeTimes->{{3.8561814612115173`*^9, 3.856181473572661*^9}, { 3.85618800304454*^9, 3.856188023598609*^9}, {3.856188139124433*^9, 3.8561881391259613`*^9}, {3.8561898644964848`*^9, 3.85618992667242*^9}},ExpressionUUID->"adcba3c1-9124-4f29-a778-\ b03b38e1e204"], Cell[CellGroupData[{ Cell["quickly changing to a hexagonal lattice instead", "Subitem", CellChangeTimes->{{3.8561814612115173`*^9, 3.856181473572661*^9}, { 3.85618800304454*^9, 3.856188023598609*^9}, {3.856188139124433*^9, 3.8561881391259613`*^9}, {3.8561898644964848`*^9, 3.856189946851581*^9}},ExpressionUUID->"8b577ed6-ef97-4f2e-8ecc-\ 1272fb015ca3"], Cell[BoxData[ RowBox[{"Manipulate", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"Show", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"particleGraphic", "[", RowBox[{"ljSquareLatticePositions", "[", "t", "]"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"PlotRange", "\[Rule]", " ", RowBox[{"7", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", "1"}], "}"}]}], "}"}]}]}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"t", ",", "0", ",", "\"\\""}], "}"}], ",", "0", ",", "20"}], "}"}], ",", RowBox[{"Paneled", "\[Rule]", "False"}]}], "\[IndentingNewLine]", "]"}]], "Input", CellChangeTimes->{{3.856189427021106*^9, 3.856189429302031*^9}, { 3.8561897797951803`*^9, 3.856189789282928*^9}}, CellLabel-> "In[273]:=",ExpressionUUID->"a37a6fdc-2f58-4281-8d9c-b2c6f34ce34a"] }, Open ]] }, Open ]] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["Velocity Verlet Integration", "Section", CellChangeTimes->{{3.856190222332902*^9, 3.856190228781249*^9}},ExpressionUUID->"57c1ba16-bdf6-4da6-abb0-\ 64447108288c"], Cell["\<\ The Symplectic Integration scheme above is elegant and (fairly) fast\ \>", "Item", CellChangeTimes->{{3.856190483057098*^9, 3.856190523704027*^9}},ExpressionUUID->"9c1025a8-32e2-45a6-8a61-\ 2689c2ce887f"], Cell[CellGroupData[{ Cell["\<\ Importantly, since it conserves total energy - some of the potential energy \ from the LJ interaction is transferred to kinetic energy\ \>", "Item", CellChangeTimes->{{3.856190483057098*^9, 3.85619057773552*^9}},ExpressionUUID->"9e13e2be-b88c-42e1-9a8f-\ c74465c6c4a9"], Cell["\<\ Our system is adiabatic, and thus we can relate the increased kinetic energy \ with a \[OpenCurlyDoubleQuote]temperature\[CloseCurlyDoubleQuote]\ \>", "Subitem", CellChangeTimes->{{3.856190483057098*^9, 3.856190635207015*^9}},ExpressionUUID->"9d94227a-2894-45e6-93b0-\ 5d29a2f4816a"] }, Open ]], Cell[CellGroupData[{ Cell["\<\ If we wanted to \[OpenCurlyDoubleQuote]cool\[CloseCurlyDoubleQuote] the \ system down - we could add a damping factor to the \ particles\[CloseCurlyQuote] velocities\ \>", "Item", CellChangeTimes->{{3.856190483057098*^9, 3.856190695808625*^9}},ExpressionUUID->"2657b595-2ef5-470d-b991-\ f00d30fb8f30"], Cell["\<\ To do this - we will develop a general integration scheme based on solving \ Newton\[CloseCurlyQuote]s equations instead\ \>", "Subitem", CellChangeTimes->{{3.856190483057098*^9, 3.8561907371407757`*^9}},ExpressionUUID->"5029c8ae-4b7c-4253-b8b1-\ 833c2310be18"] }, Open ]], Cell[CellGroupData[{ Cell["Integration Schemes", "Subsection", CellChangeTimes->{{3.8561907939898148`*^9, 3.856190811950225*^9}},ExpressionUUID->"c4a3b863-827e-4571-a0a7-\ 03e2c12ee00a"], Cell["\<\ Remember, in Newtonian mechanics methods, we wish to solve, for all \ particles, the equation\ \>", "Item", CellChangeTimes->{{3.856191002049836*^9, 3.856191070288937*^9}},ExpressionUUID->"47f773ab-be54-4a0f-88ae-\ e55637a6e214"], Cell[BoxData[ RowBox[{"\t", FormBox[ TemplateBox[<|"boxes" -> FormBox[ RowBox[{ StyleBox["m", "TI"], FractionBox[ SuperscriptBox[ StyleBox["d", "TI"], "2"], RowBox[{ StyleBox["d", "TI"], SuperscriptBox[ StyleBox["t", "TI"], "2"]}]], OverscriptBox[ StyleBox["x", "TI"], "\[RightVector]"], RowBox[{"(", StyleBox["t", "TI"], ")"}], "\[LongEqual]", OverscriptBox[ StyleBox["F", "TI"], "\[RightVector]"]}], TraditionalForm], "errors" -> {}, "input" -> "m \\frac{d^2}{dt^2} \\vec{x}(t) = \\vec{F}", "state" -> "Boxes"|>, "TeXAssistantTemplate"], TraditionalForm]}]], "DisplayFormulaNumbered", CellChangeTimes->{{3.856180779877439*^9, 3.856180782587152*^9}},ExpressionUUID->"8a731e97-9f9d-45f9-b2dd-\ 9ab5fd471f29"], Cell[CellGroupData[{ Cell["\<\ To do this numerically, we introduce a discretization of time using a Taylor \ series\ \>", "Item", CellChangeTimes->{{3.856191075822892*^9, 3.856191109345212*^9}, { 3.8561911912054367`*^9, 3.856191191206511*^9}, {3.8561917400717297`*^9, 3.856191745526548*^9}},ExpressionUUID->"b2f95502-f13b-4514-b656-\ 1a2cc0faacfb"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"Series", "[", RowBox[{ RowBox[{"x", "[", "t", "]"}], ",", RowBox[{"{", RowBox[{"t", ",", "t0", ",", "2"}], "}"}]}], "]"}]], "Input", CellChangeTimes->{{3.856191753369705*^9, 3.856191798457884*^9}}, CellLabel-> "In[278]:=",ExpressionUUID->"dc9dac90-fe89-4195-a7b8-aa3c80518222"], Cell[BoxData[ InterpretationBox[ RowBox[{ RowBox[{"x", "[", "t0", "]"}], "+", RowBox[{ RowBox[{ SuperscriptBox["x", "\[Prime]", MultilineFunction->None], "[", "t0", "]"}], " ", RowBox[{"(", RowBox[{"t", "-", "t0"}], ")"}]}], "+", RowBox[{ FractionBox["1", "2"], " ", RowBox[{ SuperscriptBox["x", "\[Prime]\[Prime]", MultilineFunction->None], "[", "t0", "]"}], " ", SuperscriptBox[ RowBox[{"(", RowBox[{"t", "-", "t0"}], ")"}], "2"]}], "+", InterpretationBox[ SuperscriptBox[ RowBox[{"O", "[", RowBox[{"t", "-", "t0"}], "]"}], "3"], SeriesData[$CellContext`t, $CellContext`t0, {}, 0, 3, 1], Editable->False]}], SeriesData[$CellContext`t, $CellContext`t0, { $CellContext`x[$CellContext`t0], Derivative[1][$CellContext`x][$CellContext`t0], Rational[1, 2] Derivative[2][$CellContext`x][$CellContext`t0]}, 0, 3, 1], Editable->False]], "Output", CellChangeTimes->{{3.8561917855259647`*^9, 3.856191798789529*^9}}, CellLabel-> "Out[278]=",ExpressionUUID->"fcd53634-632b-45cb-82eb-0112d1ef8f81"] }, Open ]] }, Open ]], Cell[TextData[{ "Defining our time-step ", Cell[BoxData[ FormBox[ TemplateBox[<|"boxes" -> FormBox[ RowBox[{"\[CapitalDelta]", StyleBox["t", "TI"], "\[LongEqual]", StyleBox["t", "TI"], "-", SubscriptBox[ StyleBox["t", "TI"], "0"]}], TraditionalForm], "errors" -> {}, "input" -> "\\Delta t = t-t_0", "state" -> "Boxes"|>, "TeXAssistantTemplate"], TraditionalForm]],ExpressionUUID-> "8562cf21-612d-4e7d-a422-fa9368475d04"], ", we obtain the ", StyleBox["Euler Scheme", FontSlant->"Italic"] }], "Item", CellChangeTimes->{{3.856191837336886*^9, 3.856191881066244*^9}},ExpressionUUID->"a983b157-a14c-4e7b-b7c8-\ 721bf1e8a30e"], Cell[BoxData[ RowBox[{"\t", TemplateBox[<|"boxes" -> FormBox[ RowBox[{ StyleBox["x", "TI"], RowBox[{"(", RowBox[{ StyleBox["t", "TI"], "+", "\[CapitalDelta]", StyleBox["t", "TI"]}], ")"}], "\[LongEqual]", StyleBox["x", "TI"], RowBox[{"(", StyleBox["t", "TI"], ")"}], "+", StyleBox["v", "TI"], RowBox[{"(", StyleBox["t", "TI"], ")"}], "\[CapitalDelta]", StyleBox["t", "TI"], "+", FractionBox["1", "2"], StyleBox["a", "TI"], RowBox[{"(", StyleBox["t", "TI"], ")"}], "\[CapitalDelta]", SuperscriptBox[ StyleBox["t", "TI"], "2"], "+", StyleBox["O", "TI"], RowBox[{"(", RowBox[{"\[CapitalDelta]", SuperscriptBox[ StyleBox["t", "TI"], "3"]}], ")"}]}], TraditionalForm], "errors" -> {}, "input" -> "x(t+\\Delta t) = x(t) + v(t) \\Delta t + \\frac{1}{2} a(t) \\Delta t^2 + \ \\mathcal{O}(\\Delta t^3)", "state" -> "Boxes"|>, "TeXAssistantTemplate"]}]], "DisplayFormulaNumbered", CellChangeTimes->{{3.856180779877439*^9, 3.856180782587152*^9}, 3.856191953301955*^9},ExpressionUUID->"eab02e1e-adcf-4109-bd82-\ 2bad57daa71f"], Cell[CellGroupData[{ Cell["This turns out to not be very numerically-stable", "Subitem", CellChangeTimes->{{3.856192033271585*^9, 3.856192045548174*^9}, { 3.856192095544245*^9, 3.85619209554592*^9}},ExpressionUUID->"bebf4c08-23b3-4fb3-809c-\ f789399c9ba4"], Cell["Let\[CloseCurlyQuote]s look at a simple 1D example - the harmonic \ oscillator", "Subsubitem", CellChangeTimes->{{3.856192033271585*^9, 3.856192045548174*^9}, { 3.8561920960771017`*^9, 3.8561921055163717`*^9}, {3.856192343686262*^9, 3.8561923570235443`*^9}},ExpressionUUID->"950fdd32-c389-4a1e-bcbe-\ bc2163d99a3a"] }, Open ]], Cell[BoxData[ RowBox[{"\t", RowBox[{ FormBox[ TemplateBox[<|"boxes" -> FormBox[ RowBox[{ StyleBox["V", "TI"], "\[LongEqual]", FractionBox["1", "2"], StyleBox["k", "TI"], SuperscriptBox[ StyleBox["x", "TI"], "2"]}], TraditionalForm], "errors" -> {}, "input" -> "V = \\frac{1}{2}k x^2", "state" -> "Boxes"|>, "TeXAssistantTemplate"], TraditionalForm], "\[LineSeparator]", "\t", TemplateBox[<|"boxes" -> FormBox[ RowBox[{ StyleBox["F", "TI"], "\[LongEqual]", "-", FractionBox[ RowBox[{ StyleBox["d", "TI"], StyleBox["V", "TI"]}], RowBox[{ StyleBox["d", "TI"], StyleBox["x", "TI"]}]], "\[LongEqual]", "-", StyleBox["k", "TI"], StyleBox["x", "TI"]}], TraditionalForm], "errors" -> {}, "input" -> "F = -\\frac{d V}{d x} = - k x", "state" -> "Boxes"|>, "TeXAssistantTemplate"]}]}]], "DisplayFormulaNumbered", CellChangeTimes->{{3.856180779877439*^9, 3.856180782587152*^9}, { 3.85619240656732*^9, 3.856192407329286*^9}},ExpressionUUID->"1cecabc9-6a1c-44eb-a1a1-\ ecd9b2dc9852"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"simpleHarmonicOscillatorEulersMethod", "[", RowBox[{ RowBox[{"{", RowBox[{"k_", ",", "m_"}], "}"}], ",", RowBox[{"\[CapitalDelta]t_", ":", "0.01"}]}], "]"}], "[", RowBox[{"{", RowBox[{"position_", ",", "velocity_"}], "}"}], "]"}], ":=", RowBox[{"Block", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"force", "=", RowBox[{ RowBox[{"-", " ", "k"}], " ", RowBox[{"position", "/", "m"}]}]}], ",", "velocityNew", ",", "positionNew"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"positionNew", "=", RowBox[{"position", " ", "+", " ", RowBox[{"velocity", " ", "\[CapitalDelta]t"}]}]}], " ", RowBox[{"(*", RowBox[{ RowBox[{"+", FractionBox["1", "2"]}], "force", " ", SuperscriptBox["\[CapitalDelta]t", "2"]}], "*)"}], ";", "\[IndentingNewLine]", RowBox[{"velocityNew", "=", RowBox[{"velocity", " ", "+", RowBox[{"force", " ", "\[CapitalDelta]t"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"positionNew", ",", "velocityNew"}], "}"}]}]}], "\[IndentingNewLine]", "]"}]}]], "Input", CellChangeTimes->{{3.856192436817746*^9, 3.856192459742423*^9}, { 3.856192502537817*^9, 3.856192602219026*^9}, {3.856192664210609*^9, 3.856192703917207*^9}, {3.856192736057658*^9, 3.856192808797451*^9}, { 3.856192935322536*^9, 3.856192975900441*^9}, 3.8561931141961813`*^9, { 3.856193312886211*^9, 3.856193362491541*^9}}, CellLabel-> "In[324]:=",ExpressionUUID->"c37b57a7-8a2b-4e1e-a34e-ecabb239ca64"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"With", "[", RowBox[{ RowBox[{"{", "\[IndentingNewLine]", RowBox[{ RowBox[{"positions", "=", RowBox[{ RowBox[{"NestList", "[", RowBox[{ RowBox[{"simpleHarmonicOscillatorEulersMethod", "[", RowBox[{"{", RowBox[{"1", ",", "1"}], "}"}], "]"}], ",", RowBox[{"{", RowBox[{"1", ",", "0"}], "}"}], ",", "1000"}], "]"}], "[", RowBox[{"[", RowBox[{"All", ",", "1"}], "]"}], "]"}]}], ",", "\[IndentingNewLine]", RowBox[{"times", "=", RowBox[{ RowBox[{"Range", "[", RowBox[{"0", ",", "1000"}], "]"}], "0.01"}]}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"Show", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"ListLinePlot", "[", RowBox[{ RowBox[{"Thread", "[", RowBox[{"{", RowBox[{"times", ",", "positions"}], "}"}], "]"}], ",", RowBox[{"Frame", "\[Rule]", "True"}], ",", RowBox[{"FrameStyle", "\[Rule]", RowBox[{"Directive", "[", RowBox[{"Black", ",", "Thick"}], "]"}]}], ",", RowBox[{"PlotStyle", "\[Rule]", "Blue"}], ",", RowBox[{"BaseStyle", "\[Rule]", "18"}], ",", RowBox[{"ImageSize", "\[Rule]", "500"}], ",", RowBox[{"FrameLabel", "->", RowBox[{"{", RowBox[{"\"\\"", ",", "\"\\""}], "}"}]}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Plot", "[", RowBox[{ RowBox[{"Cos", "[", "t", "]"}], ",", RowBox[{"{", RowBox[{"t", ",", "0", ",", "10"}], "}"}], ",", RowBox[{"PlotStyle", "\[Rule]", RowBox[{"Directive", "[", RowBox[{"Blue", ",", "Dashed"}], "]"}]}]}], "]"}]}], "\[IndentingNewLine]", "]"}]}], "\[IndentingNewLine]", "]"}]], "Input", CellChangeTimes->{{3.856193365921938*^9, 3.856193407316486*^9}}, CellLabel-> "In[326]:=",ExpressionUUID->"796ac422-0415-403f-a8b8-93bbd441e378"], Cell[BoxData[ GraphicsBox[{{{}, {{}, {}, {RGBColor[0, 0, 1], PointSize[0.006944444444444445], AbsoluteThickness[ 1.6], LineBox[CompressedData[" 1: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 fkHUVD7n/wC7eVgk "]]}}, {{}, {}}}, {{{}, {}, TagBox[ {RGBColor[0, 0, 1], AbsoluteThickness[1.6], Opacity[1.], Dashing[{Small, Small}], LineBox[CompressedData[" 1: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 HsD/A1QMfro= "]]}, Annotation[#, "Charting`Private`Tag$1117278#1"]& ]}, {}}}, AspectRatio->NCache[GoldenRatio^(-1), 0.6180339887498948], Axes->{True, True}, AxesLabel->{None, None}, AxesOrigin->{0, 0}, BaseStyle->18, DisplayFunction->Identity, Frame->{{True, True}, {True, True}}, FrameLabel->{{ FormBox["\"Position\"", TraditionalForm], None}, { FormBox["\"Time\"", TraditionalForm], None}}, FrameStyle->Directive[ GrayLevel[0], Thickness[Large]], FrameTicks->{{Automatic, Automatic}, {Automatic, Automatic}}, GridLines->{None, None}, GridLinesStyle->Directive[ GrayLevel[0.5, 0.4]], ImageSize->500, Method->{ "OptimizePlotMarkers" -> True, "OptimizePlotMarkers" -> True, "CoordinatesToolOptions" -> {"DisplayFunction" -> ({ Identity[ Part[#, 1]], Identity[ Part[#, 2]]}& ), "CopiedValueFunction" -> ({ Identity[ Part[#, 1]], Identity[ Part[#, 2]]}& )}}, PlotRange->{{0, 10.}, {-1.0482641437751479`, 1.0319256441051186`}}, PlotRangeClipping->True, PlotRangePadding->{{ Scaled[0.02], Scaled[0.02]}, { Scaled[0.05], Scaled[0.05]}}, Ticks->{Automatic, Automatic}]], "Output", CellChangeTimes->{{3.85619332634746*^9, 3.856193337700801*^9}, { 3.8561934006284933`*^9, 3.856193407648258*^9}}, CellLabel-> "Out[326]=",ExpressionUUID->"2dc5cbfb-38eb-406f-9d9d-6a2cd148b091"] }, Open ]], Cell["\<\ The solution quickly diverges from the true solution (dashed)\ \>", "Subitem", CellChangeTimes->{{3.856192033271585*^9, 3.856192045548174*^9}, { 3.856192095544245*^9, 3.85619209554592*^9}, {3.856193418586136*^9, 3.85619345488297*^9}},ExpressionUUID->"b41d057b-1863-4209-9dea-\ a4ab221b6178"], Cell[CellGroupData[{ Cell["The Verlet integration schemes achieves better accuracy", "Item", CellChangeTimes->{{3.856191075822892*^9, 3.856191109345212*^9}, { 3.8561911912054367`*^9, 3.856191191206511*^9}, {3.8561917400717297`*^9, 3.856191745526548*^9}, {3.8561934705395117`*^9, 3.8561935145394793`*^9}, { 3.8561937564456587`*^9, 3.856193756716269*^9}},ExpressionUUID->"d4d9cec8-d49f-4900-9d6e-\ 4264fa63be6f"], Cell["\<\ by taking a Taylor expansion in the forward and backwards direction\ \>", "Subitem", CellChangeTimes->{{3.856191075822892*^9, 3.856191109345212*^9}, { 3.8561911912054367`*^9, 3.856191191206511*^9}, {3.8561917400717297`*^9, 3.856191745526548*^9}, {3.8561934705395117`*^9, 3.8561935145394793`*^9}, 3.8561937564456587`*^9},ExpressionUUID->"f98aada2-e230-47b3-aae3-\ e27b822b41b7"] }, Open ]], Cell[BoxData[ RowBox[{"\t", RowBox[{ TemplateBox[<|"boxes" -> FormBox[ RowBox[{ StyleBox["x", "TI"], RowBox[{"(", RowBox[{ StyleBox["t", "TI"], "+", "\[CapitalDelta]", StyleBox["t", "TI"]}], ")"}], "\[LongEqual]", StyleBox["x", "TI"], RowBox[{"(", StyleBox["t", "TI"], ")"}], "+", StyleBox["v", "TI"], RowBox[{"(", StyleBox["t", "TI"], ")"}], "\[CapitalDelta]", StyleBox["t", "TI"], "+", FractionBox["1", "2"], StyleBox["a", "TI"], RowBox[{"(", StyleBox["t", "TI"], ")"}], "\[CapitalDelta]", SuperscriptBox[ StyleBox["t", "TI"], "2"], "+", FractionBox[ RowBox[{ SuperscriptBox["\[PartialD]", "3"], StyleBox["x", "TI"]}], RowBox[{"3!", "\[PartialD]", SuperscriptBox[ StyleBox["t", "TI"], "3"]}]], "\[CapitalDelta]", SuperscriptBox[ StyleBox["t", "TI"], "3"], "+", StyleBox["O", "TI"], RowBox[{"(", RowBox[{"\[CapitalDelta]", SuperscriptBox[ StyleBox["t", "TI"], "4"]}], ")"}]}], TraditionalForm], "errors" -> {}, "input" -> "x(t+\\Delta t) = x(t) + v(t) \\Delta t + \\frac{1}{2} a(t) \\Delta t^2 \ + \\frac{\\partial^3 x}{3! \\partial t^3} \\Delta t^3 + \\mathcal{O}(\\Delta \ t^4)", "state" -> "Boxes"|>, "TeXAssistantTemplate"], "\[LineSeparator]", "\t", TemplateBox[<|"boxes" -> FormBox[ RowBox[{ StyleBox["x", "TI"], RowBox[{"(", RowBox[{ StyleBox["t", "TI"], "-", "\[CapitalDelta]", StyleBox["t", "TI"]}], ")"}], "\[LongEqual]", StyleBox["x", "TI"], RowBox[{"(", StyleBox["t", "TI"], ")"}], "-", StyleBox["v", "TI"], RowBox[{"(", StyleBox["t", "TI"], ")"}], "\[CapitalDelta]", StyleBox["t", "TI"], "+", FractionBox["1", "2"], StyleBox["a", "TI"], RowBox[{"(", StyleBox["t", "TI"], ")"}], "\[CapitalDelta]", SuperscriptBox[ StyleBox["t", "TI"], "2"], "-", FractionBox[ RowBox[{ SuperscriptBox["\[PartialD]", "3"], StyleBox["x", "TI"]}], RowBox[{"3!", "\[PartialD]", SuperscriptBox[ StyleBox["t", "TI"], "3"]}]], "\[CapitalDelta]", SuperscriptBox[ StyleBox["t", "TI"], "3"], "+", StyleBox["O", "TI"], RowBox[{"(", RowBox[{"\[CapitalDelta]", SuperscriptBox[ StyleBox["t", "TI"], "4"]}], ")"}]}], TraditionalForm], "errors" -> {}, "input" -> "x(t-\\Delta t) = x(t) - v(t) \\Delta t + \\frac{1}{2} a(t) \\Delta t^2 \ - \\frac{\\partial^3 x}{3! \\partial t^3} \\Delta t^3 + \\mathcal{O}(\\Delta \ t^4)", "state" -> "Boxes"|>, "TeXAssistantTemplate"]}]}]], "DisplayFormulaNumbered", CellChangeTimes->{{3.856180779877439*^9, 3.856180782587152*^9}, 3.856191953301955*^9, {3.856193633927456*^9, 3.856193678614882*^9}},ExpressionUUID->"67cb2eea-36ca-4ea2-ab88-\ 3dd96ffd7e84"], Cell["Summing the two together we obtain", "Subitem", CellChangeTimes->{{3.8561937491580963`*^9, 3.856193760286357*^9}},ExpressionUUID->"ab7d0715-3773-476f-9020-\ 0527f13a1af8"], Cell[BoxData[ RowBox[{"\t", TemplateBox[<|"boxes" -> FormBox[ RowBox[{ StyleBox["x", "TI"], RowBox[{"(", RowBox[{ StyleBox["t", "TI"], "+", "\[CapitalDelta]", StyleBox["t", "TI"]}], ")"}], "\[LongEqual]", "2", StyleBox["x", "TI"], RowBox[{"(", StyleBox["t", "TI"], ")"}], "-", StyleBox["x", "TI"], RowBox[{"(", RowBox[{ StyleBox["t", "TI"], "-", "\[CapitalDelta]", StyleBox["t", "TI"]}], ")"}], "+", StyleBox["a", "TI"], RowBox[{"(", StyleBox["t", "TI"], ")"}], "\[CapitalDelta]", SuperscriptBox[ StyleBox["t", "TI"], "2"], "+", StyleBox["O", "TI"], RowBox[{"(", RowBox[{"\[CapitalDelta]", SuperscriptBox[ StyleBox["t", "TI"], "4"]}], ")"}]}], TraditionalForm], "errors" -> {}, "input" -> "x(t+\\Delta t) = 2x(t) - x(t-\\Delta t) + a(t) \\Delta t^2 + \ \\mathcal{O}(\\Delta t^4)", "state" -> "Boxes"|>, "TeXAssistantTemplate"]}]], "DisplayFormulaNumbered", CellChangeTimes->{{3.856180779877439*^9, 3.856180782587152*^9}, 3.856191953301955*^9, {3.856193633927456*^9, 3.856193678614882*^9}, 3.856193829876062*^9},ExpressionUUID->"bc717a53-0f86-4dd2-907d-\ f6608566958e"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"simpleHarmonicOscillatorVerletMethod", "[", RowBox[{ RowBox[{"{", RowBox[{"k_", ",", "m_"}], "}"}], ",", RowBox[{"\[CapitalDelta]t_", ":", "0.01"}]}], "]"}], "[", RowBox[{"{", RowBox[{"position_", ",", "previousPosition_"}], "}"}], "]"}], ":=", RowBox[{"Block", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"force", "=", RowBox[{ RowBox[{"-", " ", "k"}], " ", RowBox[{"position", "/", "m"}]}]}], ",", "positionNew"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"positionNew", "=", RowBox[{ RowBox[{"2", "position"}], " ", "-", "previousPosition", " ", "+", RowBox[{"force", " ", SuperscriptBox["\[CapitalDelta]t", "2"]}]}]}], ";", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"positionNew", ",", "position"}], "}"}]}]}], "\[IndentingNewLine]", "]"}]}]], "Input", CellChangeTimes->{{3.856192436817746*^9, 3.856192459742423*^9}, { 3.856192502537817*^9, 3.856192602219026*^9}, {3.856192664210609*^9, 3.856192703917207*^9}, {3.856192736057658*^9, 3.856192808797451*^9}, { 3.856192935322536*^9, 3.856192975900441*^9}, 3.8561931141961813`*^9, { 3.856193312886211*^9, 3.856193362491541*^9}, {3.8561938544015093`*^9, 3.8561938551769943`*^9}, {3.856193889809702*^9, 3.8561939508175364`*^9}}, CellLabel-> "In[329]:=",ExpressionUUID->"69018004-a423-4628-b89a-281f2364ed79"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"With", "[", RowBox[{ RowBox[{"{", "\[IndentingNewLine]", RowBox[{ RowBox[{"positions", "=", RowBox[{"Prepend", "[", RowBox[{ RowBox[{ RowBox[{"NestList", "[", RowBox[{ RowBox[{"simpleHarmonicOscillatorVerletMethod", "[", RowBox[{"{", RowBox[{"1", ",", "1"}], "}"}], "]"}], ",", RowBox[{"{", RowBox[{"0.99995", ",", "1"}], "}"}], ",", "999"}], "]"}], "[", RowBox[{"[", RowBox[{"All", ",", "1"}], "]"}], "]"}], ",", "1"}], "]"}]}], ",", "\[IndentingNewLine]", RowBox[{"times", "=", RowBox[{ RowBox[{"Range", "[", RowBox[{"0", ",", "1000"}], "]"}], "0.01"}]}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"Show", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"ListLinePlot", "[", RowBox[{ RowBox[{"Thread", "[", RowBox[{"{", RowBox[{"times", ",", "positions"}], "}"}], "]"}], ",", RowBox[{"Frame", "\[Rule]", "True"}], ",", RowBox[{"FrameStyle", "\[Rule]", RowBox[{"Directive", "[", RowBox[{"Black", ",", "Thick"}], "]"}]}], ",", RowBox[{"PlotStyle", "\[Rule]", "Blue"}], ",", RowBox[{"BaseStyle", "\[Rule]", "18"}], ",", RowBox[{"ImageSize", "\[Rule]", "500"}], ",", RowBox[{"FrameLabel", "->", RowBox[{"{", RowBox[{"\"\\"", ",", "\"\\""}], "}"}]}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Plot", "[", RowBox[{ RowBox[{"Cos", "[", "t", "]"}], ",", RowBox[{"{", RowBox[{"t", ",", "0", ",", "10"}], "}"}], ",", RowBox[{"PlotStyle", "\[Rule]", RowBox[{"Directive", "[", RowBox[{"Blue", ",", "Dashed"}], "]"}]}]}], "]"}]}], "\[IndentingNewLine]", "]"}]}], "\[IndentingNewLine]", "]"}]], "Input", CellChangeTimes->{3.856194250619203*^9}, CellLabel-> "In[344]:=",ExpressionUUID->"231a5870-a71f-4341-920c-c4a3b2a13e7d"], Cell[BoxData[ GraphicsBox[{{{}, {{}, {}, {RGBColor[0, 0, 1], PointSize[0.006944444444444445], AbsoluteThickness[ 1.6], LineBox[CompressedData[" 1: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 6R8+W9mR+n/o0mlX "]]}}, {{}, {}}}, {{{}, {}, TagBox[ {RGBColor[0, 0, 1], AbsoluteThickness[1.6], Opacity[1.], Dashing[{Small, Small}], LineBox[CompressedData[" 1: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 HsD/A1QMfro= "]]}, Annotation[#, "Charting`Private`Tag$1118132#1"]& ]}, {}}}, AspectRatio->NCache[GoldenRatio^(-1), 0.6180339887498948], Axes->{True, True}, AxesLabel->{None, None}, AxesOrigin->{0, 0}, BaseStyle->18, DisplayFunction->Identity, Frame->{{True, True}, {True, True}}, FrameLabel->{{ FormBox["\"Position\"", TraditionalForm], None}, { FormBox["\"Time\"", TraditionalForm], None}}, FrameStyle->Directive[ GrayLevel[0], Thickness[Large]], FrameTicks->{{Automatic, Automatic}, {Automatic, Automatic}}, GridLines->{None, None}, GridLinesStyle->Directive[ GrayLevel[0.5, 0.4]], ImageSize->500, Method->{ "OptimizePlotMarkers" -> True, "OptimizePlotMarkers" -> True, "CoordinatesToolOptions" -> {"DisplayFunction" -> ({ Identity[ Part[#, 1]], Identity[ Part[#, 2]]}& ), "CopiedValueFunction" -> ({ Identity[ Part[#, 1]], Identity[ Part[#, 2]]}& )}}, PlotRange->{{0, 10.}, {-0.9999987524793559, 1.}}, PlotRangeClipping->True, PlotRangePadding->{{ Scaled[0.02], Scaled[0.02]}, { Scaled[0.05], Scaled[0.05]}}, Ticks->{Automatic, Automatic}]], "Output", CellChangeTimes->{3.856194251323552*^9}, CellLabel-> "Out[344]=",ExpressionUUID->"9352091a-52ad-4bf9-9894-0526d65aa610"] }, Open ]], Cell[CellGroupData[{ Cell["The solution is visibly much better!", "Subitem", CellChangeTimes->{{3.8561937491580963`*^9, 3.856193760286357*^9}, { 3.85619426377951*^9, 3.8561943014619303`*^9}},ExpressionUUID->"4e3974c4-051e-43ae-81e0-\ a9a314dc0877"], Cell[CellGroupData[{ Cell["Let\[CloseCurlyQuote]s plot the relative error of the solution \ instead", "Subsubitem", CellChangeTimes->{{3.8561937491580963`*^9, 3.856193760286357*^9}, { 3.85619426377951*^9, 3.8561943123398933`*^9}},ExpressionUUID->"5d2463c5-c296-440d-8bd2-\ 3636eaf39adb"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"With", "[", RowBox[{ RowBox[{"{", "\[IndentingNewLine]", RowBox[{ RowBox[{"positions", "=", RowBox[{"Prepend", "[", RowBox[{ RowBox[{ RowBox[{"NestList", "[", RowBox[{ RowBox[{"simpleHarmonicOscillatorVerletMethod", "[", RowBox[{"{", RowBox[{"1", ",", "1"}], "}"}], "]"}], ",", RowBox[{"{", RowBox[{"0.99995", ",", "1"}], "}"}], ",", "999"}], "]"}], "[", RowBox[{"[", RowBox[{"All", ",", "1"}], "]"}], "]"}], ",", "1"}], "]"}]}], ",", "\[IndentingNewLine]", RowBox[{"truePositions", "=", RowBox[{"Cos", "/@", RowBox[{"Subdivide", "[", RowBox[{"0", ",", "10", ",", "1000"}], "]"}]}]}], ",", "\[IndentingNewLine]", RowBox[{"times", "=", RowBox[{ RowBox[{"Range", "[", RowBox[{"0", ",", "1000"}], "]"}], "0.01"}]}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"ListLinePlot", "[", RowBox[{ RowBox[{"Thread", "[", RowBox[{"{", RowBox[{"times", ",", RowBox[{ FractionBox[ RowBox[{"positions", "-", "truePositions"}], "truePositions"], " ", "100"}]}], "}"}], "]"}], ",", RowBox[{"Frame", "\[Rule]", "True"}], ",", RowBox[{"FrameStyle", "\[Rule]", RowBox[{"Directive", "[", RowBox[{"Black", ",", "Thick"}], "]"}]}], ",", RowBox[{"PlotStyle", "\[Rule]", "Red"}], ",", RowBox[{"BaseStyle", "\[Rule]", "18"}], ",", RowBox[{"ImageSize", "\[Rule]", "500"}], ",", RowBox[{"FrameLabel", "->", RowBox[{"{", RowBox[{"\"\\"", ",", "\"\\""}], "}"}]}]}], "]"}]}], "\[IndentingNewLine]", "]"}]], "Input", CellChangeTimes->{{3.856193365921938*^9, 3.856193407316486*^9}, 3.856193960747772*^9, {3.856194023331958*^9, 3.856194050579595*^9}, { 3.856194125302994*^9, 3.8561941263566113`*^9}, {3.856194176407826*^9, 3.8561942309902697`*^9}, {3.856194330640852*^9, 3.8561943376133833`*^9}, { 3.856194369199182*^9, 3.856194434758218*^9}}, CellLabel-> "In[357]:=",ExpressionUUID->"b9a6513f-2e94-4e1f-b13e-607951f8c592"], Cell[BoxData[ GraphicsBox[{{}, {{}, {}, {RGBColor[1, 0, 0], PointSize[0.006944444444444445], AbsoluteThickness[ 1.6], LineBox[CompressedData[" 1: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 HHNNdO8Wa/koLjuf29AuiGP+Bm/108k= "]], LineBox[CompressedData[" 1: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 2qqwwyIbWhs3Uv8HYDwUVA== "]], LineBox[CompressedData[" 1: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 "]], LineBox[CompressedData[" 1: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 UJjwf0GVIcc= "]], LineBox[{{1.5790795940074713`, -0.010665664464368594`}, { 1.5793245998779102`, 0.01121378674856076}}], LineBox[{{4.717508426167259, -0.010665664464368594`}, {4.717711035622924, 0.01121378674856076}}], LineBox[{{7.855937232218841, -0.010665664464368594`}, {7.856097444682972, 0.01121378674856076}}]}}, {{}, {}}}, AspectRatio->NCache[GoldenRatio^(-1), 0.6180339887498948], Axes->{True, True}, AxesLabel->{None, None}, AxesOrigin->{0, 0}, BaseStyle->18, DisplayFunction->Identity, Frame->{{True, True}, {True, True}}, FrameLabel->{{ FormBox["\"Error in Position (%)\"", TraditionalForm], None}, { FormBox["\"Time\"", TraditionalForm], None}}, FrameStyle->Directive[ GrayLevel[0], Thickness[Large]], FrameTicks->{{Automatic, Automatic}, {Automatic, Automatic}}, GridLines->{None, None}, GridLinesStyle->Directive[ GrayLevel[0.5, 0.4]], ImageSize->500, Method->{ "OptimizePlotMarkers" -> True, "OptimizePlotMarkers" -> True, "CoordinatesToolOptions" -> {"DisplayFunction" -> ({ Identity[ Part[#, 1]], Identity[ Part[#, 2]]}& ), "CopiedValueFunction" -> ({ Identity[ Part[#, 1]], Identity[ Part[#, 2]]}& )}}, PlotRange->{{0, 10.}, {-0.010665664464368594`, 0.01121378674856076}}, PlotRangeClipping->True, PlotRangePadding->{{ Scaled[0.02], Scaled[0.02]}, { Scaled[0.05], Scaled[0.05]}}, Ticks->{Automatic, Automatic}]], "Output", CellChangeTimes->{ 3.856194051199638*^9, 3.85619412696793*^9, 3.856194177171557*^9, 3.856194231681657*^9, {3.856194331332178*^9, 3.856194337950201*^9}, { 3.856194375769423*^9, 3.8561944351431103`*^9}}, CellLabel-> "Out[357]=",ExpressionUUID->"34009efb-6f99-40dd-9016-c77918d60f2c"] }, Open ]] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["Note that the algorithm is not \[OpenCurlyDoubleQuote]self-starting\ \[CloseCurlyDoubleQuote] however", "Item", CellChangeTimes->{{3.856191075822892*^9, 3.856191109345212*^9}, { 3.8561911912054367`*^9, 3.856191191206511*^9}, {3.8561917400717297`*^9, 3.856191745526548*^9}, {3.8561934705395117`*^9, 3.8561935145394793`*^9}, { 3.8561937564456587`*^9, 3.856193756716269*^9}, {3.856194464131626*^9, 3.8561944814191837`*^9}},ExpressionUUID->"57fe7619-42d3-490e-ac8c-\ 201047ac6c84"], Cell[TextData[{ "I.e. we required knowledge of ", Cell[BoxData[ FormBox[ TemplateBox[<|"boxes" -> FormBox[ RowBox[{ StyleBox["x", "TI"], "(", RowBox[{ StyleBox["t", "TI"], "-", "\[CapitalDelta]", StyleBox["t", "TI"]}], ")"}], TraditionalForm], "errors" -> {}, "input" -> "x(t-\\Delta t)", "state" -> "Boxes"|>, "TeXAssistantTemplate"], TraditionalForm]],ExpressionUUID-> "72418f4d-1790-4c03-9b34-7bb551e51622"] }], "Subitem", CellChangeTimes->{{3.856191075822892*^9, 3.856191109345212*^9}, { 3.8561911912054367`*^9, 3.856191191206511*^9}, {3.8561917400717297`*^9, 3.856191745526548*^9}, {3.8561934705395117`*^9, 3.8561935145394793`*^9}, { 3.8561937564456587`*^9, 3.856193756716269*^9}, {3.856194464131626*^9, 3.856194502061563*^9}},ExpressionUUID->"5f218cd2-72fb-4002-a218-\ 680f0e93ca22"] }, Open ]], Cell[CellGroupData[{ Cell["\<\ And also we don\[CloseCurlyQuote]t have direct access to high-accuracy \ velocities\ \>", "Item", CellChangeTimes->{{3.856191075822892*^9, 3.856191109345212*^9}, { 3.8561911912054367`*^9, 3.856191191206511*^9}, {3.8561917400717297`*^9, 3.856191745526548*^9}, {3.8561934705395117`*^9, 3.8561935145394793`*^9}, { 3.8561937564456587`*^9, 3.856193756716269*^9}, {3.856194464131626*^9, 3.8561945232197733`*^9}},ExpressionUUID->"324c02ad-2eb5-45fd-b82d-\ 0d8a914fc6f6"], Cell["which was our goal, to be able to adjust temperature", "Subitem", CellChangeTimes->{{3.856191075822892*^9, 3.856191109345212*^9}, { 3.8561911912054367`*^9, 3.856191191206511*^9}, {3.8561917400717297`*^9, 3.856191745526548*^9}, {3.8561934705395117`*^9, 3.8561935145394793`*^9}, { 3.8561937564456587`*^9, 3.856193756716269*^9}, {3.856194464131626*^9, 3.85619453303776*^9}},ExpressionUUID->"816e87d9-7f61-45a0-a10b-\ 404fb13d473a"] }, Open ]], Cell["This brings us to the velocity-Verlet algorithm", "Item", CellChangeTimes->{{3.856194535948743*^9, 3.8561945475656548`*^9}},ExpressionUUID->"5e2f682a-17da-459a-91c4-\ e92fac9d4142"], Cell[BoxData[ RowBox[{"\t", RowBox[{ TemplateBox[<|"boxes" -> FormBox[ RowBox[{ StyleBox["x", "TI"], RowBox[{"(", RowBox[{ StyleBox["t", "TI"], "+", "\[CapitalDelta]", StyleBox["t", "TI"]}], ")"}], "\[LongEqual]", StyleBox["x", "TI"], RowBox[{"(", StyleBox["t", "TI"], ")"}], "+", StyleBox["v", "TI"], RowBox[{"(", StyleBox["t", "TI"], ")"}], "\[CapitalDelta]", StyleBox["t", "TI"], "+", FractionBox["1", "2"], StyleBox["a", "TI"], RowBox[{"(", StyleBox["t", "TI"], ")"}], "\[CapitalDelta]", SuperscriptBox[ StyleBox["t", "TI"], "2"]}], TraditionalForm], "errors" -> {}, "input" -> "x(t+\\Delta t) = x(t) + v(t) \\Delta t + \\frac{1}{2} a(t) \\Delta t^2", "state" -> "Boxes"|>, "TeXAssistantTemplate"], "\[LineSeparator]", "\t", TemplateBox[<|"boxes" -> FormBox[ RowBox[{ StyleBox["v", "TI"], RowBox[{"(", RowBox[{ StyleBox["t", "TI"], "+", "\[CapitalDelta]", StyleBox["t", "TI"]}], ")"}], "\[LongEqual]", StyleBox["v", "TI"], RowBox[{"(", StyleBox["t", "TI"], ")"}], "+", FractionBox[ RowBox[{ StyleBox["a", "TI"], RowBox[{"(", StyleBox["t", "TI"], ")"}], "+", StyleBox["a", "TI"], RowBox[{"(", RowBox[{ StyleBox["t", "TI"], "+", "\[CapitalDelta]", StyleBox["t", "TI"]}], ")"}]}], "2"], "\[CapitalDelta]", StyleBox["t", "TI"]}], TraditionalForm], "errors" -> {}, "input" -> "v(t+\\Delta t) = v(t) + \\frac{a(t) + a(t + \\Delta t)}{2} \\Delta t", "state" -> "Boxes"|>, "TeXAssistantTemplate"]}]}]], "DisplayFormulaNumbered", CellChangeTimes->{{3.856180779877439*^9, 3.856180782587152*^9}, 3.856191953301955*^9, {3.856193633927456*^9, 3.856193678614882*^9}, { 3.856194642621314*^9, 3.856194646082768*^9}},ExpressionUUID->"c2ec6818-e0d3-40d0-9c7e-\ f0cd27e4b477"], Cell[CellGroupData[{ Cell["\<\ This is more simply given by considering intermediate \ \[OpenCurlyDoubleQuote]half-steps\[CloseCurlyDoubleQuote]\ \>", "Item", CellChangeTimes->{{3.856194535948743*^9, 3.8561945475656548`*^9}, { 3.856194670934555*^9, 3.856194693055327*^9}, {3.8561947768079233`*^9, 3.856194802760339*^9}, {3.856195009352172*^9, 3.856195009353574*^9}},ExpressionUUID->"e0fa1c62-c67d-48ef-8b8e-\ a74c475ac521"], Cell[TextData[{ "Step 1: Calculate new position\[LineSeparator]", Cell[BoxData[ TemplateBox[<|"boxes" -> FormBox[ RowBox[{ StyleBox["x", "TI"], RowBox[{"(", RowBox[{ StyleBox["t", "TI"], "+", "\[CapitalDelta]", StyleBox["t", "TI"]}], ")"}], "\[LongEqual]", StyleBox["x", "TI"], RowBox[{"(", StyleBox["t", "TI"], ")"}], "+", StyleBox["v", "TI"], RowBox[{"(", StyleBox["t", "TI"], ")"}], "\[CapitalDelta]", StyleBox["t", "TI"], "+", FractionBox["1", "2"], StyleBox["a", "TI"], RowBox[{"(", StyleBox["t", "TI"], ")"}], "\[CapitalDelta]", SuperscriptBox[ StyleBox["t", "TI"], "2"]}], TraditionalForm], "errors" -> {}, "input" -> "x(t+\\Delta t) = x(t) + v(t) \\Delta t + \\frac{1}{2} a(t) \\Delta t^2", "state" -> "Boxes"|>, "TeXAssistantTemplate"]], "Input",ExpressionUUID-> "97b8f4e1-f0bb-4359-9e8b-69ad35d7c1a7"] }], "Subitem", CellChangeTimes->{{3.856194535948743*^9, 3.8561945475656548`*^9}, { 3.856194670934555*^9, 3.856194693055327*^9}, {3.8561947768079233`*^9, 3.856194802760339*^9}, {3.856195010177848*^9, 3.8561950244181643`*^9}},ExpressionUUID->"d10ca76f-baf3-4b86-af42-\ 5ad8e6f40672"], Cell[TextData[{ "Step 2: Calculate intermediate velocity\[LineSeparator]", Cell[BoxData[ TemplateBox[<|"boxes" -> FormBox[ RowBox[{ StyleBox["v", "TI"], RowBox[{"(", RowBox[{ StyleBox["t", "TI"], "+", FractionBox["1", "2"], "\[CapitalDelta]", StyleBox["t", "TI"]}], ")"}], "\[LongEqual]", StyleBox["v", "TI"], RowBox[{"(", StyleBox["t", "TI"], ")"}], "+", FractionBox["1", "2"], StyleBox["a", "TI"], RowBox[{"(", StyleBox["t", "TI"], ")"}], "\[CapitalDelta]", StyleBox["t", "TI"]}], TraditionalForm], "errors" -> {}, "input" -> "v(t+\\frac{1}{2}\\Delta t) = v(t) + \\frac{1}{2}a(t)\\Delta t", "state" -> "Boxes"|>, "TeXAssistantTemplate"]], "Input",ExpressionUUID-> "e2f87114-9f74-48f6-bf11-087ff67bc846"] }], "Subitem", CellChangeTimes->{{3.856195026808153*^9, 3.8561950472776318`*^9}},ExpressionUUID->"734af88d-7b98-42cb-adfa-\ 168e8bc7ffc6"], Cell[TextData[{ "Step 3: Calculate new acceleration, ", Cell[BoxData[ FormBox[ TemplateBox[<|"boxes" -> FormBox[ RowBox[{ StyleBox["a", "TI"], "(", RowBox[{ StyleBox["t", "TI"], "+", "\[CapitalDelta]", StyleBox["t", "TI"]}], ")"}], TraditionalForm], "errors" -> {}, "input" -> "a(t + \\Delta t)", "state" -> "Boxes"|>, "TeXAssistantTemplate"], TraditionalForm]],ExpressionUUID-> "6be9a1f4-39f8-42df-b704-905c5721f549"], " using ", Cell[BoxData[ FormBox[ TemplateBox[<|"boxes" -> FormBox[ RowBox[{ StyleBox["x", "TI"], "(", RowBox[{ StyleBox["t", "TI"], "+", "\[CapitalDelta]", StyleBox["t", "TI"]}], ")"}], TraditionalForm], "errors" -> {}, "input" -> "x(t + \\Delta t)", "state" -> "Boxes"|>, "TeXAssistantTemplate"], TraditionalForm]],ExpressionUUID-> "ee12b46d-795b-4498-a924-11b424c282e5"] }], "Subitem", CellChangeTimes->{{3.856195026808153*^9, 3.8561950840774803`*^9}},ExpressionUUID->"e7d3cead-c941-4605-8040-\ c1de39639d21"], Cell[CellGroupData[{ Cell[TextData[{ "Step 4: Calculate new velocity\[LineSeparator]", Cell[BoxData[ TemplateBox[<|"boxes" -> FormBox[ RowBox[{ StyleBox["v", "TI"], RowBox[{"(", RowBox[{ StyleBox["t", "TI"], "+", "\[CapitalDelta]", StyleBox["t", "TI"]}], ")"}], "\[LongEqual]", StyleBox["v", "TI"], RowBox[{"(", RowBox[{ StyleBox["t", "TI"], "+", FractionBox["1", "2"], "\[CapitalDelta]", StyleBox["t", "TI"]}], ")"}], "+", FractionBox["1", "2"], StyleBox["a", "TI"], RowBox[{"(", RowBox[{ StyleBox["t", "TI"], "+", "\[CapitalDelta]", StyleBox["t", "TI"]}], ")"}], "\[CapitalDelta]", StyleBox["t", "TI"]}], TraditionalForm], "errors" -> {}, "input" -> "v(t+\\Delta t) = v(t+\\frac{1}{2} \\Delta t) + \\frac{1}{2}a(t+\\Delta \ t)\\Delta t", "state" -> "Boxes"|>, "TeXAssistantTemplate"]], "Input",ExpressionUUID-> "d8ef09b6-488e-465a-9fad-e208a3152bb5"] }], "Subitem", CellChangeTimes->{{3.856195026808153*^9, 3.856195098681094*^9}},ExpressionUUID->"930c362c-d1ef-43a3-91f0-\ cb8b01bfa1cb"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"simpleHarmonicOscillatorVelocityVerletMethod", "[", RowBox[{ RowBox[{"{", RowBox[{"k_", ",", "m_"}], "}"}], ",", RowBox[{"\[CapitalDelta]t_", ":", "0.01"}]}], "]"}], "[", RowBox[{"{", RowBox[{"position_", ",", "velocity_"}], "}"}], "]"}], ":=", RowBox[{"Block", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"force", "=", RowBox[{ RowBox[{"-", " ", "k"}], " ", RowBox[{"position", "/", "m"}]}]}], ",", "positionNew", ",", "velocityIntermediate", ",", "forceNew"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"positionNew", "=", RowBox[{"position", " ", "+", RowBox[{"velocity", " ", "\[CapitalDelta]t"}], " ", "+", RowBox[{"force", " ", RowBox[{ SuperscriptBox["\[CapitalDelta]t", "2"], "/", "2"}]}]}]}], ";", "\[IndentingNewLine]", RowBox[{"velocityIntermediate", "=", RowBox[{"velocity", "+", RowBox[{"force", " ", RowBox[{"\[CapitalDelta]t", "/", "2"}]}]}]}], ";", "\[IndentingNewLine]", RowBox[{"forceNew", "=", RowBox[{ RowBox[{"-", "k"}], " ", RowBox[{"positionNew", "/", "m"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"positionNew", ",", RowBox[{"velocityIntermediate", "+", RowBox[{"forceNew", " ", RowBox[{"\[CapitalDelta]t", "/", "2"}]}]}]}], "}"}]}]}], "\[IndentingNewLine]", "]"}]}]], "Input", CellChangeTimes->{{3.856195112660005*^9, 3.8561951704453506`*^9}, { 3.856195238693181*^9, 3.856195345380096*^9}, 3.85619539663671*^9, { 3.8561954367524776`*^9, 3.8561954370416527`*^9}}, CellLabel-> "In[361]:=",ExpressionUUID->"2ce67ed9-02df-4ec6-af94-030fc72df438"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"With", "[", RowBox[{ RowBox[{"{", "\[IndentingNewLine]", RowBox[{ RowBox[{"positions", "=", RowBox[{ RowBox[{"NestList", "[", RowBox[{ RowBox[{"simpleHarmonicOscillatorVelocityVerletMethod", "[", RowBox[{"{", RowBox[{"1", ",", "1"}], "}"}], "]"}], ",", RowBox[{"{", RowBox[{"1", ",", "0"}], "}"}], ",", "1000"}], "]"}], "[", RowBox[{"[", RowBox[{"All", ",", "1"}], "]"}], "]"}]}], ",", "\[IndentingNewLine]", RowBox[{"times", "=", RowBox[{ RowBox[{"Range", "[", RowBox[{"0", ",", "1000"}], "]"}], "0.01"}]}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"Show", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"ListLinePlot", "[", RowBox[{ RowBox[{"Thread", "[", RowBox[{"{", RowBox[{"times", ",", "positions"}], "}"}], "]"}], ",", RowBox[{"Frame", "\[Rule]", "True"}], ",", RowBox[{"FrameStyle", "\[Rule]", RowBox[{"Directive", "[", RowBox[{"Black", ",", "Thick"}], "]"}]}], ",", RowBox[{"PlotStyle", "\[Rule]", "Blue"}], ",", RowBox[{"BaseStyle", "\[Rule]", "18"}], ",", RowBox[{"ImageSize", "\[Rule]", "500"}], ",", RowBox[{"FrameLabel", "->", RowBox[{"{", RowBox[{"\"\\"", ",", "\"\\""}], "}"}]}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Plot", "[", RowBox[{ RowBox[{"Cos", "[", "t", "]"}], ",", RowBox[{"{", RowBox[{"t", ",", "0", ",", "10"}], "}"}], ",", RowBox[{"PlotStyle", "\[Rule]", RowBox[{"Directive", "[", RowBox[{"Blue", ",", "Dashed"}], "]"}]}]}], "]"}]}], "\[IndentingNewLine]", "]"}]}], "\[IndentingNewLine]", "]"}]], "Input", CellChangeTimes->{{3.85619535783038*^9, 3.856195374538602*^9}}, CellLabel-> "In[362]:=",ExpressionUUID->"6c65320e-324a-4f9c-9d10-4475b1299752"], Cell[BoxData[ GraphicsBox[{{{}, {{}, {}, {RGBColor[0, 0, 1], PointSize[0.006944444444444445], AbsoluteThickness[ 1.6], LineBox[CompressedData[" 1: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 WpP/D1evbNc= "]]}}, {{}, {}}}, {{{}, {}, TagBox[ {RGBColor[0, 0, 1], AbsoluteThickness[1.6], Opacity[1.], Dashing[{Small, Small}], LineBox[CompressedData[" 1:eJwVmXc8le8bx23HlsI5yDhHlDSlInVflJRoImUUQirqSyJUSkOZoaJESUOk gaLUbSQNM0JG9jzjJnvl9/zOH+e83q9n3Nf9+Xyu+xlHw/nkXlcBPj4+D+rr /7/3zzuLrDoStmnL3P8/BH2uUbfYr+6BLo2lM8convvyKURd/SxKnXUKa6BY OubtK/GGSyhw7xrDpxTfL4hQE1a/jhrtjFc4U6xLjkTOuUeh62lZx8QobpFO +jdTH4OWjBRyEv8RpPlEbO3U9C0kvfBljgrFJzb6eo6rJSCV5d9LQmcJyqpt Sx3ZnIhiD3gtbJ8haOq4RfOQezJqmBT4uIjiB/zN18dNHyK9m9OpNtMEbSm/ uWisPgXd+Fb/y2eKoL54s8IRj1Q0/zRr97lJgsKPzNoPTz9GM6FnFvhMEFQz fTRuUC0NGcdWnmONEXSmVHUlef0cuaw30fwzQpBSbO0P7uYMFPHkluKVYYKc dUCQ7f4SLa7b2HdnkCCB6YDKkaBXaMrzcKkgIai2zXrhiOlrFBQwN2bHJcg/ QyLvb/0btFutdkd1P0HmMT0ifx9kobqU9T68XoJU/AuthjyykfIpPzLeTVDB Zr9BMp2Dgpju7Mp2gkSbOrS5anloTIsjH9dAUEPBR19OXx76szedtqCOoOdP 4ovZr9+jhRu22gXXELTTe+ehgc35qGLGV0u1gqDbYu9v97pjFBOw6rJXEUHZ fubePvQCdE+El7oHE5Q4sI4xHFSATPgj9TTyCfKqknP/a1qInoc4pVzJIUgu 8avAUH0RunrnIN+RpwRNS79NO2VUjHpG2789f0RQ18VHuwcfFCO7MFu5P8kE vXU/n0Q8PqNP/eeWiMcTdFBvjSFvugRZCa7J8b9G0MPvyf+x1b4hk+7piNfO BI3E5+i0hn9Dv/PWbbFxIGir+4/On5Pf0EN1MeOu/QRxBMet39d8R37Spqr5 FgSt37jT8Pq1MtQp9vi3nT5BVS9nBLRJJdK4M7rwkABVLxJzlFpehTbcaze8 O81DG7TiDK8dqUJGb1d3fxrhociRtOGA6iqUdWN49HMPD625+cvVOb0aOe+m 3fn8jYcufNc1X3WoBnXGOl25HcZDz16/00q/VYNi9fQHT4Tw0M94E8FFZTXI fuYCWhbIQ5rutvl0g1rk0eH96PgxHvoueHk53/xf6BffAt02Mx5S2NgkV/ml Diluf1vx4h8XZb683nRieSMKTlsnIWHPRQNyA+HmTo3o5Lumsc49XKR9xnzT 4rhGtOvcGofnZlz0wEjiYedkI4os7c6aW81FMd/C3Q6WNCG9yjkop3HRmc6o ITP7FuRQPfRx8hUHJUv8CJln2oboH2Q/fRtmo00bA+2DHduQbzHH5VAvGzV7 LdUnfm1oYDLQo7ORjeg/w3rKnreh/QfNs94WstHNeIvtobLtaI/yKo2wSDYK WVQhPdfUjoTvPL/6V5ON3FF1Ase7E9GzeLljWwYQX8rY+6awTuS+buOb12sH ULyQSvP31E7EMt1QaL94AH395qaaVteJbtUt3BwiMYAWW82kuBp2UbqfL5Or 7kd9R7Uz/vB3o+8z8iWbD/SjYzHnPlVF96AXSmffLXPsQ17dSzqzM/vRL89t QyZGPajN8Tet8Fs/Sv+z/3Lp4h60ryF0eXlXPwpZlm5iJN+D1v/oPdutNIA8 rATOjnG7keDrx7IK1wZQi4WOzcukbhQfpLHJ7xAbDXZEbEGzXahwPiPBQJaL 1IulP2582YnENS5rt64fRPP8M44JD7ShSNkfOg8PDyPdHS1PWNfqkHOTFRYs G0OVK36ZFicVof9KLjuf1J5C94+iSg+rV/j1Kcl99O2zaCz6+uE/J6rww8Dj Ayv384FOeOElcYUWfCl5Zs8Ihx8mnuebBf/pxLtX5v63dJgfvjwZ2TY+1IlV C31uOk/yQ8N6A3AW7sLvOwaqqoQFoC9SqmO+bhf+u+j3rheqAtA1LySjy78L O2fkWLrtFoCvTUPGq2W7sXGe1/aGLAE4ytLVXq7fg6XNdTxk3guA7cGcEimz Htzc2B26tUAAyLmuoVbbHuw/Y/81u0wA6iv1v9oF9eBXaIfZzW4BcGk8Y/yq qAerf9E2NVcUBLbagsXFFr2Yr6YN8gMEIbj2R9g2mz58uf/Tw4CLgrB/ecqj Yvc+LMZ3X8AgVBCYD/+6LDvbh+WWHficc0sQ7jVFZZTd68OLrlWbvXwlCJ9r 9okYtPVh8w1FO1N6BOH50Jftn1z7ceyjR/ahe4Xggf4VxhKXAUx/f/Hj1gNC cMg+YoOz9wBOrDqkKnxYCFiTb2JCLw7gJ7PKbRc9hWBHiFVOYvIAzt0f5xIY KgT1F6sftjcO4GaJK8e8PglBjpn4cK0lG2uddvO30hGGHpKgpryIg5cZtu5L XikMX75sC5RcxcFr+GxXDKwVhpVnJd04RhxsEr6958JmYSAhAT/8rDjYMVXX Kt1eGM797RXPv8TBt2v/rhCIovZ39tYeaeLg+3ePS1jeEgYzuYdKP3o4OPVw V8+de8JgaX1aN3qIg99wft1f9kwYnFtP3OwS4eIKoTyJA4XC0G9V/SxnJRcL 61/ofTksDNY++3yGg7lYcnq8aGpSGFLV4ren3eBiucJTSaZ8ItBip/7bIo6L 1S2drZskRSAhSFfS4SkXG7maFotoicDsiJDqwzIuPn1LItnBVgTixu+OvJnP w12jd2wkPoqAQKp1T30sD6cY6/m0FIvAcGyLTMM9Hj4UURH18rsIqM+6TRY+ 4uFGTeFv+xpEwLswbHRvFg9X7/PekDgsAu7moqNHq3n402sL9WU6oiAactLh sBjBQbO9RnMrReH20q0TkzIEG2wPOVC9ThRoy7P+BSkQnN2WF+NrKgqa1//b gFgEP5fRFv50WBRYhvwjWRsIvuPJP7Dzjih0PI2IPXiUYKu8RBGNJFGokvte E+pJsJzwetZwqigEJtzd8MCb4MhEL/s7b0Qh6oOhz40ggi//aKpoLReFH5ir ahFFsImiH/t1rSicMytfVxxL8JyzHO1yE1WfuJ89K57ggKltxov7ReHlaHB+ 0gOCTy15m3VKiAaPHwdeuviK4OW+e6pMJGjgFG2aCtkEsws4nAVyNHjxZMP7 vncEu9mytPLUaPBsq3Lu8CeCNVM/mYRp0WDBqp67NkUEd5ADhxyW0cBU8oF7 SgnBDtei4/k3UNs77XJGfhCsVLM0p8aYBorBJaumKwhuUC2tfryNBgJW3MiB amr+b2fFzW1o8O39XEdIPcHm3cfOxfxHA03m7fcP2gneeo6VscWfBnufRvt0 dlLzlW9uHDtPgwoH1i+ZHoINTS3X24XToKRdLHzRAMFrW4TdpWJpkCp/8Y80 h+DVvp9u4QQa3NteX9POJVjn8Yph1lMaXKmcn7JliGCtjX0adS9ocPfPXf/a vwQzfz3YHZpNgywPE67lCMGqngcuGH6gxucXmHs1Ss1HWC6TU0iD7q62jNkx ghXuf29O+kqD04Jjo3oTlH/6IRJ7Kik9Ztx/75skWLp8g6FgHQ281TxtHKYI lnAdOZrTTIMgrx0ndk8TTJvNuOPeSdWfaKu0bIZgoVuuXxgDNJCRnTo0TDHf MtXRH4M06GpLNXo0S/DM5zrW+XEaTDS2vDT6R/CEfdTelf9ocPGcQR6meGTE 7GKHkBgET9vZ6s4RPBjO9ypOQgwEjCbDL1HM0cz7s1VODGwaa22KKO7L/09q ki4GBlpFOWyKu6x0jNLVxICwUtP+UdzG6TjmoCUGh8M9V09T3Hz5XoLMMjFQ Klff3U5xg4rV10I9MdhHqxJ4TXFttuS4j6EYNC+4b36M4iqLkkVaxmJAO5+n LUVxWdc5qwYzMQgLcbubQNX7NWhtyI2dYmDOGE2RofjzAvLayFoMNHtLjE9S 8y3IeNrGsxODV9u2++VSeuRvOSzz0FkM+i3mNrMp/XKb6Zv2eYhBY47fM1GK s09XnxA+JQb6E3seS1F6Z6SafPc4JwZ3bCaO1Y0T/MxoekL5shjo/tqjn0D5 l1qbpV1xQwxWDGnfM6X8TRRadGV1vBiY2M3baEflIT6xJasrSQz+ha0I/DxI cNya2x23H4uBvGqbrSIhOOKIKEy/EQPplPfjZ9kE35jBXi/yxOB364kP1/sJ vhrnf/9QgRiIyRexQnoJPv+5f6q4XAzGLeX6VlN5DrBPWXKmVgzODMiZ9bcR fGbkoO3iJjHALwp3X/9DsJdmWU54nxjYzbYdu/qb4GP5l7s2ETE4Zll7vrOO 6k+rjfOHRsUAtgdu0akl2PFy5ilrQXH4l3eLc5rqt51d0UtVVcXhtoFx/79C Sv+lXbX2muLQdxKNdlL9vMNn3fl7OuJwtdwsLecDwdsE/lTR14lDXsDmeWo5 VL+pLz0zf7c4yITOUxJ/Svnhfl5tr404FNkaJFs9Ihi9rP4abS8Oh23XtoQl E2y0yV9Z2kMc0ipGwgvuEKxvX1JAuyQO5SvG/5lco/x5RD9mFioOxj/6I4Yv Uf3JPj7/aqQ4bHY40R99nlqPAuTcBO+Jw9C+FtkYX4IXxx+S+JclDk5h6icz nQlWqZ20Hu4Wh5Z2gdk9BgTfVbacW8URhwim5ssqPYIZLg+enforDmGvpRyN llP9+XfrNPefOOyP+YMbmQTLysY96FOUgM8LL47qSRAsaLGc3bJdArRUxxzt Gnj4UuzFOJXdEiDX8ysynVr/+ZpqN9rZSIBp0I7xvu88POMRGN3gLAFOl89d WvqRh8eufdWvCZQAh1LmROUDHh4odg7++kICGLNza+8e4WG1mw3HIrMlgDU/ UFzenoetHHdaW32QgCCzMaWAfdT1ZcJAp+2rBNj8fiYhaMLDMcvm1Y53SsCL 36HNsqo8vOEO1tZWkoT3qe7DGj+5OPyYSuWVq5Jg7La23lyHiwvXxeTtiJAE uaKTHkpqXDwmREudFycJ9Lo/yr/mc/Hh5GH/+w8lgf/7R37JWer6X/udmZMv CTlvDr0LruDglo1nz3T9laTWK+6SCE8OXj6PupE9JAUV6qeWnUpk456Inku3 XKVg0onfJTmKje+Lj/f2HpeCntpY54+X2FhSiP4m3F8KLs6NtJYcZeOBsQNb 625KQXxL+DuxNWz8uLnFy+OzFCTFsVSOlA5glWfdOGqJNDwVuTOc3N6PxdGo U/OwNNQEOpms6+nF/saLaW+npIGlsLR1tKYX92y2y4zil4E3AycFHxX24qJt hVMmMjKg66dP/5bYiwP2RsSm6chAZgwfz3RvL2a7Lio54yQDKYP+O6Xf9+Cy cOvF8yplQOvC1A2jc93YjHtwnGktC/faWfI7fnXghqIj/Ad154Hg/SljIt6I c0I/O6qPzoOHwT+T6bvKsJuwb1tFhRyMXb+hqml3Bbt4B+ZI3p0PVR6HGku4 pWiF+9IKC6cFUDHBXKzTXY8q5XQlfA3kIdLR4YtAbzva5OnZf89IHr625wV2 TrejzNLM0iIkD9eeporkyXagyKBVl2W3ysO4rJeHiWEHsuhZO5u+Vx78svdP lYV3oO95xqTjuDwMvaAtfLuiE5Uc3l+zO4naruATHHyiC33IvHRPV1ABDgbF Zu/CPUjEwlrpjogCqPSfGbrwswft6ddO4BdXgLmr1teTu3tQL6v8dp2sAvhW bo3JkOhF8xMUY4JVFcBEze/KjE0vOh6SEVproACmtKBZ94FepGxb5xt0SgG+ dyrqygr1I7fRZyM9Pgqgc4qRPU++H72OCfTZ46cAU6/Uh/i0+pFZufp/WucV 4Ftmj+0zs37kY3L8RFWYAqzeWBbKuNGPfujyuWg+VYBQV4OOAOp5KZBfZ3dZ iwK8/uwu3Tc3gHq2SDRotSvAv3YBNVNpNtodyjl0sUsBnGYHdaJU2EhT5uXJ tWwFeLjyieTAejYqU1kT9WBCAY7vvNyed4qNVNdvqjg9XxF0J9ot85rZqMhr r8XC7YrQbRzWPfqYg3Tf6NX6WSiCN7tmqPU1B90eXWD/c5cipJUE/sz5yEHH g+qPX7NRhBnFV0TzFwctuGEfNuSiCHqyBtkyglzk9tjte8l5RTiqxPKQteMi 8eaAbV7ZinBO+nrM9WkuWuuXJhX1ThGuLqgTRUI85CTX8PPle0Ww8hFkdkjy UO42fYehAur8rf0rhhbykFsO+e90uSIkT5aor0Y8VBh55F5AjyLEuHz/a3ie hzhLYg/f61cEi/gxq69XeIheUrgon6MI5qplkpsjeMhrWvXV7F9FuEZWH+dL 5CGVo78/B88pglN5puvdXB7yN97Ju0qnw02z6XAzHg+lNgdlPVWmQ3Lh0MZn IzxU6Zfu/1WVDttEPvONTfGQViZNUHwRHVwUEjNsRQmqUSpWjFhFh6eZQmsM 1Qj6lzPU/GINHWjt3uKCiwjS2aOeUrGODkPdOr9ydQgKvnZOV3YTHQrswg3Y +gQtH1lnHGtOh+sVy1qP7SDoYJSbSLYlHe7+fT1xdzdBV3Ru/ajdTQf+3fXs d9YENR/+a62wnw6PEqL25h4i6EZ5xrEEFzrEb5As/+lNUPcTjbjkIDq8zz41 fvwWQZzL7ZOCwXRY9jj69scEgv46Pzx0NIQOM8m5gRP3CeJT01i66gYd2G3C kjpPCFK6o15UdIcOUXOew4E5BGn4tmlr36NDkc2a/xTzCFq870FEWBIdzr85 o5qYT5C+jPoBq8d0sOg6PHu4mKDd19QGu9/QwbV05npDJUH7XVutzd/SgSXm DB9/EuS4OflDZh4dxPZWzw/7RdDxOdVrfgV08PQtF+toJMi75Q+nqZgO6gYh i4+3EOT/IWkvlFLH/46zb2kl6KqfqqpYBVV/4c/ZoC6CIqz/hHhW00GqPN39 eQ9BcXpJ/dW1dNi6wbCtoI+gh2Rhzt0maryNV8efcQh6Vt6iNPeHDooxp2MD eARlpt8Pdumgg13l2fX6gwTluy+00O2nQ6ZOW7zrMEHFpi2vozl0+LNkbE/T CEHfWfcVRwkdlv8KlzEcI6iK3+HcgWE6NHGfVl0cJ6i+VaXz4xgdFn20i3sz QdCfj83bmFN0GFxQfqBskqCue4mZV2fpcHT3KvXKKYLYZ+0XsPkYEGVV0fN+ mvJnv0rALiEGfImeyoiaIWhSv7k1S5QBm+dUvC1nKb8WJJrSJRgQsuiF/gjF In/t0oOkGZC2QG885B9BUlXK89rnMaDBw+ztDMULMpvOmMoz4OzOWG/HOcrf 8HvNaXQGBPlXLU2jWOOYnYm0CgOu63xrb6Z48TblZ95qDFiyxjZukuIVWk1S 9UwGtA0d3fz/98Frhe75bNBigIHlOI9LsVHHwd/JSxhQni9zp4TizQVKSGgZ A9ZvqdxwlWLzpMbUoysZIHzapWUFxbuD7oqX61HjeYgHFVH17T948NSqdQzA FXL0TRQ7rlequ2XIAFpj0+sUan6uCo0bpjYyoNfy1/ZBSo8TIwkPHY0ZkON/ oU2LYu+fB0SLt1D6rDl+Ziul39lXDE/tbQzw6jaQ3EXpGxz5+2fYDga8Cryf ApT+V08krB/cyYCkU7aGypQ/cYsZQnnWDBCUXPVf2ChB9o5aTzttGVDpw+g0 oPzWjNMzl7ZnwH3nsJ3U8w/KnrOMdnGm9MPx8uWEoCB9O71IVwac5lPyWUrl acvxo3W5Rxkwz3Ow3JfKW23dJRXpkwwYP/L3QgWVx0TJaLzemwHR8kd/N1N5 PWJy39nFlwGThqVr6qk8j7x49yw3kAHzRQ6PRbURNP8KZ41LKANUqsJ+zKsn qPH9ZH1EGAP6k64cDK4lKGVQJDA3kgGzKQNjjdUErbbXKJS6xQC9+lRHqzKC 9urZWOY+ZECHnZ2ybQHlv4fLYEcqA96/bdiq/ZGgjqRTsVLPGBAo6RLZQfW3 t3jYb+dMBtjGNp9dmEVQTDt2lfrAANe/5f9SU6n1SbGctv4TA97mf9n66wFB TMvGdOdCBrD5w/OHEgl6kzsy9K6U0mPabAOJI+hn1JLzzrUMeBFVVTYTQtDd krUaEfUMWKGg8T3yAkHO05s/v2tkAP0GXVwqkMq/m6O4VDsDzhVbOVT8R9C8 TbG333EZULSW+eiII0ENPg8MOgYZ8NPIR/TAAYIepL1olhyh9Nvt8MXAiqCV 8l+ZzlMM+D3YerhgO5U3zkympKgS1BVcde3QIyj6rlupk7oSPHrSmB8kRJDf mUs+QSwleH/GfIXtPx5y3JukdkdLCTKtzMbVJ3hIV7zOr0xXCV6/4dwOYPPQ t7Omi9cZKMHzb2eDd1bzkMABzeuSe5XAcsX4uaAEHupfA/ra1kqw/yGPuSKG h6pk7duNbZVApua2Y+UNHkr+Gmvg56gEvou/pjcE8pDResGB9mNKkGhSqCLj wEO+ih3m70KUwKP0l6+MCg/ZD8+OVV9Vgg+Y++b+fB7aUsl4xLmuBAdWDf5k SPCQ3LU90xrRSsDLNqlqmuSizLGC9PBEJVBe67L3Wh0X9f1KlnTOUYL66F06 F8O56GCcQ4VkrxL8bumUWMzmIJUsceXjA0rwhu/g+rhWDmqtfuf+jasE8y/v Z7NrOOiIjBz/1RElCOOniTjmc5DXjS96c/zKkPBoy6RlOAddCl6RMKSiDILd 8Y5HFnNQ2gn+I3V7lSEzStTi+R42OhGW+WqNjTIUR8q6xG9mo+XP7WZjDiiD X0qJpo8+G73pzbm967AyyOs7VfHobJTvfOzbV09lCG273TX3ZwBV2dYs/xCq DK2MLTIx7gNoYsvjyeRP1HiMwKTCY/0o6ENyyOdCZbgU1OXmY9eP+Fbfler/ rAzpoB0qb9GPRNWiNFb/UAYroTXTOsv6kcKk//bP9cpg+Mb55T1eH9J7YZHQ N6gMi8W0KhO9+pCX/Mj6VSwVOPJt/k8Xl17U2W3iX3RNBQbN5Pv2MLuRSXJF ik6YCpRYItUaqW70wPZgeUykClQd8ZY2nexCjj/+Y7rcUoEc8sh2urILNb56 UCb4SAUc93muzwrqQj8D/6mbflKBvE38xx1qOlHRvPffSkdU4F2uy7DomQ6U snGVcrnTQjAdTj7tvbgVvbjiO899mSp8efdINyS4Bl2zdtkhOKoKfOKONzZa fkT6zQ/TrpWrAf7zx/V8Xi6OX3LvRfkOdRBdvsSJF/4TXyiIiN+Rpw4TB/6a 3VJvxQMtBXGT79Vh5cqkwuBdrdhmejj6ab46GL2W1LI534p11x68LligDv6+ Gks/NbXihnStgA9f1CH34K0v2LwNr76D7ZbWqkPvXFaktUA77vEcUpUg6lDI zl3ofLQDWypbP/6uqQEP9th43ZHsxvFdywvstDQg1KDvq7daN+56QWviaGvA gdYvusaru3EQ5MvKLNUAiUCzjrf7u3GGKyto3yoN2KbHLBZK6cbir4b2Nm/U AM+21Z7qa3pw6ZZIPp6NBsgMuSWK7ezFctJHlS/YasBmM3PnlYd6sWO98VrZ gxpwcIdG1bZTvXjMY/T4agcN8PX5cHZnTC/WirKvP+OiAcbpou3pv3rx5d86 mXMnNWB32g2+Jwf6sLFXqd286xrwIfL8kT02/XiqoX/r5xsaQDs+Ht/h1o+z N0uu9gvXgIew4qyTXz/WYuyhtURpwLevFlKL4/ux5OfG7Ge3NSDNbJNhfUM/ bmDwpCBVA7ab9V/KshnAp0oWFHhhDXBIyvGX38LGOivXpWsUaoD5/kqlrXvZ uPPugdu1RRpw5KiCiMthNrY5lXTC8IsGXOS/EOUUxMZGyosZIuUa8KtNyepU FhvT/tvgfb9RAxyvZ4iULeTgZBVnzbJRDZhMV1E17ORgQ72ly53HNWALs7dK mcfBtdtH1k1MaED/vJY97AkOpvld3aE5owGaWZqP9klz8anq595BAkzw4rtT um09F8PV4QJdGSZcfB7ohEO5uDEx/3uRLBO+KVq2BcRw8emsK7W2ckww+dRf wkrk4mdtin2X5Zmw8+TmFxtfcvG8DUYyLcpMeERF+mYtF3eQyw4Ri5nw/s/G a2+UeThIZKc7S4cJeQZnsow1eVhhoeJ/eUuZwDzwY+CjLg+bm6dd7l7OhAK4 4HpuIw+/SS1P36jPhAWWMROKjjwcckBhimvMhMaPbYvf3eNh1VOtgpc3M6GO +/bBgkc8nHv1mZSSKRMq/vTUOD7nYU6WocbWbUzocRM7mJfLw1bSh7Yl7WTC aMqY+9VaHtYsfnp7px2Tet7eUxpEI7hCdyK12Z4Joff0mFekCfa/vS3rmCNV 3+i1dwELCP7h0V951YkJRRt1QpapE+wtu1QMuzPBoMrU6PVaglUCAhUtPZig K2lHYxkRXNL5Y1HTMSZo8+8evmhMMP3dCZNxTyZs2tdHF7UgGDtkBq44zQTa oo/myw8TfLT03/WPvkwYbz+WQ3MlWG7VrvgdfkxYrQFaVR4EuwkNZrsHMGH7 iz/SWj4ES6av4iUHU8e/b3nBvUzwwYnsw7IRTIj5uLKhP5VgIWfhk0mRTMjI bXSJfUZw5g/rc7rRTHi7+HfZkgyC+ZPHErbFMmHw4url1PUfPzNdXxOcwIRD 8mdHFhYQvPdlaLv0PSa0l9xZubyY4Gn6b5KYyIQONGaw9AvBOzlnJfOSmaB2 ZcsL9g+CR2M+mA49ZsKqPV49V+oITpqRsLrwlAlHFS7ZzzQQvM3N3lkqjQnL E57GHGoiONFg9vySDCaszfc04LQSvPWRZcS7F0zwOLrzqXwHwUQy6Z7pSyZk swsql3YRbNK2KdfpDRNk0u12qPYRzNke9YVkMcGSqZE41U/w7azW2nM5TDjT 9yalmE1w/9XgoYRcJkzMHytTJgTHDFbNab9nws+ph7zngwQbHdSQfvuB4jUy RVp/CY5eVqTz8xMT+GZTArpGKD3W24ldKmBC7eUlP2GM8mvzSO+qIiZcctM6 cXWc4LqdEV/ai6l6Jl+b5UwQzDug9fhmCRPmF424lE8SLOyKQ4xLmbD7jHZB xRSVj1O2zkNfmWA8FWOXN03wmsAhePidCUnO0foRMwTvuHpDbU8ZE6pHQi3N Zwl2vsn6x1fBBGftsZRBigMS85tfVTLBJsVJP/gfwTefWn84XM2Ey8hVaJLi Z294CbI1TGgWT5exmyO44OM1/4JaJjwz4do8obj+q/r+U3VMyN0/9ruRYl5N nr56AxMiuQ/iJygWad27oOo3E3wa62Oo+3+8cID990ITE8K1b38lFK8ZvVy9 ooUJDbK9Bt8otuBTfdX6hwk6wj09YRS7SLyLjGpjAuPJp8p1FAco7PZEHUz4 XZoxUkbVF6PRv4N0MkHpvxnrHRSn6V7SSe5mwvdGsZE3/3+/vU5ZbFcvtf9J 40pBihtMsnv/9VH9W6bWt5HSh1hafskcYAIHr0JOlH4iB3pSHTlMaDFb8MuT 0lf1yIUQaR7Vf3Gnn7tQ+uufpDt/IkxwEJItMKH8sQh4DV5D1Py0sxUkKP8C oztny0eYEJhx/8Z+yu+Ye0HN58aofllQmdZE5eH5E/kPyyao/Bu2S20fourJ N/OPmGaCad6qtFYuwYOlbTYbZ5lAP9vSQeMQLFpzVp/7j8rH5y1uyv///6U/ /a+FAAvk437umukm2HJkS/WMIAvSSnpzv3cSfGSu5WWGMAvimm79d6md4Fh5 WU9JMRbsStvR8KKZOr/x6d4fMiyYnYzIGKkmmGYp9SVwHgsa/vMolqokWM32 SerS+SyIEU9eL1tG9aNXg1OYAguqXNO3VpcQnH7XqNl8IXX+jdUrt+QSXPT4 1/spVRbs8Ll19lk2wY2vvBKeq7OgMChQb+wVdf7SBzbimixYqmoivDONWm+G haq/6bDg5oJdXiSeYMfnWyrsdVkw8OCa3EAcwTZOl3+QZSzwfCivVR1N9W+l 4Bf5VSyYd9j18ZFQgrXSBT44rWNBbVj7zodnCO525ns8uZniDJcSn10ENzMg JdyUBXY5/M/XmhNcW3UhWc2MBXw7jHR7thD8edNcgqk5C56f/qQgYUhwqtK/ yJu7WVCey+g8waL0+zntv8SBBa9Erp2N/cvD9tc3nMl3pPTepteiwaHWewj0 2XWYBXsqPtPvd/PwlswpT18XFkR9+a59sIFa/29MOhd6sODJy0MMks/Dncbj FgfOsCA42X5e6CUedn79V/16FAvevu3/e3uOi09c2jdjfpOq1xBnF45yse++ 7HrJWBbMl31i/YvNxaGjvpHRt1lQQnPc966eizMNJqfv3Kfqr7NluGdy8WTh XN2TdBYskHzbFrSfi6N/SkZ8LmXBLbePFz/Gc/DdR55Hr35jwTPu2X0Lwjn4 0emKzdt+sKDf6pyy9QUOfqsQPfWjggUshy85ca4c3Hxw/tGaXyw41Se/VGoV B2t3MjZ3dLJg290kKU4xG6/MDlBN7WaBpGCscG8OGxteaZp07aX8TluUUPaU jS2077/qH6DyQYo+7Q9jY+/j6qpDQyxYtbx4/ck9bBxkdHHyzTBVz0VlkwIT Nr4i1VF7epQFG9ePoxk9No5/+ShsYoIF3d7tW/UV2DglWMj9/RQLOko5bqtF 2Th9j6tJ0Mz/9fFNU5oYwNnMLws3/WPBC3ENJV7fAP40rDU5N8cC3+tPP2f8 HsD/A1QMfro= "]]}, Annotation[#, "Charting`Private`Tag$1119318#1"]& ]}, {}}}, AspectRatio->NCache[GoldenRatio^(-1), 0.6180339887498948], Axes->{True, True}, AxesLabel->{None, None}, AxesOrigin->{0, 0}, BaseStyle->18, DisplayFunction->Identity, Frame->{{True, True}, {True, True}}, FrameLabel->{{ FormBox["\"Position\"", TraditionalForm], None}, { FormBox["\"Time\"", TraditionalForm], None}}, FrameStyle->Directive[ GrayLevel[0], Thickness[Large]], FrameTicks->{{Automatic, Automatic}, {Automatic, Automatic}}, GridLines->{None, None}, GridLinesStyle->Directive[ GrayLevel[0.5, 0.4]], ImageSize->500, Method->{ "OptimizePlotMarkers" -> True, "OptimizePlotMarkers" -> True, "CoordinatesToolOptions" -> {"DisplayFunction" -> ({ Identity[ Part[#, 1]], Identity[ Part[#, 2]]}& ), "CopiedValueFunction" -> ({ Identity[ Part[#, 1]], Identity[ Part[#, 2]]}& )}}, PlotRange->{{0, 10.}, {-0.9999987524793938, 1.}}, PlotRangeClipping->True, PlotRangePadding->{{ Scaled[0.02], Scaled[0.02]}, { Scaled[0.05], Scaled[0.05]}}, Ticks->{Automatic, Automatic}]], "Output", CellChangeTimes->{{3.856195366765229*^9, 3.856195375258182*^9}, 3.856195438857111*^9}, CellLabel-> "Out[362]=",ExpressionUUID->"09717438-1457-4dd3-bd11-ec8174c6bac1"] }, Open ]] }, Open ]] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["Damped Evolution", "Subsection", CellChangeTimes->{{3.856195495238515*^9, 3.856195500687152*^9}, { 3.856197377353492*^9, 3.856197379537578*^9}},ExpressionUUID->"2c31f1d0-f44f-4e7f-b321-\ b936b6606000"], Cell[CellGroupData[{ Cell["\<\ We now have an accurate self-starting integrator for both positions and \ velocities\ \>", "Item", CellChangeTimes->{{3.856195503057909*^9, 3.8561955703979883`*^9}},ExpressionUUID->"c331b661-7b37-46aa-88b7-\ a1f182be73ae"], Cell[CellGroupData[{ Cell["\<\ This means we can also add a damping factor to our velocities, to simulate a \ cooling down in temperature\ \>", "Subitem", CellChangeTimes->{{3.856195503057909*^9, 3.856195627199542*^9}},ExpressionUUID->"99026b44-ae24-44c5-864f-\ 800409ff9c62"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"velocityVerletDamping", "[", RowBox[{"dt_", ",", RowBox[{"dampingFactor_", ":", "1"}], ",", RowBox[{"computeForcesFunction_", ":", "lennardJonesForces"}]}], "]"}], "[", RowBox[{"{", RowBox[{"positions_", ",", "velocities_", ",", "forces_"}], "}"}], "]"}], ":=", RowBox[{"Block", "[", RowBox[{ RowBox[{"{", RowBox[{"newPositions", ",", "newVelocities", ",", "newForces"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"newPositions", "=", RowBox[{"positions", "+", RowBox[{"velocities", " ", "dt"}], " ", "+", " ", RowBox[{"0.5", " ", "forces", " ", SuperscriptBox["dt", "2"]}]}]}], ";", "\[IndentingNewLine]", RowBox[{"newForces", " ", "=", " ", RowBox[{"computeForcesFunction", "[", "newPositions", "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"newVelocities", "=", " ", RowBox[{"dampingFactor", RowBox[{"(", RowBox[{"velocities", " ", "+", " ", RowBox[{ RowBox[{"(", RowBox[{"forces", "+", "newForces"}], ")"}], RowBox[{"dt", "/", "2"}]}]}], ")"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"newPositions", ",", "newVelocities", ",", "newForces"}], "}"}]}]}], "\[IndentingNewLine]", "]"}]}]], "Input", CellChangeTimes->{{3.8561956405300207`*^9, 3.856195808162178*^9}, { 3.856195886500246*^9, 3.8561959231557627`*^9}, {3.856196085038137*^9, 3.85619609583008*^9}, 3.856196547844583*^9}, CellLabel-> "In[118]:=",ExpressionUUID->"cad7c7a5-2cfa-410f-aa10-21db9a31d7c3"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["\<\ We\[CloseCurlyQuote]ll start with the last frame of our previous simulation \ and cool the system down by introducing a slow velocity damping\ \>", "Item", CellChangeTimes->{{3.85619614403906*^9, 3.856196212797677*^9}},ExpressionUUID->"b128696c-af3d-46e4-84e9-\ e441ce10f4c5"], Cell[BoxData[{ RowBox[{ RowBox[{"positionsSquareLattice", "=", RowBox[{"ljSquareLatticePositions", "[", "20", "]"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"velocitiesSquareLattice", "=", RowBox[{"ConstantArray", "[", RowBox[{"0.", ",", RowBox[{"Dimensions", "[", "positionsSquareLattice", "]"}]}], "]"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"forcesSquareLattice", "=", RowBox[{"lennardJonesForces", "[", "positionsSquareLattice", "]"}]}], ";"}]}], "Input", CellChangeTimes->{{3.856196219744267*^9, 3.8561963314628077`*^9}}, CellLabel-> "In[119]:=",ExpressionUUID->"5f5288df-7ff8-4845-9382-95d34e8f8405"], Cell[BoxData[ RowBox[{"Dynamic", "[", RowBox[{"particleGraphic", "[", "positionsSquareLattice", "]"}], "]"}]], "Input", CellLabel->"In[90]:=",ExpressionUUID->"e36f0865-cd92-406d-ad68-6a2babc3be7d"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"Do", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{ "positionsSquareLattice", ",", "velocitiesSquareLattice", ",", "forcesSquareLattice"}], "}"}], "=", RowBox[{ RowBox[{"velocityVerletDamping", "[", RowBox[{"0.01", ",", "0.99"}], "]"}], "[", RowBox[{"{", RowBox[{ "positionsSquareLattice", ",", "velocitiesSquareLattice", ",", "forcesSquareLattice"}], "}"}], "]"}]}], ",", "\[IndentingNewLine]", RowBox[{"{", "1000", "}"}]}], "]"}]], "Input", CellChangeTimes->{{3.856196358408885*^9, 3.856196414433161*^9}, 3.856196450115588*^9, {3.8561965657802143`*^9, 3.856196584898705*^9}, 3.8561966178908157`*^9, {3.8562602404302683`*^9, 3.856260287855019*^9}, 3.856260366664186*^9, 3.856260403072411*^9, 3.856262623352664*^9, { 3.856262783245854*^9, 3.856262783380157*^9}},ExpressionUUID->"75741205-f7a2-4aff-8f41-\ 71831ba562c0"], Cell[BoxData["$Aborted"], "Output", CellChangeTimes->{{3.8562602542768927`*^9, 3.8562603030700693`*^9}, 3.856260358575301*^9, {3.856260388803194*^9, 3.856260405196138*^9}}, CellLabel-> "Out[117]=",ExpressionUUID->"ea65985d-29f1-4d7d-91b4-10c30f536457"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["\<\ We can now use these \[OpenCurlyDoubleQuote]damped\[CloseCurlyDoubleQuote] \ positions - which should be closer to relaxed equilibrium positions\ \>", "Item", CellChangeTimes->{{3.856196490159082*^9, 3.856196526743579*^9}, { 3.856196651232893*^9, 3.856196651234577*^9}},ExpressionUUID->"40ef2c2f-943d-40d6-8e8f-\ 9a7cbca83a9a"], Cell[CellGroupData[{ Cell["\<\ as initial conditions to our energy-conserving adiabatic solver\ \>", "Subitem", CellChangeTimes->{{3.856196490159082*^9, 3.856196526743579*^9}, { 3.8561966520579348`*^9, 3.8561966689548607`*^9}},ExpressionUUID->"db782eff-f2ee-43c6-901a-\ 0f4c3debf14e"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"{", RowBox[{ "ljSquareLatticePositionsRelaxed", ",", "ljSquareLatticeMomentaRelaxed"}], "}"}], " ", "=", RowBox[{"With", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"initialPositions", "=", "positionsSquareLattice"}], ",", RowBox[{"initialMomenta", "=", RowBox[{"ConstantArray", "[", RowBox[{"0.", ",", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"2", " ", "5"}], "+", "1"}], ")"}], "^", "2"}], ",", "2"}], "}"}]}], "]"}]}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"NDSolveValue", "[", RowBox[{ RowBox[{"{", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{ RowBox[{"p", "'"}], "[", "t", "]"}], "\[Equal]", RowBox[{"lennardJonesForces", "[", RowBox[{"q", "[", "t", "]"}], "]"}]}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"q", "'"}], "[", "t", "]"}], " ", "\[Equal]", " ", RowBox[{"p", "[", "t", "]"}]}], ",", " ", "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{ RowBox[{"p", "[", "0", "]"}], " ", "==", " ", "initialMomenta"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"q", "[", "0", "]"}], "\[Equal]", " ", "initialPositions"}]}], "\[IndentingNewLine]", "}"}], ",", RowBox[{"{", RowBox[{"q", ",", "p"}], "}"}], ",", RowBox[{"{", RowBox[{"t", ",", "0", ",", "20"}], "}"}], ",", "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{"Method", "\[Rule]", RowBox[{"{", RowBox[{"\"\\"", ",", RowBox[{"\"\\"", "\[Rule]", "2"}], ",", RowBox[{"\"\\"", "\[Rule]", RowBox[{"{", RowBox[{"q", "[", "t", "]"}], "}"}]}]}], "}"}]}], ",", "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{"StartingStepSize", "\[Rule]", RowBox[{"1", "/", "50"}]}], ",", RowBox[{"MaxSteps", "\[Rule]", "Infinity"}]}], "]"}]}], "\[IndentingNewLine]", "]"}]}], ";"}]], "Input", CellChangeTimes->{{3.8561966891817102`*^9, 3.85619670182255*^9}}, CellLabel-> "In[438]:=",ExpressionUUID->"122d0f92-abe0-47e9-8637-a2b810fe1802"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["\<\ And indeed confirm there are only small oscillations at these equilibrium \ positions\ \>", "Item", CellChangeTimes->{{3.856196779692328*^9, 3.856196816475437*^9}},ExpressionUUID->"0a3444bb-875e-46c3-83dd-\ 5403b6432fd4"], Cell[BoxData[ RowBox[{"Manipulate", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"Show", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"particleGraphic", "[", RowBox[{"ljSquareLatticePositionsRelaxed", "[", "t", "]"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"PlotRange", "\[Rule]", " ", RowBox[{"7", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", "1"}], "}"}]}], "}"}]}]}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"t", ",", "0", ",", "\"\\""}], "}"}], ",", "0", ",", "20"}], "}"}], ",", RowBox[{"Paneled", "\[Rule]", "False"}]}], "\[IndentingNewLine]", "]"}]], "Input", CellChangeTimes->{3.856196735373167*^9}, CellLabel-> "In[439]:=",ExpressionUUID->"460f8e2b-457d-4cdf-bde2-7e375d4aac3d"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["Simple Thermostat", "Subsection", CellChangeTimes->{{3.856195495238515*^9, 3.856195500687152*^9}, { 3.856197377353492*^9, 3.856197379537578*^9}, {3.856262600801434*^9, 3.856262612065555*^9}},ExpressionUUID->"a3807d9c-e5f0-457b-b842-\ 6d2eb5965edd"], Cell[CellGroupData[{ Cell["\<\ More generally, with access to the velocities we can implement a \ \[OpenCurlyDoubleQuote]thermostat\[CloseCurlyDoubleQuote]\ \>", "Item", CellChangeTimes->{{3.856196779692328*^9, 3.856196816475437*^9}, { 3.856262639641659*^9, 3.856262669569872*^9}},ExpressionUUID->"75fa4759-9632-4611-a46f-\ 29f96b191a32"], Cell[CellGroupData[{ Cell["\<\ Here we simply replace one of the velocities by the mean of the current \ velocity and a Maxwellian velocity\ \>", "Subitem", CellChangeTimes->{{3.856196779692328*^9, 3.856196816475437*^9}, { 3.856262639641659*^9, 3.856262677050264*^9}, {3.856262722146407*^9, 3.856262732706946*^9}, {3.856263484762396*^9, 3.856263494058414*^9}},ExpressionUUID->"44ecafc4-64d5-412e-81ae-\ 1a8d624fb2da"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"velocityVerletConstantThermostat", "[", RowBox[{"dt_", ",", RowBox[{"temperature_", ":", "1"}], ",", RowBox[{"computeForcesFunction_", ":", "lennardJonesForces"}]}], "]"}], "[", RowBox[{"{", RowBox[{"positions_", ",", "velocities_", ",", "forces_"}], "}"}], "]"}], ":=", RowBox[{"Block", "[", RowBox[{ RowBox[{"{", RowBox[{"newPositions", ",", "newVelocities", ",", "newForces", ",", RowBox[{"randomVelocityIndex", "=", RowBox[{"RandomInteger", "[", RowBox[{"{", RowBox[{"1", ",", RowBox[{"Length", "[", "velocities", "]"}]}], "}"}], "]"}]}], ",", "maxwellVelocity"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"newPositions", "=", RowBox[{"positions", "+", RowBox[{"velocities", " ", "dt"}], " ", "+", " ", RowBox[{"0.5", " ", "forces", " ", SuperscriptBox["dt", "2"]}]}]}], ";", "\[IndentingNewLine]", RowBox[{"newForces", " ", "=", " ", RowBox[{"computeForcesFunction", "[", "newPositions", "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"newVelocities", "=", RowBox[{"(", RowBox[{"velocities", " ", "+", " ", RowBox[{ RowBox[{"(", RowBox[{"forces", "+", "newForces"}], ")"}], RowBox[{"dt", "/", "2"}]}]}], ")"}]}], ";", "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{"maxwellVelocity", "=", RowBox[{ RowBox[{"AngleVector", "[", RowBox[{"RandomReal", "[", RowBox[{"2", "\[Pi]"}], "]"}], "]"}], RowBox[{"RandomVariate", "[", RowBox[{"MaxwellDistribution", "[", SqrtBox["temperature"], "]"}], "]"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"newVelocities", "=", RowBox[{"ReplacePart", "[", RowBox[{"newVelocities", ",", RowBox[{"randomVelocityIndex", "->", RowBox[{"Mean", "[", RowBox[{"{", RowBox[{"maxwellVelocity", ",", RowBox[{"newVelocities", "[", RowBox[{"[", "randomVelocityIndex", "]"}], "]"}]}], "}"}], "]"}]}]}], "]"}]}], ";", "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"newPositions", ",", "newVelocities", ",", "newForces"}], "}"}]}]}], "\[IndentingNewLine]", "]"}]}]], "Input", CellChangeTimes->{{3.856259579332526*^9, 3.8562595882765627`*^9}, { 3.856259786609439*^9, 3.856259857801914*^9}, {3.8562601055497026`*^9, 3.856260184720375*^9}, {3.856262692235878*^9, 3.856262711842799*^9}}, CellLabel-> "In[172]:=",ExpressionUUID->"4740902a-f02a-442e-9118-0ad3a59a5b41"], Cell[BoxData[{ RowBox[{ RowBox[{"positionsSquareLattice", "=", RowBox[{"ljSquareLatticePositions", "[", "20", "]"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"velocitiesSquareLattice", "=", RowBox[{"ConstantArray", "[", RowBox[{"0.", ",", RowBox[{"Dimensions", "[", "positionsSquareLattice", "]"}]}], "]"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"forcesSquareLattice", "=", RowBox[{"lennardJonesForces", "[", "positionsSquareLattice", "]"}]}], ";"}]}], "Input", CellChangeTimes->{{3.856196219744267*^9, 3.8561963314628077`*^9}}, CellLabel-> "In[173]:=",ExpressionUUID->"0f56fcfa-39d1-473a-9a2a-ead64d92c994"], Cell[BoxData[{ RowBox[{ RowBox[{"staticMaxwellDistribution", "=", RowBox[{"Plot", "[", RowBox[{ RowBox[{"PDF", "[", RowBox[{ RowBox[{"MaxwellDistribution", "[", SqrtBox["0.25"], "]"}], ",", "v"}], "]"}], ",", RowBox[{"{", RowBox[{"v", ",", "0", ",", "3"}], "}"}], ",", RowBox[{"Frame", "->", "True"}], ",", RowBox[{"PlotStyle", "\[Rule]", "Blue"}], ",", RowBox[{"ImageSize", "->", "400"}], ",", RowBox[{"FrameLabel", "\[Rule]", RowBox[{"{", RowBox[{ "\"\\"", ",", "\"\\""}], "}"}]}], ",", RowBox[{"BaseStyle", "\[Rule]", "18"}], ",", RowBox[{"PlotLegends", "\[Rule]", RowBox[{"Placed", "[", RowBox[{ RowBox[{"LineLegend", "[", RowBox[{ RowBox[{"{", RowBox[{"Blue", ",", "Red"}], "}"}], ",", RowBox[{"{", RowBox[{ "\"\\"", ",", "\"\\""}], "}"}], ",", RowBox[{"LabelStyle", "\[Rule]", "12"}]}], "]"}], ",", RowBox[{"{", RowBox[{"0.75", ",", "0.75"}], "}"}]}], "]"}]}]}], "]"}]}], ";"}], "\[IndentingNewLine]", RowBox[{"Dynamic", "[", RowBox[{"Row", "[", RowBox[{"{", RowBox[{ RowBox[{"Show", "[", RowBox[{ RowBox[{"particleGraphic", "[", "positionsSquareLattice", "]"}], ",", RowBox[{"ImageSize", "->", "350"}]}], "]"}], ",", RowBox[{"Show", "[", RowBox[{"staticMaxwellDistribution", ",", RowBox[{"SmoothHistogram", "[", RowBox[{ RowBox[{"Norm", "/@", "velocitiesSquareLattice"}], ",", RowBox[{"PlotStyle", "\[Rule]", "Red"}]}], "]"}]}], "]"}]}], "}"}], "]"}], "]"}]}], "Input", CellChangeTimes->{{3.856262806108636*^9, 3.856262949581089*^9}, { 3.856263118983432*^9, 3.856263183080887*^9}, {3.8562632155794086`*^9, 3.856263360584547*^9}}, CellLabel-> "In[170]:=",ExpressionUUID->"969db3bc-f2c7-4143-8d70-110adfb1e2c9"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"Do", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{ "positionsSquareLattice", ",", "velocitiesSquareLattice", ",", "forcesSquareLattice"}], "}"}], "=", RowBox[{ RowBox[{"velocityVerletConstantThermostat", "[", RowBox[{"0.01", ",", "0.25"}], "]"}], "[", RowBox[{"{", RowBox[{ "positionsSquareLattice", ",", "velocitiesSquareLattice", ",", "forcesSquareLattice"}], "}"}], "]"}]}], ",", "\[IndentingNewLine]", RowBox[{"{", "1000", "}"}]}], "]"}]], "Input", CellChangeTimes->{{3.856196358408885*^9, 3.856196414433161*^9}, 3.856196450115588*^9, {3.8561965657802143`*^9, 3.856196584898705*^9}, 3.8561966178908157`*^9, {3.8562602404302683`*^9, 3.856260287855019*^9}, 3.856260366664186*^9, 3.856260403072411*^9, 3.856262623352664*^9, { 3.856262778793662*^9, 3.856262798780032*^9}, {3.856263431378688*^9, 3.8562634686346684`*^9}},ExpressionUUID->"24140cd0-1e4b-4500-ad05-\ 03712107b049"], Cell[BoxData["$Aborted"], "Output", CellChangeTimes->{{3.8562634451889553`*^9, 3.856263466172699*^9}}, CellLabel-> "Out[178]=",ExpressionUUID->"83bc3bc5-d790-49fb-b9cd-1f2e95203603"] }, Open ]] }, Open ]] }, Open ]] }, Open ]] }, Open ]] }, Open ]] }, WindowSize->{1440., 760.5}, WindowMargins->{{0, Automatic}, {0, Automatic}}, PrivateNotebookOptions->{"CloudPublishPath"->"/Published/3029-SP22__L13__\ molecular-dynamics__03-14-22.nb"}, Magnification:>1.25 Inherited, FrontEndVersion->"13.0 for Linux x86 (64-bit) (December 2, 2021)", StyleDefinitions->"Default.nb", ExpressionUUID->"22a594e4-1a03-489d-8fe2-53aa00b24abd" ] (* End of Notebook Content *) (* Internal cache information *) (*CellTagsOutline CellTagsIndex->{} *) (*CellTagsIndex CellTagsIndex->{} *) (*NotebookFileOutline Notebook[{ Cell[558, 20, 731, 10, 106, "Subtitle",ExpressionUUID->"47622c80-d933-404e-88da-20759783ea1a"], Cell[CellGroupData[{ Cell[1314, 34, 704, 10, 85, "Chapter",ExpressionUUID->"770ff757-b306-4f79-85f0-83fe775e7aeb"], Cell[2021, 46, 274, 6, 40, "Item",ExpressionUUID->"46a813d8-0bef-4ea9-95fb-bce4902bc1e8"], Cell[CellGroupData[{ Cell[2320, 56, 358, 8, 40, "Item",ExpressionUUID->"e8624621-727d-4ce6-accf-a3309e2d7b9f"], Cell[2681, 66, 292, 7, 34, "Subitem",ExpressionUUID->"2746f1a1-8e08-4044-af52-c1733f66ce85"] }, Open ]], Cell[CellGroupData[{ Cell[3010, 78, 167, 3, 83, "Section",ExpressionUUID->"3518b599-f5f3-4473-bb8d-c38031d0ceae"], Cell[3180, 83, 448, 12, 40, "Item",ExpressionUUID->"fa1cc1ad-7caa-4363-af01-5add39bdbc0a"], Cell[3631, 97, 896, 25, 55, "DisplayFormulaNumbered",ExpressionUUID->"b853ddb5-cadc-4983-b900-d7eb6db19aa9"], Cell[4530, 124, 408, 11, 40, "Item",ExpressionUUID->"8310c7f0-b0a8-4c64-bfbb-4fd3396ac310"], Cell[4941, 137, 2238, 57, 115, "DisplayFormulaNumbered",ExpressionUUID->"eb69e280-dc90-4525-963b-5aaa7106819e"], Cell[7182, 196, 239, 6, 40, "Item",ExpressionUUID->"0724d2c1-53ea-430b-9371-eeb8f6565afd"], Cell[CellGroupData[{ Cell[7446, 206, 235, 6, 40, "Item",ExpressionUUID->"0350987b-fd32-4ae4-b5c4-8a05083f3c23"], Cell[7684, 214, 566, 15, 34, "Subitem",ExpressionUUID->"56ba64a2-8a77-4155-803f-a91c3cbfee34"] }, Open ]], Cell[CellGroupData[{ Cell[8287, 234, 171, 3, 68, "Subsection",ExpressionUUID->"4fcec8d7-8704-4420-9c71-6607712cf733"], Cell[8461, 239, 214, 5, 40, "Item",ExpressionUUID->"f580eacd-9616-40d4-89c6-c544f6414cca"], Cell[8678, 246, 762, 19, 54, "DisplayFormulaNumbered",ExpressionUUID->"02007911-62d1-4dab-8a99-aa9268d3f41f"], Cell[CellGroupData[{ Cell[9465, 269, 744, 20, 36, "Subitem",ExpressionUUID->"6bf713fe-ebb0-475a-bab3-ca6cd0a336ea"], Cell[10212, 291, 420, 11, 60, "Input",ExpressionUUID->"341b5e60-1879-4f8d-bb7f-5b00f0c61a79"] }, Open ]], Cell[CellGroupData[{ Cell[10669, 307, 416, 10, 40, "Item",ExpressionUUID->"b0fded2e-25f5-4332-a718-a987e46d47c7"], Cell[CellGroupData[{ Cell[11110, 321, 357, 8, 36, "Input",ExpressionUUID->"88b2301c-49b9-488d-84bf-fa2d7039ae06"], Cell[11470, 331, 326, 8, 62, "Output",ExpressionUUID->"a1b93573-0698-48a9-97df-648387573ccc"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[11845, 345, 305, 7, 40, "Item",ExpressionUUID->"e6eccdee-fad4-4298-be90-23e6f5c23bfc"], Cell[CellGroupData[{ Cell[12175, 356, 704, 20, 34, "Subitem",ExpressionUUID->"d66d090b-f744-4497-903b-00ae38b21b8a"], Cell[CellGroupData[{ Cell[12904, 380, 1288, 32, 360, "Input",ExpressionUUID->"91e67e27-5f05-43c9-b2ff-493411a83d76"], Cell[14195, 414, 1800, 61, 66, "Output",ExpressionUUID->"87a03dfa-44f1-4e29-bac6-b736afa64b21"] }, Open ]] }, Open ]], Cell[16022, 479, 257, 5, 34, "Subitem",ExpressionUUID->"1312dc9e-7c8a-449a-9c04-5c553d61e6d9"] }, Open ]], Cell[16294, 487, 957, 22, 60, "DisplayFormulaNumbered",ExpressionUUID->"4391f038-0904-4120-963e-394a432e5080"], Cell[CellGroupData[{ Cell[17276, 513, 366, 10, 40, "Item",ExpressionUUID->"6aac544b-0523-4640-99df-a056141cd059"], Cell[17645, 525, 454, 12, 34, "Subitem",ExpressionUUID->"adc231f7-57d4-470b-bbe5-937d75246e64"], Cell[CellGroupData[{ Cell[18124, 541, 290, 7, 34, "Subitem",ExpressionUUID->"4a9a05f5-f5fd-4272-b82f-2379813a9ac6"], Cell[CellGroupData[{ Cell[18439, 552, 624, 18, 88, "Input",ExpressionUUID->"52d36528-782f-449c-917a-a0760648df53"], Cell[19066, 572, 793, 20, 98, "Output",ExpressionUUID->"dd2fe4dc-1017-475b-9870-7631fd953c2e"] }, Open ]], Cell[CellGroupData[{ Cell[19896, 597, 596, 11, 53, "Subsubitem",ExpressionUUID->"ae669d16-1301-4eb7-8519-1821f17c0ea5"], Cell[CellGroupData[{ Cell[20517, 612, 732, 21, 88, "Input",ExpressionUUID->"e8c63de5-4ff2-46ba-919e-1dc66282dfc4"], Cell[21252, 635, 769, 20, 98, "Output",ExpressionUUID->"4529b28f-f353-4f5f-89e1-deb332a0cab3"] }, Open ]] }, Open ]] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[22094, 663, 227, 5, 40, "Item",ExpressionUUID->"084bc1ed-1f44-4052-9fe7-5e4775a8dfa2"], Cell[CellGroupData[{ Cell[22346, 672, 199, 3, 34, "Subitem",ExpressionUUID->"15e18c67-d061-41d4-a94c-ebd148a18dd3"], Cell[22548, 677, 1722, 40, 221, "Input",ExpressionUUID->"fdb716d0-c274-4332-8f4d-a0f0d696aef7"], Cell[CellGroupData[{ Cell[24295, 721, 617, 18, 88, "Input",ExpressionUUID->"dfb0f678-433d-4669-81c9-46e2149eb86e"], Cell[24915, 741, 605, 17, 41, "Output",ExpressionUUID->"e12e3387-c116-485d-bcff-08f60b3ddefd"] }, Open ]] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[25581, 765, 357, 6, 40, "Item",ExpressionUUID->"6f227075-f254-43de-a4bf-58c9fe56dc90"], Cell[25941, 773, 664, 20, 88, "Input",ExpressionUUID->"03848881-f63b-475a-91ae-2cc3fc9243ba"], Cell[CellGroupData[{ Cell[26630, 797, 520, 9, 34, "Subitem",ExpressionUUID->"20176109-576b-4f4e-a86b-cc7cefe8471b"], Cell[CellGroupData[{ Cell[27175, 810, 442, 6, 31, "Subsubitem",ExpressionUUID->"77cf8410-40aa-49a9-a2c8-87271ada60be"], Cell[27620, 818, 1243, 30, 254, "Input",ExpressionUUID->"61631010-3829-493a-af98-98015cfcc873"] }, Open ]], Cell[CellGroupData[{ Cell[28900, 853, 201, 3, 31, "Subsubitem",ExpressionUUID->"82b44c32-8696-47f1-8f39-caa4bc74f945"], Cell[29104, 858, 1814, 49, 210, "Input",ExpressionUUID->"07026006-20c9-432a-bfb7-8f9e89bdbb91"], Cell[CellGroupData[{ Cell[30943, 911, 392, 11, 36, "Input",ExpressionUUID->"954ef1d3-b923-442c-aa97-63fc69cf2cb1"], Cell[31338, 924, 16172, 248, 470, "Output",ExpressionUUID->"b0fd819b-0675-4bcc-8673-25b1e9304d18"] }, Open ]] }, Open ]] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[47583, 1180, 343, 7, 40, "Item",ExpressionUUID->"cbcfbff9-cba5-4db4-bbd2-7877e635d5e2"], Cell[47929, 1189, 2904, 71, 366, "Input",ExpressionUUID->"c65e625e-aea9-41e6-91e4-5f2e0685320a"] }, Open ]], Cell[CellGroupData[{ Cell[50870, 1265, 337, 5, 40, "Item",ExpressionUUID->"9b915241-30bd-45bf-bdb9-668c8f6dd91b"], Cell[51210, 1272, 369, 7, 34, "Subitem",ExpressionUUID->"adcba3c1-9124-4f29-a778-b03b38e1e204"], Cell[CellGroupData[{ Cell[51604, 1283, 341, 5, 34, "Subitem",ExpressionUUID->"8b577ed6-ef97-4f2e-8ecc-1272fb015ca3"], Cell[51948, 1290, 1061, 29, 164, "Input",ExpressionUUID->"a37a6fdc-2f58-4281-8d9c-b2c6f34ce34a"] }, Open ]] }, Open ]] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[53082, 1327, 172, 3, 83, "Section",ExpressionUUID->"57c1ba16-bdf6-4da6-abb0-64447108288c"], Cell[53257, 1332, 218, 5, 40, "Item",ExpressionUUID->"9c1025a8-32e2-45a6-8a61-2689c2ce887f"], Cell[CellGroupData[{ Cell[53500, 1341, 283, 6, 40, "Item",ExpressionUUID->"9e13e2be-b88c-42e1-9a8f-c74465c6c4a9"], Cell[53786, 1349, 297, 6, 34, "Subitem",ExpressionUUID->"9d94227a-2894-45e6-93b0-5d29a2f4816a"] }, Open ]], Cell[CellGroupData[{ Cell[54120, 1360, 315, 7, 40, "Item",ExpressionUUID->"2657b595-2ef5-470d-b991-f00d30fb8f30"], Cell[54438, 1369, 275, 6, 34, "Subitem",ExpressionUUID->"5029c8ae-4b7c-4253-b8b1-833c2310be18"] }, Open ]], Cell[CellGroupData[{ Cell[54750, 1380, 169, 3, 68, "Subsection",ExpressionUUID->"c4a3b863-827e-4571-a0a7-03e2c12ee00a"], Cell[54922, 1385, 243, 6, 40, "Item",ExpressionUUID->"47f773ab-be54-4a0f-88ae-e55637a6e214"], Cell[55168, 1393, 896, 25, 55, "DisplayFormulaNumbered",ExpressionUUID->"8a731e97-9f9d-45f9-b2dd-9ab5fd471f29"], Cell[CellGroupData[{ Cell[56089, 1422, 334, 7, 40, "Item",ExpressionUUID->"b2f95502-f13b-4514-b656-1a2cc0faacfb"], Cell[CellGroupData[{ Cell[56448, 1433, 320, 8, 36, "Input",ExpressionUUID->"dc9dac90-fe89-4195-a7b8-aa3c80518222"], Cell[56771, 1443, 1113, 31, 56, "Output",ExpressionUUID->"fcd53634-632b-45cb-82eb-0112d1ef8f81"] }, Open ]] }, Open ]], Cell[57911, 1478, 695, 19, 42, "Item",ExpressionUUID->"a983b157-a14c-4e7b-b7c8-721bf1e8a30e"], Cell[58609, 1499, 1273, 33, 48, "DisplayFormulaNumbered",ExpressionUUID->"eab02e1e-adcf-4109-bd82-2bad57daa71f"], Cell[CellGroupData[{ Cell[59907, 1536, 241, 4, 34, "Subitem",ExpressionUUID->"bebf4c08-23b3-4fb3-809c-f789399c9ba4"], Cell[60151, 1542, 327, 5, 31, "Subsubitem",ExpressionUUID->"950fdd32-c389-4a1e-bcbe-bc2163d99a3a"] }, Open ]], Cell[60493, 1550, 1195, 31, 97, "DisplayFormulaNumbered",ExpressionUUID->"1cecabc9-6a1c-44eb-a1a1-ecd9b2dc9852"], Cell[61691, 1583, 1656, 42, 174, "Input",ExpressionUUID->"c37b57a7-8a2b-4e1e-a34e-ecabb239ca64"], Cell[CellGroupData[{ Cell[63372, 1629, 1979, 50, 240, "Input",ExpressionUUID->"796ac422-0415-403f-a8b8-93bbd441e378"], Cell[65354, 1681, 28938, 497, 419, "Output",ExpressionUUID->"2dc5cbfb-38eb-406f-9d9d-6a2cd148b091"] }, Open ]], Cell[94307, 2181, 307, 6, 34, "Subitem",ExpressionUUID->"b41d057b-1863-4209-9dea-a4ab221b6178"], Cell[CellGroupData[{ Cell[94639, 2191, 400, 6, 40, "Item",ExpressionUUID->"d4d9cec8-d49f-4900-9d6e-4264fa63be6f"], Cell[95042, 2199, 399, 7, 34, "Subitem",ExpressionUUID->"f98aada2-e230-47b3-aae3-e27b822b41b7"] }, Open ]], Cell[95456, 2209, 3247, 84, 108, "DisplayFormulaNumbered",ExpressionUUID->"67cb2eea-36ca-4ea2-ab88-3dd96ffd7e84"], Cell[98706, 2295, 181, 3, 34, "Subitem",ExpressionUUID->"ab7d0715-3773-476f-9020-0527f13a1af8"], Cell[98890, 2300, 1338, 34, 38, "DisplayFormulaNumbered",ExpressionUUID->"bc717a53-0f86-4dd2-907d-f6608566958e"], Cell[100231, 2336, 1486, 36, 118, "Input",ExpressionUUID->"69018004-a423-4628-b89a-281f2364ed79"], Cell[CellGroupData[{ Cell[101742, 2376, 2052, 53, 240, "Input",ExpressionUUID->"231a5870-a71f-4341-920c-c4a3b2a13e7d"], Cell[103797, 2431, 28846, 496, 419, "Output",ExpressionUUID->"9352091a-52ad-4bf9-9894-0526d65aa610"] }, Open ]], Cell[CellGroupData[{ Cell[132680, 2932, 233, 4, 34, "Subitem",ExpressionUUID->"4e3974c4-051e-43ae-81e0-a9a314dc0877"], Cell[CellGroupData[{ Cell[132938, 2940, 272, 5, 31, "Subsubitem",ExpressionUUID->"5d2463c5-c296-440d-8bd2-3636eaf39adb"], Cell[CellGroupData[{ Cell[133235, 2949, 2222, 55, 236, "Input",ExpressionUUID->"b9a6513f-2e94-4e1f-b13e-607951f8c592"], Cell[135460, 3006, 15771, 283, 404, "Output",ExpressionUUID->"34009efb-6f99-40dd-9016-c77918d60f2c"] }, Open ]] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[151292, 3296, 494, 7, 40, "Item",ExpressionUUID->"57fe7619-42d3-490e-ac8c-201047ac6c84"], Cell[151789, 3305, 868, 19, 36, "Subitem",ExpressionUUID->"5f218cd2-72fb-4002-a218-680f0e93ca22"] }, Open ]], Cell[CellGroupData[{ Cell[152694, 3329, 484, 9, 40, "Item",ExpressionUUID->"324c02ad-2eb5-45fd-b82d-0d8a914fc6f6"], Cell[153181, 3340, 445, 6, 34, "Subitem",ExpressionUUID->"816e87d9-7f61-45a0-a10b-404fb13d473a"] }, Open ]], Cell[153641, 3349, 191, 3, 40, "Item",ExpressionUUID->"5e2f682a-17da-459a-91c4-e92fac9d4142"], Cell[153835, 3354, 2164, 55, 93, "DisplayFormulaNumbered",ExpressionUUID->"c2ec6818-e0d3-40d0-9c7e-f0cd27e4b477"], Cell[CellGroupData[{ Cell[156024, 3413, 411, 8, 40, "Item",ExpressionUUID->"e0fa1c62-c67d-48ef-8b8e-a74c475ac521"], Cell[156438, 3423, 1308, 33, 73, "Subitem",ExpressionUUID->"d10ca76f-baf3-4b86-af42-5ad8e6f40672"], Cell[157749, 3458, 1015, 26, 73, "Subitem",ExpressionUUID->"734af88d-7b98-42cb-adfa-168e8bc7ffc6"], Cell[158767, 3486, 1072, 28, 36, "Subitem",ExpressionUUID->"e7d3cead-c941-4605-8040-c1de39639d21"], Cell[CellGroupData[{ Cell[159864, 3518, 1184, 30, 73, "Subitem",ExpressionUUID->"930c362c-d1ef-43a3-91f0-cb8b01bfa1cb"], Cell[161051, 3550, 1805, 47, 196, "Input",ExpressionUUID->"2ce67ed9-02df-4ec6-af94-030fc72df438"], Cell[CellGroupData[{ Cell[162881, 3601, 1986, 50, 240, "Input",ExpressionUUID->"6c65320e-324a-4f9c-9d10-4475b1299752"], Cell[164870, 3653, 28892, 497, 419, "Output",ExpressionUUID->"09717438-1457-4dd3-bd11-ec8174c6bac1"] }, Open ]] }, Open ]] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[193835, 4158, 213, 4, 68, "Subsection",ExpressionUUID->"2c31f1d0-f44f-4e7f-b321-b936b6606000"], Cell[CellGroupData[{ Cell[194073, 4166, 236, 6, 40, "Item",ExpressionUUID->"c331b661-7b37-46aa-88b7-a1f182be73ae"], Cell[CellGroupData[{ Cell[194334, 4176, 259, 6, 34, "Subitem",ExpressionUUID->"99026b44-ae24-44c5-864f-800409ff9c62"], Cell[194596, 4184, 1651, 40, 194, "Input",ExpressionUUID->"cad7c7a5-2cfa-410f-aa10-21db9a31d7c3"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[196296, 4230, 290, 6, 40, "Item",ExpressionUUID->"b128696c-af3d-46e4-84e9-e441ce10f4c5"], Cell[196589, 4238, 674, 17, 88, "Input",ExpressionUUID->"5f5288df-7ff8-4845-9382-95d34e8f8405"], Cell[197266, 4257, 205, 4, 36, "Input",ExpressionUUID->"e36f0865-cd92-406d-ad68-6a2babc3be7d"], Cell[CellGroupData[{ Cell[197496, 4265, 960, 22, 113, "Input",ExpressionUUID->"75741205-f7a2-4aff-8f41-71831ba562c0"], Cell[198459, 4289, 260, 4, 59, "Output",ExpressionUUID->"ea65985d-29f1-4d7d-91b4-10c30f536457"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[198768, 4299, 343, 7, 40, "Item",ExpressionUUID->"40ef2c2f-943d-40d6-8e8f-9a7cbca83a9a"], Cell[CellGroupData[{ Cell[199136, 4310, 269, 6, 34, "Subitem",ExpressionUUID->"db782eff-f2ee-43c6-901a-0f4c3debf14e"], Cell[199408, 4318, 2481, 62, 366, "Input",ExpressionUUID->"122d0f92-abe0-47e9-8637-a2b810fe1802"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[201938, 4386, 235, 6, 40, "Item",ExpressionUUID->"0a3444bb-875e-46c3-83dd-5403b6432fd4"], Cell[202176, 4394, 993, 28, 164, "Input",ExpressionUUID->"460f8e2b-457d-4cdf-bde2-7e375d4aac3d"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[203218, 4428, 260, 4, 68, "Subsection",ExpressionUUID->"a3807d9c-e5f0-457b-b842-6d2eb5965edd"], Cell[CellGroupData[{ Cell[203503, 4436, 323, 7, 40, "Item",ExpressionUUID->"75fa4759-9632-4611-a46f-29f96b191a32"], Cell[CellGroupData[{ Cell[203851, 4447, 405, 8, 34, "Subitem",ExpressionUUID->"44ecafc4-64d5-412e-81ae-1a8d624fb2da"], Cell[204259, 4457, 2696, 64, 314, "Input",ExpressionUUID->"4740902a-f02a-442e-9118-0ad3a59a5b41"], Cell[206958, 4523, 674, 17, 88, "Input",ExpressionUUID->"0f56fcfa-39d1-473a-9a2a-ead64d92c994"], Cell[207635, 4542, 2076, 54, 205, "Input",ExpressionUUID->"969db3bc-f2c7-4143-8d70-110adfb1e2c9"], Cell[CellGroupData[{ Cell[209736, 4600, 1019, 22, 113, "Input",ExpressionUUID->"24140cd0-1e4b-4500-ad05-03712107b049"], Cell[210758, 4624, 186, 3, 59, "Output",ExpressionUUID->"83bc3bc5-d790-49fb-b9cd-1f2e95203603"] }, Open ]] }, Open ]] }, Open ]] }, Open ]] }, Open ]] }, Open ]] } ] *)