(* Content-type: application/mathematica *) (*** Wolfram Notebook File ***) (* http://www.wolfram.com/nb *) (* CreatedBy='Mathematica 7.0' *) (*CacheID: 234*) (* Internal cache information: NotebookFileLineBreakTest NotebookFileLineBreakTest NotebookDataPosition[ 145, 7] NotebookDataLength[ 67495, 1803] NotebookOptionsPosition[ 61658, 1631] NotebookOutlinePosition[ 62465, 1656] CellTagsIndexPosition[ 62422, 1653] WindowFrame->Normal*) (* Beginning of Notebook Content *) Notebook[{ Cell[CellGroupData[{ Cell["\<\ (* Finite Difference Example : 2D diffusion problem, based on *) (* \"Mathematica for Scientists and Engineers\", T.M.Bahder *) (* This case tries to set up ADI scheme and Tridiagonal solutions *) (* In this version (4) : *) (* set up tridiagonal matrices, one row at a time and solve *) BeginPackage[\"Diffusion2D`\",\"LinearAlgebra`Tridiagonal`\"] Diffusion2D::usage=\" Diffusion2D[x1_,x2_,y1_,y2_,U_,K_,A_,dT_,niterations_,ndisp_] Performs niterations of two-dimensional diffusion on an array U defined in rectangle (x1 < x < x2, y1 < y < y2), in steps of dT, \\n diffusion coefficient K[x_,y_], absorption A[x_,y_] are functions of two dimensional plane. Solution is displayed every ndisp iterations. Output is a set {U,grid} where U is final iteration and grid is sampling array\" Begin[\"`Private`\"] Diffusion2D[x1_,x2_,y1_,y2_,Uin_,K_Symbol,A_Symbol,dT_,niterations_Integer, ndisp_Integer] := Module[{xmin=N[x1],xmax=N[x2],ymin=N[y1],ymax=N[y2], hx,hy,u1,u1T,u2,kappa,mua}, npx= Length[Uin[[1]]]; npy = Length[Uin]; hx = (xmax - xmin)/(npx -1); hy = (ymax - ymin)/(npy -1); (* Tables in Mathematica are ordered by rows, then columns *) u1 = Uin; (* soln at time step n *) u1T = Table[0,{npx},{npy}]; (* Transpose of soln at time step n *) u2 = Table[0,{npy},{npx}]; (* soln at time step n+1/2 *) Uout = Table[0,{niterations},{npy},{npx}]; (* output everything *) Uout[[1]] = Uin; grid = Table[{xmin + (i-1)hx, ymin +(j-1)hy},{j,npy},{i,npx}]; mua = Table[A[grid[[j,i]][[1]],grid[[j,i]][[2]]],{j,npy},{i,npx}]; (* \ absorption *) kappa = Table[K[grid[[j,i]][[1]],grid[[j,i]][[2]]],{j,npy},{i,npx}]; (* \ diffusion *) (* I can't figure this one out *) (* mua = (A[#[[1]],#[[2]]])& /@ grid; *) (* absorption *) (* kappa = (K[#[[1]],#[[2]]])& /@ grid; *) (* diffusion *) Print[\"hx \",hx,\" hy \",hy,\" dT \",dT]; Do [ { Print[\"Iteration \",k]; (* Print[\"u1 : \",MatrixForm[u1]];*) (* solve time step n +1/2 in x *) Do [{ c = -dT/hx^2 Table[(kappa[[j,i+1]]-kappa[[j,i-1]])/8 +kappa[[j,i]]/2, {i,2,npx-1}] ; a = dT/hx^2 Table[(kappa[[j,i+1]]-kappa[[j,i-1]])/8 -kappa[[j,i]]/2, {i,2,npx-1}]; b = Table[1 + dT kappa[[j,i]]/hx^2 + dT mua[[j,i]]/2, {i,2,npx-1}]; s = Table[ u1[[j,i]] + dT/(8 hy^2)(kappa[[j+1,i]]-kappa[[j-1,i]])(u1[[j+1,i]]-u1[[j-1,i]])- dT/(2 hy^2)kappa[[j,i]](2 u1[[j,i]]-u1[[j-1,i]]-u1[[j+1,i]]) - dT mua[[j,i]] u1[[j,i]]/2, {i,2,npx-1} ]; soln = TridiagonalSolve[Drop[a,1],b,Drop[c,-1],s]; u2[[j]] = Flatten[Join[{0,soln,0}]]; },{j,2,npy-1}]; (*Print[MatrixForm[u2]];*) Print[\"Done time step 1/2\"]; (* solve time step n in y *) Do [{ c = -dT/hy^2 Table[(kappa[[j+1,i]]-kappa[[j-1,i]])/8 +kappa[[j,i]]/2, {j,2,npy-1}] ; a = dT/hy^2 Table[(kappa[[j+1,i]]-kappa[[j-1,i]])/8 -kappa[[j,i]]/2, {j,2,npy-1}]; b = Table[1 + dT kappa[[j,i]]/hy^2 + dT mua[[j,i]]/2, {j,2,npy-1}]; s = Table[ u2[[j,i]] + dT/(8 hx^2)(kappa[[j,i+1]]-kappa[[j,i-1]])(u2[[j,i+1]]-u2[[j,i-1]])- dT/(2 hx^2)kappa[[j,i]](2 u2[[j,i]]-u2[[j,i-1]]-u2[[j,i+1]]) - dT mua[[j,i]] u2[[j,i]]/2, {j,2,npy-1} ]; soln = TridiagonalSolve[Drop[a,1],b,Drop[c,-1],s]; u1T[[i]] = Flatten[Join[{0,soln,0}]]; },{i,2,npx-1}]; u1=Transpose[u1T]; Uout[[k]] = u1; (*Print[MatrixForm[u1]];*) Print[\"Done time step 1\"]; If[Mod[k,ndisp]==0,ListPlot3D[u1,PlotRange->All],0]; },{k,niterations}]; {Uout,grid,mua,kappa} (*final output *) ] (* EndModule *) End[] EndPackage[] \ \>", "Input", PageWidth->Infinity, InitializationCell->True, ShowSpecialCharacters->False], Cell[BoxData["\<\"Diffusion2D`\"\>"], "Output", CellChangeTimes->{{3.541221718086439*^9, 3.5412217181634436`*^9}}], Cell[BoxData["\<\"\\nDiffusion2D[x1_,x2_,y1_,y2_,U_,K_,A_,dT_,niterations_,\ ndisp_] \\nPerforms niterations of two-dimensional diffusion on an array U \ defined \\nin rectangle (x1 < x < x2, y1 < y < y2), in steps of dT, \ \\n\\ndiffusion coefficient K[x_,y_], absorption A[x_,y_] are functions \ of\\ntwo dimensional plane. Solution is displayed every ndisp iterations. \ Output \\nis a set {U,grid} where U is final iteration and grid is sampling \ array\"\>"], "Output", CellChangeTimes->{{3.541221718086439*^9, 3.541221718173444*^9}}], Cell[BoxData["\<\"Diffusion2D`Private`\"\>"], "Output", CellChangeTimes->{{3.541221718086439*^9, 3.5412217181824446`*^9}}], Cell[BoxData["\<\"Diffusion2D`Private`\"\>"], "Output", CellChangeTimes->{{3.541221718086439*^9, 3.5412217181914454`*^9}}] }, Open ]], Cell["\<\ ReadImage/: ReadImage[filename_, n_] := ReadList[filename, Table[Number, {n}]] DispIt/: DispIt[t_] := ListPlot3D[t, Lighting -> False, Mesh -> False, AspectRatio -> 3, ViewPoint -> {0, 0, -1000}, Axes -> False] DispIt/: DispIt[t_, a_] := ListPlot3D[t, Lighting -> False, Mesh -> False, AspectRatio -> a, ViewPoint -> {0, 0, -1000}, Axes -> False] EpsOut/: EpsOut[which_] := Display[\"!psfix -epsf > out.ps\", which] SetOptions[ListPlot, PlotJoined -> True]; \ \>", "Text", Evaluatable->True, ImageRegion->{{0, 1}, {0, 1}}], Cell[BoxData[ RowBox[{ RowBox[{"SetOptions", "::", "\<\"optnf\"\>"}], RowBox[{ ":", " "}], "\<\"\[NoBreak]\\!\\(\\*StyleBox[\\!\\(PlotJoined\\), \ \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\" is not a known option \ for \\\\\\\"\\\", \ \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\!\\(ListPlot\\), \\\"MT\\\"]\\)\ \[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\".\\\\\\\"\\\", \\\"MT\\\"]\\) \ \\!\\(\\*ButtonBox[\\\"\[RightSkeleton]\\\", ButtonStyle->\\\"Link\\\", \ ButtonFrame->None, ButtonData:>\\\"paclet:ref/message/SetOptions/optnf\\\", \ ButtonNote -> \\\"SetOptions::optnf\\\"]\\)\"\>"}]], "Message", "MSG", CellChangeTimes->{3.54122171844946*^9}], Cell[CellGroupData[{ Cell[BoxData[{ RowBox[{ RowBox[{"nptsx", " ", "=", " ", "64"}], ";"}], "\n", RowBox[{ RowBox[{"tmp", "=", RowBox[{"ReadImage", "[", RowBox[{"\"\\"", ",", "nptsx"}], "]"}]}], ";"}], "\n", RowBox[{ RowBox[{"nptsy", "=", RowBox[{"Length", "[", "tmp", "]"}]}], ";"}], "\n", RowBox[{ RowBox[{"imr", "=", "tmp"}], ";"}], "\n", RowBox[{ RowBox[{"For", "[", RowBox[{ RowBox[{"i", "=", "1"}], ",", RowBox[{"i", "\[LessEqual]", "nptsy"}], ",", RowBox[{"i", "++"}], ",", RowBox[{ RowBox[{"imr", "\[LeftDoubleBracket]", RowBox[{"nptsy", "+", "1", "-", "i"}], "\[RightDoubleBracket]"}], "=", RowBox[{ "tmp", "\[LeftDoubleBracket]", "i", "\[RightDoubleBracket]"}]}]}], "]"}], ";"}]}], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"ReadList", "::", "\<\"nffil\"\>"}], RowBox[{ ":", " "}], "\<\"\\!\\(\\*StyleBox[\\\"\\\\\\\"File not found during \\\\\\\ \"\\\", \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\!\\(ReadList[\\(\\(\\\"\ arridge.aim\\\", \\(\\({Number, Number, Number, Number, Number, Number, \ Number, Number, Number, Number, Number, Number, Number, Number, Number, \ Number, Number, Number, Number, Number, Number, Number, Number, Number, \ Number, Number, Number, Number, Number, Number, Number, Number, Number, \ Number, Number, Number, Number, Number, Number, Number, Number, Number, \ Number, Number, Number, Number, Number, Number, Number, Number, \\(\\(\ \[LeftSkeleton] 14 \[RightSkeleton]\\)\\)}\\)\\)\\)\\)]\\), \\\"MT\\\"]\\)\ \[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\".\\\\\\\"\\\", \\\"MT\\\"]\\) \ \\!\\(\\*ButtonBox[\\\"\[RightSkeleton]\\\", ButtonStyle->\\\"Link\\\", \ ButtonFrame->None, ButtonData:>\\\"paclet:ref/message/General/nffil\\\", \ ButtonNote -> \\\"ReadList::nffil\\\"]\\)\"\>"}]], "Message", "MSG", CellChangeTimes->{3.5412217185764675`*^9}] }, Open ]], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{"synthesise", " ", "a", " ", "simple", " ", "image"}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"nptsy", " ", "=", " ", "nptsx"}], ";"}], "\n", RowBox[{ RowBox[{"ims", "=", RowBox[{"Table", "[", RowBox[{ RowBox[{"Table", "[", RowBox[{ RowBox[{"150", " ", RowBox[{"Random", "[", "]"}]}], ",", RowBox[{"{", "nptsx", "}"}]}], "]"}], ",", RowBox[{"{", "nptsy", "}"}]}], "]"}]}], ";"}], "\n", RowBox[{ RowBox[{"ystart", "=", RowBox[{"Floor", "[", FractionBox["nptsy", "4"], "]"}]}], ";"}], "\n", RowBox[{ RowBox[{"xstart", "=", RowBox[{"Floor", "[", FractionBox["nptsx", "4"], "]"}]}], ";"}], "\n", RowBox[{ RowBox[{"yw", "=", RowBox[{"Floor", "[", FractionBox["nptsy", "4"], "]"}]}], ";"}], "\n", RowBox[{ RowBox[{"xw", "=", RowBox[{"Floor", "[", FractionBox["nptsx", "4"], "]"}]}], ";"}], "\n", RowBox[{ RowBox[{"ycen", "=", RowBox[{"Floor", "[", FractionBox[ RowBox[{"3", " ", "nptsy"}], "4"], "]"}]}], ";"}], "\n", RowBox[{ RowBox[{"xcen", "=", RowBox[{"Floor", "[", FractionBox[ RowBox[{"3", " ", "nptsx"}], "4"], "]"}]}], ";"}], "\n", RowBox[{ RowBox[{"For", "[", RowBox[{ RowBox[{"m", "=", "1"}], ",", RowBox[{"m", "\[LessEqual]", "nptsy"}], ",", RowBox[{"m", "++"}], ",", RowBox[{"For", "[", RowBox[{ RowBox[{"n", "=", "1"}], ",", RowBox[{"n", "\[LessEqual]", "nptsx"}], ",", RowBox[{"n", "++"}], ",", RowBox[{ RowBox[{ RowBox[{"ims", "\[LeftDoubleBracket]", RowBox[{"m", ",", "n"}], "\[RightDoubleBracket]"}], "+=", RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{"m", "-", "ycen"}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{"n", "-", "xcen"}], ")"}], "2"]}], "<", RowBox[{"0.8", " ", SuperscriptBox["xw", "2"]}]}], ",", "200", ",", "0"}], "]"}]}], ";"}]}], "]"}]}], "]"}], ";"}], "\n", RowBox[{ RowBox[{"For", "[", RowBox[{ RowBox[{"m", "=", "1"}], ",", RowBox[{"m", "\[LessEqual]", "yw"}], ",", RowBox[{"m", "++"}], ",", RowBox[{"For", "[", RowBox[{ RowBox[{"n", "=", "1"}], ",", RowBox[{"n", "\[LessEqual]", "xw"}], ",", RowBox[{"n", "++"}], ",", RowBox[{ RowBox[{"ims", "\[LeftDoubleBracket]", RowBox[{ RowBox[{"ystart", "+", "m"}], ",", RowBox[{"xstart", "+", "n"}]}], "\[RightDoubleBracket]"}], "+=", "100"}]}], "]"}]}], "]"}], ";"}], "\[IndentingNewLine]"}]}]], "Input",\ CellChangeTimes->{{3.541221756087613*^9, 3.541221761934947*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{"use", " ", "synthetic", " ", "image"}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"im", " ", "=", " ", "ims"}], ";"}]}]], "Input"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"ListDensityPlot", "[", RowBox[{"im", ",", RowBox[{"Mesh", "\[Rule]", "False"}]}], "]"}], ";"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"ListDensityPlot", "::", "\<\"arrayerr\"\>"}], RowBox[{ ":", " "}], "\<\"\[NoBreak]\\!\\(\\*StyleBox[\\!\\({}\\), \\\"MT\\\"]\\)\ \[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\" must be a valid array.\\\\\\\"\\\", \ \\\"MT\\\"]\\) \\!\\(\\*ButtonBox[\\\"\[RightSkeleton]\\\", \ ButtonStyle->\\\"Link\\\", ButtonFrame->None, \ ButtonData:>\\\"paclet:ref/ListDensityPlot\\\", ButtonNote -> \ \\\"ListDensityPlot::arrayerr\\\"]\\)\"\>"}]], "Message", "MSG", CellChangeTimes->{3.541221718768478*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[{ RowBox[{ RowBox[{ RowBox[{ RowBox[{"K", "[", RowBox[{"x_", ",", "y_"}], "]"}], ":=", "1"}], ";"}], " ", RowBox[{"(*", RowBox[{ "these", " ", "functions", " ", "are", " ", "constant", " ", "here", " ", "but", " ", "could", " ", "be"}], "*)"}]}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{ RowBox[{"A", "[", RowBox[{"x_", ",", "y_"}], "]"}], ":=", "0.001"}], ";"}], RowBox[{"(*", RowBox[{"spatially", " ", "varying"}], "*)"}]}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{"imdiff", ",", "grid", ",", "mua", ",", "kappa"}], "}"}], " ", "=", " ", RowBox[{"Diffusion2D", "[", RowBox[{ "0", ",", "63", ",", "0", ",", "63", ",", "im", ",", "K", ",", "A", ",", "1", ",", "5", ",", "12"}], "]"}]}], ";"}]}], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"Part", "::", "\<\"partw\"\>"}], RowBox[{ ":", " "}], "\<\"\\!\\(\\*StyleBox[\\\"\\\\\\\"Part \\\\\\\"\\\", \ \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\!\\(1\\), \ \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\" of \\\\\\\"\\\", \ \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\!\\({}\\), \\\"MT\\\"]\\)\ \[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\" does not exist.\\\\\\\"\\\", \ \\\"MT\\\"]\\) \\!\\(\\*ButtonBox[\\\"\[RightSkeleton]\\\", \ ButtonStyle->\\\"Link\\\", ButtonFrame->None, \ ButtonData:>\\\"paclet:ref/message/General/partw\\\", ButtonNote -> \ \\\"Part::partw\\\"]\\)\"\>"}]], "Message", "MSG", CellChangeTimes->{3.541221718832482*^9}], Cell[CellGroupData[{ Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"hx \"\>", "\[InvisibleSpace]", "63.`", "\[InvisibleSpace]", "\<\" hy \"\>", "\[InvisibleSpace]", RowBox[{"-", "63.`"}], "\[InvisibleSpace]", "\<\" dT \"\>", "\[InvisibleSpace]", "1"}], SequenceForm["hx ", 63., " hy ", -63., " dT ", 1], Editable->False]], "Print", CellChangeTimes->{3.5412217188354816`*^9}], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"Iteration \"\>", "\[InvisibleSpace]", "1"}], SequenceForm["Iteration ", 1], Editable->False]], "Print", CellChangeTimes->{3.541221718837482*^9}], Cell[BoxData["\<\"Done time step 1/2\"\>"], "Print", CellChangeTimes->{3.5412217188394823`*^9}], Cell[BoxData["\<\"Done time step 1\"\>"], "Print", CellChangeTimes->{3.541221718841482*^9}], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"Iteration \"\>", "\[InvisibleSpace]", "2"}], SequenceForm["Iteration ", 2], Editable->False]], "Print", CellChangeTimes->{3.5412217188434825`*^9}], Cell[BoxData["\<\"Done time step 1/2\"\>"], "Print", CellChangeTimes->{3.5412217188464823`*^9}], Cell[BoxData["\<\"Done time step 1\"\>"], "Print", CellChangeTimes->{3.541221718848483*^9}], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"Iteration \"\>", "\[InvisibleSpace]", "3"}], SequenceForm["Iteration ", 3], Editable->False]], "Print", CellChangeTimes->{3.541221718851483*^9}], Cell[BoxData["\<\"Done time step 1/2\"\>"], "Print", CellChangeTimes->{3.541221718853483*^9}], Cell[BoxData["\<\"Done time step 1\"\>"], "Print", CellChangeTimes->{3.541221718855483*^9}], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"Iteration \"\>", "\[InvisibleSpace]", "4"}], SequenceForm["Iteration ", 4], Editable->False]], "Print", CellChangeTimes->{3.541221718857483*^9}], Cell[BoxData["\<\"Done time step 1/2\"\>"], "Print", CellChangeTimes->{3.541221718860483*^9}], Cell[BoxData["\<\"Done time step 1\"\>"], "Print", CellChangeTimes->{3.5412217188624835`*^9}], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"Iteration \"\>", "\[InvisibleSpace]", "5"}], SequenceForm["Iteration ", 5], Editable->False]], "Print", CellChangeTimes->{3.5412217188654833`*^9}], Cell[BoxData["\<\"Done time step 1/2\"\>"], "Print", CellChangeTimes->{3.541221718867484*^9}], Cell[BoxData["\<\"Done time step 1\"\>"], "Print", CellChangeTimes->{3.541221718869484*^9}] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"For", "[", RowBox[{ RowBox[{"i", " ", "=", " ", "1"}], ",", " ", RowBox[{"i", " ", "<", " ", RowBox[{"Length", "[", "imdiff", "]"}]}], ",", RowBox[{"i", "++"}], ",", "\[IndentingNewLine]", RowBox[{"ListDensityPlot", "[", RowBox[{ RowBox[{"imdiff", "[", RowBox[{"[", "i", "]"}], "]"}], ",", RowBox[{"Mesh", "\[Rule]", "False"}]}], "]"}]}], "\[IndentingNewLine]", "]"}], ";"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"ListDensityPlot", "::", "\<\"arrayerr\"\>"}], RowBox[{ ":", " "}], "\<\"\[NoBreak]\\!\\(\\*StyleBox[\\!\\({}\\), \\\"MT\\\"]\\)\ \[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\" must be a valid array.\\\\\\\"\\\", \ \\\"MT\\\"]\\) \\!\\(\\*ButtonBox[\\\"\[RightSkeleton]\\\", \ ButtonStyle->\\\"Link\\\", ButtonFrame->None, \ ButtonData:>\\\"paclet:ref/ListDensityPlot\\\", ButtonNote -> \ \\\"ListDensityPlot::arrayerr\\\"]\\)\"\>"}]], "Message", "MSG", CellChangeTimes->{3.5412217189344873`*^9}], Cell[BoxData[ RowBox[{ RowBox[{"ListDensityPlot", "::", "\<\"arrayerr\"\>"}], RowBox[{ ":", " "}], "\<\"\[NoBreak]\\!\\(\\*StyleBox[\\!\\({}\\), \\\"MT\\\"]\\)\ \[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\" must be a valid array.\\\\\\\"\\\", \ \\\"MT\\\"]\\) \\!\\(\\*ButtonBox[\\\"\[RightSkeleton]\\\", \ ButtonStyle->\\\"Link\\\", ButtonFrame->None, \ ButtonData:>\\\"paclet:ref/ListDensityPlot\\\", ButtonNote -> \ \\\"ListDensityPlot::arrayerr\\\"]\\)\"\>"}]], "Message", "MSG", CellChangeTimes->{3.5412217189354877`*^9}], Cell[BoxData[ RowBox[{ RowBox[{"ListDensityPlot", "::", "\<\"arrayerr\"\>"}], RowBox[{ ":", " "}], "\<\"\[NoBreak]\\!\\(\\*StyleBox[\\!\\({}\\), \\\"MT\\\"]\\)\ \[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\" must be a valid array.\\\\\\\"\\\", \ \\\"MT\\\"]\\) \\!\\(\\*ButtonBox[\\\"\[RightSkeleton]\\\", \ ButtonStyle->\\\"Link\\\", ButtonFrame->None, \ ButtonData:>\\\"paclet:ref/ListDensityPlot\\\", ButtonNote -> \ \\\"ListDensityPlot::arrayerr\\\"]\\)\"\>"}]], "Message", "MSG", CellChangeTimes->{3.5412217189364877`*^9}], Cell[BoxData[ RowBox[{ RowBox[{"General", "::", "\<\"stop\"\>"}], RowBox[{ ":", " "}], "\<\"\\!\\(\\*StyleBox[\\\"\\\\\\\"Further output of \\\\\\\"\\\ \", \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\!\\(ListDensityPlot :: \ \\\"arrayerr\\\"\\), \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\" \ will be suppressed during this calculation.\\\\\\\"\\\", \\\"MT\\\"]\\) \ \\!\\(\\*ButtonBox[\\\"\[RightSkeleton]\\\", ButtonStyle->\\\"Link\\\", \ ButtonFrame->None, ButtonData:>\\\"paclet:ref/message/General/stop\\\", \ ButtonNote -> \\\"General::stop\\\"]\\)\"\>"}]], "Message", "MSG", CellChangeTimes->{3.5412217189374876`*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[{ RowBox[{ RowBox[{ RowBox[{ RowBox[{"K", "[", RowBox[{"x_", ",", "y_"}], "]"}], ":=", RowBox[{"0.5", " ", RowBox[{"(", RowBox[{"1", " ", "+", " ", RowBox[{ RowBox[{"Cos", "[", " ", RowBox[{"2", " ", "Pi", " ", RowBox[{"x", "/", "64"}]}], "]"}], " ", RowBox[{"Sin", "[", RowBox[{"Pi", " ", RowBox[{"y", "/", "64"}]}], "]"}]}]}], ")"}]}]}], ";"}], " "}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"A", "[", RowBox[{"x_", ",", "y_"}], "]"}], ":=", "0.00001"}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{"imdiffa", ",", "grid", ",", "mua", ",", "kappa"}], "}"}], " ", "=", " ", RowBox[{"Diffusion2D", "[", RowBox[{ "0", ",", "63", ",", "0", ",", "63", ",", "im", ",", "K", ",", "A", ",", "1", ",", "5", ",", "12"}], "]"}]}], ";"}]}], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"Part", "::", "\<\"partw\"\>"}], RowBox[{ ":", " "}], "\<\"\\!\\(\\*StyleBox[\\\"\\\\\\\"Part \\\\\\\"\\\", \ \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\!\\(1\\), \ \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\" of \\\\\\\"\\\", \ \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\!\\({}\\), \\\"MT\\\"]\\)\ \[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\" does not exist.\\\\\\\"\\\", \ \\\"MT\\\"]\\) \\!\\(\\*ButtonBox[\\\"\[RightSkeleton]\\\", \ ButtonStyle->\\\"Link\\\", ButtonFrame->None, \ ButtonData:>\\\"paclet:ref/message/General/partw\\\", ButtonNote -> \ \\\"Part::partw\\\"]\\)\"\>"}]], "Message", "MSG", CellChangeTimes->{3.541221719033493*^9}], Cell[CellGroupData[{ Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"hx \"\>", "\[InvisibleSpace]", "63.`", "\[InvisibleSpace]", "\<\" hy \"\>", "\[InvisibleSpace]", RowBox[{"-", "63.`"}], "\[InvisibleSpace]", "\<\" dT \"\>", "\[InvisibleSpace]", "1"}], SequenceForm["hx ", 63., " hy ", -63., " dT ", 1], Editable->False]], "Print", CellChangeTimes->{3.5412217190354934`*^9}], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"Iteration \"\>", "\[InvisibleSpace]", "1"}], SequenceForm["Iteration ", 1], Editable->False]], "Print", CellChangeTimes->{3.5412217190354934`*^9}], Cell[BoxData["\<\"Done time step 1/2\"\>"], "Print", CellChangeTimes->{3.5412217190374937`*^9}], Cell[BoxData["\<\"Done time step 1\"\>"], "Print", CellChangeTimes->{3.5412217190384936`*^9}], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"Iteration \"\>", "\[InvisibleSpace]", "2"}], SequenceForm["Iteration ", 2], Editable->False]], "Print", CellChangeTimes->{3.5412217190394936`*^9}], Cell[BoxData["\<\"Done time step 1/2\"\>"], "Print", CellChangeTimes->{3.5412217190404935`*^9}], Cell[BoxData["\<\"Done time step 1\"\>"], "Print", CellChangeTimes->{3.541221719042494*^9}], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"Iteration \"\>", "\[InvisibleSpace]", "3"}], SequenceForm["Iteration ", 3], Editable->False]], "Print", CellChangeTimes->{3.541221719043494*^9}], Cell[BoxData["\<\"Done time step 1/2\"\>"], "Print", CellChangeTimes->{3.5412217190444937`*^9}], Cell[BoxData["\<\"Done time step 1\"\>"], "Print", CellChangeTimes->{3.541221719045494*^9}], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"Iteration \"\>", "\[InvisibleSpace]", "4"}], SequenceForm["Iteration ", 4], Editable->False]], "Print", CellChangeTimes->{3.541221719047494*^9}], Cell[BoxData["\<\"Done time step 1/2\"\>"], "Print", CellChangeTimes->{3.5412217190484943`*^9}], Cell[BoxData["\<\"Done time step 1\"\>"], "Print", CellChangeTimes->{3.5412217190494943`*^9}], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"Iteration \"\>", "\[InvisibleSpace]", "5"}], SequenceForm["Iteration ", 5], Editable->False]], "Print", CellChangeTimes->{3.5412217190514946`*^9}], Cell[BoxData["\<\"Done time step 1/2\"\>"], "Print", CellChangeTimes->{3.541221719052494*^9}], Cell[BoxData["\<\"Done time step 1\"\>"], "Print", CellChangeTimes->{3.5412217190534945`*^9}] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"ListDensityPlot", "[", RowBox[{"kappa", ",", RowBox[{"Mesh", "\[Rule]", "False"}]}], "]"}], ";"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"ListDensityPlot", "::", "\<\"arrayerr\"\>"}], RowBox[{ ":", " "}], "\<\"\[NoBreak]\\!\\(\\*StyleBox[\\!\\({}\\), \\\"MT\\\"]\\)\ \[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\" must be a valid array.\\\\\\\"\\\", \ \\\"MT\\\"]\\) \\!\\(\\*ButtonBox[\\\"\[RightSkeleton]\\\", \ ButtonStyle->\\\"Link\\\", ButtonFrame->None, \ ButtonData:>\\\"paclet:ref/ListDensityPlot\\\", ButtonNote -> \ \\\"ListDensityPlot::arrayerr\\\"]\\)\"\>"}]], "Message", "MSG", CellChangeTimes->{3.5412217190864964`*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"For", "[", RowBox[{ RowBox[{"i", " ", "=", " ", "1"}], ",", " ", RowBox[{"i", " ", "<", " ", RowBox[{"Length", "[", "imdiffa", "]"}]}], ",", RowBox[{"i", "++"}], ",", "\[IndentingNewLine]", RowBox[{"ListDensityPlot", "[", RowBox[{ RowBox[{"imdiffa", "[", RowBox[{"[", "i", "]"}], "]"}], ",", RowBox[{"Mesh", "\[Rule]", "False"}]}], "]"}]}], "\[IndentingNewLine]", "]"}], ";"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"ListDensityPlot", "::", "\<\"arrayerr\"\>"}], RowBox[{ ":", " "}], "\<\"\[NoBreak]\\!\\(\\*StyleBox[\\!\\({}\\), \\\"MT\\\"]\\)\ \[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\" must be a valid array.\\\\\\\"\\\", \ \\\"MT\\\"]\\) \\!\\(\\*ButtonBox[\\\"\[RightSkeleton]\\\", \ ButtonStyle->\\\"Link\\\", ButtonFrame->None, \ ButtonData:>\\\"paclet:ref/ListDensityPlot\\\", ButtonNote -> \ \\\"ListDensityPlot::arrayerr\\\"]\\)\"\>"}]], "Message", "MSG", CellChangeTimes->{3.5412217191495*^9}], Cell[BoxData[ RowBox[{ RowBox[{"ListDensityPlot", "::", "\<\"arrayerr\"\>"}], RowBox[{ ":", " "}], "\<\"\[NoBreak]\\!\\(\\*StyleBox[\\!\\({}\\), \\\"MT\\\"]\\)\ \[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\" must be a valid array.\\\\\\\"\\\", \ \\\"MT\\\"]\\) \\!\\(\\*ButtonBox[\\\"\[RightSkeleton]\\\", \ ButtonStyle->\\\"Link\\\", ButtonFrame->None, \ ButtonData:>\\\"paclet:ref/ListDensityPlot\\\", ButtonNote -> \ \\\"ListDensityPlot::arrayerr\\\"]\\)\"\>"}]], "Message", "MSG", CellChangeTimes->{3.5412217191514997`*^9}], Cell[BoxData[ RowBox[{ RowBox[{"ListDensityPlot", "::", "\<\"arrayerr\"\>"}], RowBox[{ ":", " "}], "\<\"\[NoBreak]\\!\\(\\*StyleBox[\\!\\({}\\), \\\"MT\\\"]\\)\ \[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\" must be a valid array.\\\\\\\"\\\", \ \\\"MT\\\"]\\) \\!\\(\\*ButtonBox[\\\"\[RightSkeleton]\\\", \ ButtonStyle->\\\"Link\\\", ButtonFrame->None, \ ButtonData:>\\\"paclet:ref/ListDensityPlot\\\", ButtonNote -> \ \\\"ListDensityPlot::arrayerr\\\"]\\)\"\>"}]], "Message", "MSG", CellChangeTimes->{3.5412217191525*^9}], Cell[BoxData[ RowBox[{ RowBox[{"General", "::", "\<\"stop\"\>"}], RowBox[{ ":", " "}], "\<\"\\!\\(\\*StyleBox[\\\"\\\\\\\"Further output of \\\\\\\"\\\ \", \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\!\\(ListDensityPlot :: \ \\\"arrayerr\\\"\\), \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\" \ will be suppressed during this calculation.\\\\\\\"\\\", \\\"MT\\\"]\\) \ \\!\\(\\*ButtonBox[\\\"\[RightSkeleton]\\\", ButtonStyle->\\\"Link\\\", \ ButtonFrame->None, ButtonData:>\\\"paclet:ref/message/General/stop\\\", \ ButtonNote -> \\\"General::stop\\\"]\\)\"\>"}]], "Message", "MSG", CellChangeTimes->{3.5412217191535*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[{ RowBox[{ RowBox[{"g1", " ", "=", RowBox[{"ListPlot", "[", RowBox[{ RowBox[{"imdiff", "[", RowBox[{"[", RowBox[{"5", ",", "32"}], "]"}], "]"}], ",", RowBox[{"PlotJoined", "\[Rule]", "True"}], ",", RowBox[{"DisplayFunction", "\[Rule]", "Identity"}]}], "]"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"g2", "=", " ", RowBox[{"ListPlot", "[", RowBox[{ RowBox[{"imdiffa", "[", RowBox[{"[", RowBox[{"5", ",", "32"}], "]"}], "]"}], ",", RowBox[{"PlotJoined", "\[Rule]", "True"}], ",", RowBox[{"PlotStyle", "\[Rule]", RowBox[{"{", RowBox[{"RGBColor", "[", RowBox[{"1", ",", "0", ",", "0"}], "]"}], "}"}]}], ",", RowBox[{"DisplayFunction", "\[Rule]", "Identity"}]}], "]"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"Show", "[", RowBox[{"g1", ",", "g2", ",", RowBox[{"DisplayFunction", "\[Rule]", "$DisplayFunction"}]}], "]"}], ";"}]}], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"Part", "::", "\<\"partw\"\>"}], RowBox[{ ":", " "}], "\<\"\\!\\(\\*StyleBox[\\\"\\\\\\\"Part \\\\\\\"\\\", \ \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\!\\(32\\), \\\"MT\\\"]\\)\ \[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\" of \\\\\\\"\\\", \\\"MT\\\"]\\)\ \[NoBreak]\\!\\(\\*StyleBox[\\!\\({}\\), \ \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\" does not \ exist.\\\\\\\"\\\", \\\"MT\\\"]\\) \ \\!\\(\\*ButtonBox[\\\"\[RightSkeleton]\\\", ButtonStyle->\\\"Link\\\", \ ButtonFrame->None, ButtonData:>\\\"paclet:ref/message/General/partw\\\", \ ButtonNote -> \\\"Part::partw\\\"]\\)\"\>"}]], "Message", "MSG", CellChangeTimes->{3.5412217191945024`*^9}], Cell[BoxData[ RowBox[{ RowBox[{"ListLinePlot", "::", "\<\"lpn\"\>"}], RowBox[{ ":", " "}], "\<\"\[NoBreak]\\!\\(\\*StyleBox[\\!\\(\\(\\({\\(\\({}\\)\\), \ \\(\\({}\\)\\), \\(\\({}\\)\\), \\(\\({}\\)\\), \\(\\({}\\)\\)}\\)\\) \ \[LeftDoubleBracket] \\(\\(5, 32\\)\\) \[RightDoubleBracket]\\), \ \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\" is not a list of \ numbers or pairs of numbers.\\\\\\\"\\\", \\\"MT\\\"]\\) \ \\!\\(\\*ButtonBox[\\\"\[RightSkeleton]\\\", ButtonStyle->\\\"Link\\\", \ ButtonFrame->None, ButtonData:>\\\"paclet:ref/ListLinePlot\\\", ButtonNote -> \ \\\"ListLinePlot::lpn\\\"]\\)\"\>"}]], "Message", "MSG", CellChangeTimes->{3.541221719275507*^9}], Cell[BoxData[ RowBox[{ RowBox[{"Part", "::", "\<\"partw\"\>"}], RowBox[{ ":", " "}], "\<\"\\!\\(\\*StyleBox[\\\"\\\\\\\"Part \\\\\\\"\\\", \ \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\!\\(32\\), \\\"MT\\\"]\\)\ \[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\" of \\\\\\\"\\\", \\\"MT\\\"]\\)\ \[NoBreak]\\!\\(\\*StyleBox[\\!\\({}\\), \ \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\" does not \ exist.\\\\\\\"\\\", \\\"MT\\\"]\\) \ \\!\\(\\*ButtonBox[\\\"\[RightSkeleton]\\\", ButtonStyle->\\\"Link\\\", \ ButtonFrame->None, ButtonData:>\\\"paclet:ref/message/General/partw\\\", \ ButtonNote -> \\\"Part::partw\\\"]\\)\"\>"}]], "Message", "MSG", CellChangeTimes->{3.5412217192835073`*^9}], Cell[BoxData[ RowBox[{ RowBox[{"ListLinePlot", "::", "\<\"lpn\"\>"}], RowBox[{ ":", " "}], "\<\"\[NoBreak]\\!\\(\\*StyleBox[\\!\\(\\(\\({\\(\\({}\\)\\), \ \\(\\({}\\)\\), \\(\\({}\\)\\), \\(\\({}\\)\\), \\(\\({}\\)\\)}\\)\\) \ \[LeftDoubleBracket] \\(\\(5, 32\\)\\) \[RightDoubleBracket]\\), \ \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\" is not a list of \ numbers or pairs of numbers.\\\\\\\"\\\", \\\"MT\\\"]\\) \ \\!\\(\\*ButtonBox[\\\"\[RightSkeleton]\\\", ButtonStyle->\\\"Link\\\", \ ButtonFrame->None, ButtonData:>\\\"paclet:ref/ListLinePlot\\\", ButtonNote -> \ \\\"ListLinePlot::lpn\\\"]\\)\"\>"}]], "Message", "MSG", CellChangeTimes->{3.541221719287508*^9}], Cell[BoxData[ RowBox[{ RowBox[{"Part", "::", "\<\"partw\"\>"}], RowBox[{ ":", " "}], "\<\"\\!\\(\\*StyleBox[\\\"\\\\\\\"Part \\\\\\\"\\\", \ \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\!\\(32\\), \\\"MT\\\"]\\)\ \[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\" of \\\\\\\"\\\", \\\"MT\\\"]\\)\ \[NoBreak]\\!\\(\\*StyleBox[\\!\\({}\\), \ \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\" does not \ exist.\\\\\\\"\\\", \\\"MT\\\"]\\) \ \\!\\(\\*ButtonBox[\\\"\[RightSkeleton]\\\", ButtonStyle->\\\"Link\\\", \ ButtonFrame->None, ButtonData:>\\\"paclet:ref/message/General/partw\\\", \ ButtonNote -> \\\"Part::partw\\\"]\\)\"\>"}]], "Message", "MSG", CellChangeTimes->{3.5412217192915077`*^9}], Cell[BoxData[ RowBox[{ RowBox[{"ListLinePlot", "::", "\<\"lpn\"\>"}], RowBox[{ ":", " "}], "\<\"\[NoBreak]\\!\\(\\*StyleBox[\\!\\(\\(\\({\\(\\({}\\)\\), \ \\(\\({}\\)\\), \\(\\({}\\)\\), \\(\\({}\\)\\), \\(\\({}\\)\\)}\\)\\) \ \[LeftDoubleBracket] \\(\\(5, 32\\)\\) \[RightDoubleBracket]\\), \ \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\" is not a list of \ numbers or pairs of numbers.\\\\\\\"\\\", \\\"MT\\\"]\\) \ \\!\\(\\*ButtonBox[\\\"\[RightSkeleton]\\\", ButtonStyle->\\\"Link\\\", \ ButtonFrame->None, ButtonData:>\\\"paclet:ref/ListLinePlot\\\", ButtonNote -> \ \\\"ListLinePlot::lpn\\\"]\\)\"\>"}]], "Message", "MSG", CellChangeTimes->{3.5412217192955084`*^9}], Cell[BoxData[ RowBox[{ RowBox[{"Show", "::", "\<\"gcomb\"\>"}], RowBox[{ ":", " "}], "\<\"\\!\\(\\*StyleBox[\\\"\\\\\\\"Could not combine the \ graphics objects in \\\\\\\"\\\", \ \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\!\\(Show[\\(\\(\\(\\(ListPlot[\\(\ \\(\\(\\(\\(\\({\\(\\({}\\)\\), \\(\\({}\\)\\), \\(\\({}\\)\\), \ \\(\\({}\\)\\), \\(\\({}\\)\\)}\\)\\) \[LeftDoubleBracket] \\(\\(5, 32\\)\\) \ \[RightDoubleBracket]\\)\\), \\(\\(PlotJoined \[Rule] True\\)\\), \ \\(\\(DisplayFunction \[Rule] Identity\\)\\)\\)\\)]\\)\\), \\(\\(ListPlot[\\(\ \\(\\(\\(\\(\\({\\(\\({}\\)\\), \\(\\({}\\)\\), \\(\\({}\\)\\), \ \\(\\({}\\)\\), \\(\\({}\\)\\)}\\)\\) \[LeftDoubleBracket] \\(\\(5, 32\\)\\) \ \[RightDoubleBracket]\\)\\), \\(\\(PlotJoined \[Rule] True\\)\\), \ \\(\\(PlotStyle \[Rule] \\(\\({\\(RGBColor[\\(\\(1, 0, \ 0\\)\\)]\\)}\\)\\)\\)\\), \\(\\(DisplayFunction \[Rule] Identity\\)\\)\\)\\)]\ \\)\\), \\(\\(DisplayFunction \[Rule] Identity\\)\\)\\)\\)]\\), \ \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\".\\\\\\\"\\\", \\\"MT\\\ \"]\\) \\!\\(\\*ButtonBox[\\\"\[RightSkeleton]\\\", \ ButtonStyle->\\\"Link\\\", ButtonFrame->None, \ ButtonData:>\\\"paclet:ref/message/Show/gcomb\\\", ButtonNote -> \ \\\"Show::gcomb\\\"]\\)\"\>"}]], "Message", "MSG", CellChangeTimes->{3.5412217193505116`*^9}] }, Open ]], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ RowBox[{"Form", " ", "diffusion", " ", "through", " ", "Perona"}], "-", RowBox[{"Malik", " ", "scheme"}]}], " ", "*)"}], "\[IndentingNewLine]"}]], "Input"], Cell[BoxData[{ RowBox[{ RowBox[{"G", "[", RowBox[{"x_", ",", "s_"}], "]"}], ":=", FractionBox[ SuperscriptBox["\[ExponentialE]", RowBox[{"-", FractionBox[ SuperscriptBox["x", "2"], RowBox[{"2", " ", SuperscriptBox["s", "2"]}]]}]], SqrtBox[ RowBox[{"2", " ", "\[Pi]"}]]]}], "\n", RowBox[{ RowBox[{"Gx", "[", RowBox[{"x_", ",", "s_"}], "]"}], ":=", RowBox[{ RowBox[{ SubscriptBox["\[PartialD]", "xx"], RowBox[{"G", "[", RowBox[{"xx", ",", "s"}], "]"}]}], "/.", "\[InvisibleSpace]", RowBox[{"xx", "\[Rule]", "x"}]}]}], "\n", RowBox[{ RowBox[{"Gxx", "[", RowBox[{"x_", ",", "s_"}], "]"}], ":=", RowBox[{ RowBox[{ SubscriptBox["\[PartialD]", RowBox[{"{", RowBox[{"xx", ",", "2"}], "}"}]], RowBox[{"G", "[", RowBox[{"xx", ",", "s"}], "]"}]}], "/.", "\[InvisibleSpace]", RowBox[{"xx", "\[Rule]", "x"}]}]}]}], "Input", ImageRegion->{{0, 1}, {0, 1}}], Cell[BoxData[ RowBox[{ RowBox[{"(*", RowBox[{ RowBox[{ "**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**", "**"}], "*", "\[IndentingNewLine]", "Now", " ", "the", " ", "Fourier", " ", "Versions"}], " ", "\[IndentingNewLine]", "*******************************************************)"}], RowBox[{"(*", " ", RowBox[{ "this", " ", "function", " ", "rotates", " ", "quadrants", " ", "of", " ", "an", " ", "image"}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{ RowBox[{"RotImage", "[", "im_", "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{"nptsx", ",", "nptsy"}], "}"}], ",", RowBox[{ RowBox[{"nptsy", "=", RowBox[{"Length", "[", "im", "]"}]}], ";", RowBox[{"nptsx", "=", RowBox[{"Length", "[", RowBox[{ "im", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], "]"}]}], ";", RowBox[{"RotateLeft", "[", RowBox[{ RowBox[{"Transpose", "[", RowBox[{"RotateLeft", "[", RowBox[{ RowBox[{"Transpose", "[", "im", "]"}], ",", RowBox[{"Floor", "[", RowBox[{ FractionBox["nptsx", "2"], "+", "1"}], "]"}]}], "]"}], "]"}], ",", RowBox[{"Floor", "[", RowBox[{ FractionBox["nptsy", "2"], "+", "1"}], "]"}]}], "]"}]}]}], "]"}]}], "\[IndentingNewLine]"}], RowBox[{"(*", " ", RowBox[{"inverse", " ", "of", " ", "the", " ", "above"}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"IRotImage", "[", "im_", "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{"nptsx", ",", "nptsy"}], "}"}], ",", RowBox[{ RowBox[{"nptsy", "=", RowBox[{"Length", "[", "im", "]"}]}], ";", RowBox[{"nptsx", "=", RowBox[{"Length", "[", RowBox[{"im", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], "]"}]}], ";", RowBox[{"RotateRight", "[", RowBox[{ RowBox[{"Transpose", "[", RowBox[{"RotateRight", "[", RowBox[{ RowBox[{"Transpose", "[", "im", "]"}], ",", RowBox[{"Floor", "[", RowBox[{ FractionBox["nptsx", "2"], "+", "1"}], "]"}]}], "]"}], "]"}], ",", RowBox[{"Floor", "[", RowBox[{ FractionBox["nptsy", "2"], "+", "1"}], "]"}]}], "]"}]}]}], "]"}]}]}]}]], "Input", ImageRegion->{{0, 1}, {0, 1}}], Cell[CellGroupData[{ Cell[BoxData[{ RowBox[{ RowBox[{"fim", "=", RowBox[{"Fourier", "[", "im", "]"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"ycen", " ", "=", " ", RowBox[{"nptsy", "/", "2"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{ RowBox[{"xcen", " ", "=", " ", RowBox[{"nptsx", "/", "2"}]}], ";"}], "\[IndentingNewLine]"}], RowBox[{"(*", " ", RowBox[{"Repeat", " ", "at", " ", "larger", " ", "scale"}], " ", "*)"}]}], "\[IndentingNewLine]", RowBox[{ RowBox[{"sx", " ", "=", " ", "2.5"}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"sy", " ", "=", " ", "2.5"}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"fGh", "=", " ", RowBox[{"Table", "[", RowBox[{"0", ",", RowBox[{"{", "nptsx", "}"}]}], "]"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"fGv", "=", " ", RowBox[{"Table", "[", RowBox[{"0", ",", RowBox[{"{", "nptsy", "}"}]}], "]"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"fGhx", "=", "fGh"}], ";", " ", RowBox[{"fGhxx", " ", "=", " ", "fGh"}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"fGvy", "=", "fGv"}], ";", " ", RowBox[{"fGvyy", " ", "=", " ", "fGv"}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"For", "[", RowBox[{ RowBox[{"n", "=", "1"}], ",", RowBox[{"n", "<=", "nptsx"}], ",", RowBox[{"n", "++"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"fGh", "[", RowBox[{"[", "n", "]"}], "]"}], " ", "=", " ", RowBox[{"G", "[", RowBox[{ FractionBox[ RowBox[{ RowBox[{"(", RowBox[{"n", "-", "xcen"}], ")"}], " ", "2", " ", "\[Pi]"}], "nptsx"], ",", FractionBox["1", "sx"]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{"fGhx", "[", RowBox[{"[", "n", "]"}], "]"}], " ", "=", " ", RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", " ", RowBox[{"(", RowBox[{"n", "-", "xcen"}], ")"}], " ", "2", " ", RowBox[{"\[Pi]", " ", "/", "nptsx"}]}], " ", ")"}], RowBox[{"fGh", "[", RowBox[{"[", "n", "]"}], "]"}]}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{"fGhxx", "[", RowBox[{"[", "n", "]"}], "]"}], " ", "=", " ", RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", " ", RowBox[{"(", RowBox[{"n", "-", "xcen"}], ")"}], " ", "2", " ", RowBox[{"\[Pi]", " ", "/", "nptsx"}]}], " ", ")"}], RowBox[{"fGhx", "[", RowBox[{"[", "n", "]"}], "]"}]}]}], ";"}]}], "\[IndentingNewLine]", "]"}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"For", "[", RowBox[{ RowBox[{"m", "=", "1"}], ",", RowBox[{"m", "<=", "nptsy"}], ",", RowBox[{"m", "++"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"fGv", "\[LeftDoubleBracket]", "m", "\[RightDoubleBracket]"}], "=", RowBox[{"G", "[", RowBox[{ FractionBox[ RowBox[{ RowBox[{"(", RowBox[{"m", "-", "ycen"}], ")"}], " ", "2", " ", "\[Pi]"}], "nptsy"], ",", FractionBox["1", "sy"]}], "]"}]}], " ", ";", "\[IndentingNewLine]", RowBox[{ RowBox[{"fGvy", "[", RowBox[{"[", "m", "]"}], "]"}], " ", "=", " ", RowBox[{"\[ImaginaryI]", " ", RowBox[{"(", RowBox[{"m", "-", "ycen"}], ")"}], " ", "2", " ", RowBox[{"\[Pi]", " ", "/", "nptsy"}], " ", RowBox[{"fGv", "[", RowBox[{"[", "m", "]"}], "]"}]}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{"fGvyy", "[", RowBox[{"[", "m", "]"}], "]"}], " ", "=", " ", RowBox[{"\[ImaginaryI]", " ", RowBox[{"(", RowBox[{"m", "-", "ycen"}], ")"}], " ", "2", " ", RowBox[{"\[Pi]", " ", "/", "nptsy"}], " ", RowBox[{"fGvy", "[", RowBox[{"[", "m", "]"}], "]"}]}]}], ";"}]}], "\[IndentingNewLine]", "]"}], ";"}], "\[IndentingNewLine]"}], "\n", RowBox[{ RowBox[{"fhmaskim", "=", RowBox[{"IRotImage", "[", RowBox[{"Outer", "[", RowBox[{"Times", ",", "fGv", ",", "fGhx"}], "]"}], "]"}]}], ";"}], "\n", RowBox[{ RowBox[{ RowBox[{"fvmaskim", "=", RowBox[{"IRotImage", "[", RowBox[{"Outer", "[", RowBox[{"Times", ",", "fGvy", ",", "fGh"}], "]"}], "]"}]}], ";"}], "\n", RowBox[{"(*", RowBox[{ RowBox[{"fhhmaskim", "=", RowBox[{"IRotImage", "[", RowBox[{"Outer", "[", RowBox[{"Times", ",", "fGv", ",", "fGhxx"}], "]"}], "]"}]}], ";", "\n", RowBox[{"fvvmaskim", "=", RowBox[{"IRotImage", "[", RowBox[{"Outer", "[", RowBox[{"Times", ",", "fGvyy", ",", "fGh"}], "]"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"fhvmaskim", "=", RowBox[{"IRotImage", "[", RowBox[{"Outer", "[", RowBox[{"Times", ",", "fGvy", ",", "fGhx"}], "]"}], "]"}]}], ";"}], "\[IndentingNewLine]", "*)"}], "\[IndentingNewLine]"}], "\n", RowBox[{ RowBox[{"hfiltimf", "=", RowBox[{"Chop", "[", RowBox[{"InverseFourier", "[", RowBox[{"N", "[", RowBox[{"fim", " ", "fhmaskim"}], "]"}], "]"}], "]"}]}], ";"}], "\n", RowBox[{ RowBox[{ RowBox[{"vfiltimf", "=", RowBox[{"Chop", "[", RowBox[{"InverseFourier", "[", RowBox[{"N", "[", RowBox[{"fim", " ", "fvmaskim"}], "]"}], "]"}], "]"}]}], ";"}], "\[IndentingNewLine]", RowBox[{"(*", RowBox[{ RowBox[{"hhfiltimf", "=", RowBox[{"Chop", "[", RowBox[{"InverseFourier", "[", RowBox[{"N", "[", RowBox[{"fim", " ", "fhhmaskim"}], "]"}], "]"}], "]"}]}], ";", "\n", RowBox[{"vvfiltimf", "=", RowBox[{"Chop", "[", RowBox[{"InverseFourier", "[", RowBox[{"N", "[", RowBox[{"fim", " ", "fvvmaskim"}], "]"}], "]"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"hvfiltimf", "=", RowBox[{"Chop", "[", RowBox[{"InverseFourier", "[", RowBox[{"N", "[", RowBox[{"fim", " ", "fhvmaskim"}], "]"}], "]"}], "]"}]}], ";"}], "\[IndentingNewLine]", "*)"}], "\[IndentingNewLine]", "\[IndentingNewLine]"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"gradmag", "=", " ", RowBox[{"Sqrt", "[", RowBox[{ RowBox[{ RowBox[{"Abs", "[", "hfiltimf", "]"}], "^", "2"}], " ", "+", " ", RowBox[{ RowBox[{"Abs", "[", "vfiltimf", "]"}], "^", "2"}]}], "]"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"ListDensityPlot", "[", RowBox[{"gradmag", ",", RowBox[{"Mesh", "->", "False"}], ",", RowBox[{"PlotRange", "->", "All"}]}], "]"}], ";"}], "\[IndentingNewLine]", "\[IndentingNewLine]"}]}], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"Fourier", "::", "\<\"fftl\"\>"}], RowBox[{ ":", " "}], "\<\"\\!\\(\\*StyleBox[\\\"\\\\\\\"Argument \\\\\\\"\\\", \ \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\!\\({}\\), \\\"MT\\\"]\\)\ \[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\" is not a non-empty list or \ rectangular array of numeric quantities.\\\\\\\"\\\", \\\"MT\\\"]\\) \ \\!\\(\\*ButtonBox[\\\"\[RightSkeleton]\\\", ButtonStyle->\\\"Link\\\", \ ButtonFrame->None, ButtonData:>\\\"paclet:ref/message/Fourier/fftl\\\", \ ButtonNote -> \\\"Fourier::fftl\\\"]\\)\"\>"}]], "Message", "MSG", CellChangeTimes->{3.5412217195255213`*^9}], Cell[BoxData[ RowBox[{ RowBox[{"Part", "::", "\<\"partw\"\>"}], RowBox[{ ":", " "}], "\<\"\\!\\(\\*StyleBox[\\\"\\\\\\\"Part \\\\\\\"\\\", \ \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\!\\(1\\), \ \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\" of \\\\\\\"\\\", \ \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\!\\({}\\), \\\"MT\\\"]\\)\ \[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\" does not exist.\\\\\\\"\\\", \ \\\"MT\\\"]\\) \\!\\(\\*ButtonBox[\\\"\[RightSkeleton]\\\", \ ButtonStyle->\\\"Link\\\", ButtonFrame->None, \ ButtonData:>\\\"paclet:ref/message/General/partw\\\", ButtonNote -> \ \\\"Part::partw\\\"]\\)\"\>"}]], "Message", "MSG", CellChangeTimes->{3.5412217195285215`*^9}], Cell[BoxData[ RowBox[{ RowBox[{"Transpose", "::", "\<\"nmtx\"\>"}], RowBox[{ ":", " "}], "\<\"\\!\\(\\*StyleBox[\\\"\\\\\\\"The first two levels of the \ one-dimensional list \\\\\\\"\\\", \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\ \\!\\({}\\), \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\" cannot be \ transposed.\\\\\\\"\\\", \\\"MT\\\"]\\) \\!\\(\\*ButtonBox[\\\"\ \[RightSkeleton]\\\", ButtonStyle->\\\"Link\\\", ButtonFrame->None, \ ButtonData:>\\\"paclet:ref/message/Transpose/nmtx\\\", ButtonNote -> \ \\\"Transpose::nmtx\\\"]\\)\"\>"}]], "Message", "MSG", CellChangeTimes->{3.5412217195795245`*^9}], Cell[BoxData[ RowBox[{ RowBox[{"Part", "::", "\<\"partw\"\>"}], RowBox[{ ":", " "}], "\<\"\\!\\(\\*StyleBox[\\\"\\\\\\\"Part \\\\\\\"\\\", \ \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\!\\(1\\), \ \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\" of \\\\\\\"\\\", \ \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\!\\({}\\), \\\"MT\\\"]\\)\ \[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\" does not exist.\\\\\\\"\\\", \ \\\"MT\\\"]\\) \\!\\(\\*ButtonBox[\\\"\[RightSkeleton]\\\", \ ButtonStyle->\\\"Link\\\", ButtonFrame->None, \ ButtonData:>\\\"paclet:ref/message/General/partw\\\", ButtonNote -> \ \\\"Part::partw\\\"]\\)\"\>"}]], "Message", "MSG", CellChangeTimes->{3.5412217195835247`*^9}], Cell[BoxData[ RowBox[{ RowBox[{"Transpose", "::", "\<\"nmtx\"\>"}], RowBox[{ ":", " "}], "\<\"\\!\\(\\*StyleBox[\\\"\\\\\\\"The first two levels of the \ one-dimensional list \\\\\\\"\\\", \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\ \\!\\({}\\), \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\" cannot be \ transposed.\\\\\\\"\\\", \\\"MT\\\"]\\) \\!\\(\\*ButtonBox[\\\"\ \[RightSkeleton]\\\", ButtonStyle->\\\"Link\\\", ButtonFrame->None, \ ButtonData:>\\\"paclet:ref/message/Transpose/nmtx\\\", ButtonNote -> \ \\\"Transpose::nmtx\\\"]\\)\"\>"}]], "Message", "MSG", CellChangeTimes->{3.541221719587525*^9}], Cell[BoxData[ RowBox[{ RowBox[{"InverseFourier", "::", "\<\"fftl\"\>"}], RowBox[{ ":", " "}], "\<\"\\!\\(\\*StyleBox[\\\"\\\\\\\"Argument \\\\\\\"\\\", \ \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\!\\(\\(\\(Fourier[\\(\\({}\\)\\)]\ \\)\\)\\\\ \\(\\(Transpose[\\(\\(Transpose[\\(\\({}\\)\\)]\\)\\)]\\)\\)\\), \ \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\" is not a non-empty \ list or rectangular array of numeric quantities.\\\\\\\"\\\", \\\"MT\\\"]\\) \ \\!\\(\\*ButtonBox[\\\"\[RightSkeleton]\\\", ButtonStyle->\\\"Link\\\", \ ButtonFrame->None, \ ButtonData:>\\\"paclet:ref/message/InverseFourier/fftl\\\", ButtonNote -> \ \\\"InverseFourier::fftl\\\"]\\)\"\>"}]], "Message", "MSG", CellChangeTimes->{3.5412217196115265`*^9}], Cell[BoxData[ RowBox[{ RowBox[{"InverseFourier", "::", "\<\"fftl\"\>"}], RowBox[{ ":", " "}], "\<\"\\!\\(\\*StyleBox[\\\"\\\\\\\"Argument \\\\\\\"\\\", \ \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\!\\(\\(\\(Fourier[\\(\\({}\\)\\)]\ \\)\\)\\\\ \\(\\(Transpose[\\(\\(Transpose[\\(\\({}\\)\\)]\\)\\)]\\)\\)\\), \ \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\" is not a non-empty \ list or rectangular array of numeric quantities.\\\\\\\"\\\", \\\"MT\\\"]\\) \ \\!\\(\\*ButtonBox[\\\"\[RightSkeleton]\\\", ButtonStyle->\\\"Link\\\", \ ButtonFrame->None, \ ButtonData:>\\\"paclet:ref/message/InverseFourier/fftl\\\", ButtonNote -> \ \\\"InverseFourier::fftl\\\"]\\)\"\>"}]], "Message", "MSG", CellChangeTimes->{3.541221719617527*^9}], Cell[BoxData[ RowBox[{ RowBox[{"ListDensityPlot", "::", "\<\"arrayerr\"\>"}], RowBox[{ ":", " "}], "\<\"\[NoBreak]\\!\\(\\*StyleBox[\\!\\(\\@2\\\\ \ \\(\\(Abs[\\(\\(InverseFourier[\\(\\(\\(\\(Fourier[\\(\\({}\\)\\)]\\)\\)\\\\ \ \\(\\(Transpose[\\(\\(Transpose[\\(\\({}\\)\\)]\\)\\)]\\)\\)\\)\\)]\\)\\)]\\)\ \\)\\), \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\" must be a \ valid array.\\\\\\\"\\\", \\\"MT\\\"]\\) \\!\\(\\*ButtonBox[\\\"\ \[RightSkeleton]\\\", ButtonStyle->\\\"Link\\\", ButtonFrame->None, \ ButtonData:>\\\"paclet:ref/ListDensityPlot\\\", ButtonNote -> \ \\\"ListDensityPlot::arrayerr\\\"]\\)\"\>"}]], "Message", "MSG", CellChangeTimes->{3.5412217196215267`*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"Gmax", " ", "=", " ", RowBox[{"Max", "[", "gradmag", "]"}]}]], "Input"], Cell[BoxData[ RowBox[{ SqrtBox["2"], " ", RowBox[{"Abs", "[", RowBox[{"InverseFourier", "[", RowBox[{ RowBox[{"Fourier", "[", RowBox[{"{", "}"}], "]"}], " ", RowBox[{"Transpose", "[", RowBox[{"Transpose", "[", RowBox[{"{", "}"}], "]"}], "]"}]}], "]"}], "]"}]}]], "Output", CellChangeTimes->{3.541221719660529*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[{ RowBox[{ RowBox[{"K", "[", RowBox[{"x_", ",", "y_"}], "]"}], " ", ":=", " ", RowBox[{"Exp", "[", RowBox[{ RowBox[{"-", RowBox[{"gradmag", "[", RowBox[{"[", RowBox[{ RowBox[{"Floor", "[", RowBox[{"1", "+", "y"}], "]"}], ",", RowBox[{"Floor", "[", RowBox[{"1", "+", "x"}], "]"}]}], "]"}], "]"}]}], "/", RowBox[{"(", RowBox[{"0.5", " ", "Gmax"}], ")"}]}], "]"}]}], "\[IndentingNewLine]", RowBox[{ RowBox[{"A", "[", RowBox[{"x_", ",", "y_"}], "]"}], " ", ":=", " ", "0.000001"}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{"imdiffpm", ",", "grid", ",", "mua", ",", "kappa"}], "}"}], " ", "=", " ", RowBox[{"Diffusion2D", "[", RowBox[{ "0", ",", "63", ",", "0", ",", "63", ",", "im", ",", "K", ",", "A", ",", "1", ",", "5", ",", "12"}], "]"}]}], ";"}]}], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"Part", "::", "\<\"partw\"\>"}], RowBox[{ ":", " "}], "\<\"\\!\\(\\*StyleBox[\\\"\\\\\\\"Part \\\\\\\"\\\", \ \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\!\\(1\\), \ \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\" of \\\\\\\"\\\", \ \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\!\\({}\\), \\\"MT\\\"]\\)\ \[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\" does not exist.\\\\\\\"\\\", \ \\\"MT\\\"]\\) \\!\\(\\*ButtonBox[\\\"\[RightSkeleton]\\\", \ ButtonStyle->\\\"Link\\\", ButtonFrame->None, \ ButtonData:>\\\"paclet:ref/message/General/partw\\\", ButtonNote -> \ \\\"Part::partw\\\"]\\)\"\>"}]], "Message", "MSG", CellChangeTimes->{3.5412217197915363`*^9}], Cell[CellGroupData[{ Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"hx \"\>", "\[InvisibleSpace]", "63.`", "\[InvisibleSpace]", "\<\" hy \"\>", "\[InvisibleSpace]", RowBox[{"-", "63.`"}], "\[InvisibleSpace]", "\<\" dT \"\>", "\[InvisibleSpace]", "1"}], SequenceForm["hx ", 63., " hy ", -63., " dT ", 1], Editable->False]], "Print", CellChangeTimes->{3.541221719793537*^9}], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"Iteration \"\>", "\[InvisibleSpace]", "1"}], SequenceForm["Iteration ", 1], Editable->False]], "Print", CellChangeTimes->{3.5412217197945366`*^9}], Cell[BoxData["\<\"Done time step 1/2\"\>"], "Print", CellChangeTimes->{3.541221719795537*^9}], Cell[BoxData["\<\"Done time step 1\"\>"], "Print", CellChangeTimes->{3.5412217197965364`*^9}], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"Iteration \"\>", "\[InvisibleSpace]", "2"}], SequenceForm["Iteration ", 2], Editable->False]], "Print", CellChangeTimes->{3.5412217197985373`*^9}], Cell[BoxData["\<\"Done time step 1/2\"\>"], "Print", CellChangeTimes->{3.541221719799537*^9}], Cell[BoxData["\<\"Done time step 1\"\>"], "Print", CellChangeTimes->{3.541221719800537*^9}], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"Iteration \"\>", "\[InvisibleSpace]", "3"}], SequenceForm["Iteration ", 3], Editable->False]], "Print", CellChangeTimes->{3.541221719802537*^9}], Cell[BoxData["\<\"Done time step 1/2\"\>"], "Print", CellChangeTimes->{3.5412217198035374`*^9}], Cell[BoxData["\<\"Done time step 1\"\>"], "Print", CellChangeTimes->{3.5412217198045373`*^9}], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"Iteration \"\>", "\[InvisibleSpace]", "4"}], SequenceForm["Iteration ", 4], Editable->False]], "Print", CellChangeTimes->{3.5412217198065376`*^9}], Cell[BoxData["\<\"Done time step 1/2\"\>"], "Print", CellChangeTimes->{3.5412217198075376`*^9}], Cell[BoxData["\<\"Done time step 1\"\>"], "Print", CellChangeTimes->{3.5412217198085375`*^9}], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"Iteration \"\>", "\[InvisibleSpace]", "5"}], SequenceForm["Iteration ", 5], Editable->False]], "Print", CellChangeTimes->{3.5412217198105373`*^9}], Cell[BoxData["\<\"Done time step 1/2\"\>"], "Print", CellChangeTimes->{3.5412217198115377`*^9}], Cell[BoxData["\<\"Done time step 1\"\>"], "Print", CellChangeTimes->{3.541221719812538*^9}] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"ListDensityPlot", "[", RowBox[{"kappa", ",", RowBox[{"Mesh", "\[Rule]", "False"}]}], "]"}], ";"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"ListDensityPlot", "::", "\<\"arrayerr\"\>"}], RowBox[{ ":", " "}], "\<\"\[NoBreak]\\!\\(\\*StyleBox[\\!\\({}\\), \\\"MT\\\"]\\)\ \[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\" must be a valid array.\\\\\\\"\\\", \ \\\"MT\\\"]\\) \\!\\(\\*ButtonBox[\\\"\[RightSkeleton]\\\", \ ButtonStyle->\\\"Link\\\", ButtonFrame->None, \ ButtonData:>\\\"paclet:ref/ListDensityPlot\\\", ButtonNote -> \ \\\"ListDensityPlot::arrayerr\\\"]\\)\"\>"}]], "Message", "MSG", CellChangeTimes->{3.5412217198485403`*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"For", "[", RowBox[{ RowBox[{"i", " ", "=", " ", "1"}], ",", " ", RowBox[{"i", " ", "<", " ", RowBox[{"Length", "[", "imdiffpm", "]"}]}], ",", RowBox[{"i", "++"}], ",", "\[IndentingNewLine]", RowBox[{"ListDensityPlot", "[", RowBox[{ RowBox[{"imdiffpm", "[", RowBox[{"[", "i", "]"}], "]"}], ",", RowBox[{"Mesh", "\[Rule]", "False"}]}], "]"}]}], "\[IndentingNewLine]", "]"}], ";"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"ListDensityPlot", "::", "\<\"arrayerr\"\>"}], RowBox[{ ":", " "}], "\<\"\[NoBreak]\\!\\(\\*StyleBox[\\!\\({}\\), \\\"MT\\\"]\\)\ \[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\" must be a valid array.\\\\\\\"\\\", \ \\\"MT\\\"]\\) \\!\\(\\*ButtonBox[\\\"\[RightSkeleton]\\\", \ ButtonStyle->\\\"Link\\\", ButtonFrame->None, \ ButtonData:>\\\"paclet:ref/ListDensityPlot\\\", ButtonNote -> \ \\\"ListDensityPlot::arrayerr\\\"]\\)\"\>"}]], "Message", "MSG", CellChangeTimes->{3.541221719908543*^9}], Cell[BoxData[ RowBox[{ RowBox[{"ListDensityPlot", "::", "\<\"arrayerr\"\>"}], RowBox[{ ":", " "}], "\<\"\[NoBreak]\\!\\(\\*StyleBox[\\!\\({}\\), \\\"MT\\\"]\\)\ \[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\" must be a valid array.\\\\\\\"\\\", \ \\\"MT\\\"]\\) \\!\\(\\*ButtonBox[\\\"\[RightSkeleton]\\\", \ ButtonStyle->\\\"Link\\\", ButtonFrame->None, \ ButtonData:>\\\"paclet:ref/ListDensityPlot\\\", ButtonNote -> \ \\\"ListDensityPlot::arrayerr\\\"]\\)\"\>"}]], "Message", "MSG", CellChangeTimes->{3.5412217199095435`*^9}], Cell[BoxData[ RowBox[{ RowBox[{"ListDensityPlot", "::", "\<\"arrayerr\"\>"}], RowBox[{ ":", " "}], "\<\"\[NoBreak]\\!\\(\\*StyleBox[\\!\\({}\\), \\\"MT\\\"]\\)\ \[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\" must be a valid array.\\\\\\\"\\\", \ \\\"MT\\\"]\\) \\!\\(\\*ButtonBox[\\\"\[RightSkeleton]\\\", \ ButtonStyle->\\\"Link\\\", ButtonFrame->None, \ ButtonData:>\\\"paclet:ref/ListDensityPlot\\\", ButtonNote -> \ \\\"ListDensityPlot::arrayerr\\\"]\\)\"\>"}]], "Message", "MSG", CellChangeTimes->{3.5412217199105434`*^9}], Cell[BoxData[ RowBox[{ RowBox[{"General", "::", "\<\"stop\"\>"}], RowBox[{ ":", " "}], "\<\"\\!\\(\\*StyleBox[\\\"\\\\\\\"Further output of \\\\\\\"\\\ \", \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\!\\(ListDensityPlot :: \ \\\"arrayerr\\\"\\), \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\" \ will be suppressed during this calculation.\\\\\\\"\\\", \\\"MT\\\"]\\) \ \\!\\(\\*ButtonBox[\\\"\[RightSkeleton]\\\", ButtonStyle->\\\"Link\\\", \ ButtonFrame->None, ButtonData:>\\\"paclet:ref/message/General/stop\\\", \ ButtonNote -> \\\"General::stop\\\"]\\)\"\>"}]], "Message", "MSG", CellChangeTimes->{3.541221719911544*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"g3", "=", " ", RowBox[{"ListPlot", "[", RowBox[{ RowBox[{"imdiffpm", "[", RowBox[{"[", RowBox[{"5", ",", "32"}], "]"}], "]"}], ",", RowBox[{"PlotJoined", "\[Rule]", "True"}], ",", RowBox[{"PlotStyle", "\[Rule]", RowBox[{"{", RowBox[{"RGBColor", "[", RowBox[{"0", ",", "1", ",", "0"}], "]"}], "}"}]}], ",", RowBox[{"DisplayFunction", "\[Rule]", "Identity"}]}], "]"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"Show", "[", RowBox[{"g1", ",", "g2", ",", "g3", ",", RowBox[{"DisplayFunction", "\[Rule]", "$DisplayFunction"}]}], "]"}], ";"}]}]}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"Part", "::", "\<\"partw\"\>"}], RowBox[{ ":", " "}], "\<\"\\!\\(\\*StyleBox[\\\"\\\\\\\"Part \\\\\\\"\\\", \ \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\!\\(32\\), \\\"MT\\\"]\\)\ \[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\" of \\\\\\\"\\\", \\\"MT\\\"]\\)\ \[NoBreak]\\!\\(\\*StyleBox[\\!\\({}\\), \ \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\" does not \ exist.\\\\\\\"\\\", \\\"MT\\\"]\\) \ \\!\\(\\*ButtonBox[\\\"\[RightSkeleton]\\\", ButtonStyle->\\\"Link\\\", \ ButtonFrame->None, ButtonData:>\\\"paclet:ref/message/General/partw\\\", \ ButtonNote -> \\\"Part::partw\\\"]\\)\"\>"}]], "Message", "MSG", CellChangeTimes->{3.541221719928544*^9}], Cell[BoxData[ RowBox[{ RowBox[{"ListLinePlot", "::", "\<\"lpn\"\>"}], RowBox[{ ":", " "}], "\<\"\[NoBreak]\\!\\(\\*StyleBox[\\!\\(\\(\\({\\(\\({}\\)\\), \ \\(\\({}\\)\\), \\(\\({}\\)\\), \\(\\({}\\)\\), \\(\\({}\\)\\)}\\)\\) \ \[LeftDoubleBracket] \\(\\(5, 32\\)\\) \[RightDoubleBracket]\\), \ \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\" is not a list of \ numbers or pairs of numbers.\\\\\\\"\\\", \\\"MT\\\"]\\) \ \\!\\(\\*ButtonBox[\\\"\[RightSkeleton]\\\", ButtonStyle->\\\"Link\\\", \ ButtonFrame->None, ButtonData:>\\\"paclet:ref/ListLinePlot\\\", ButtonNote -> \ \\\"ListLinePlot::lpn\\\"]\\)\"\>"}]], "Message", "MSG", CellChangeTimes->{3.5412217199295444`*^9}], Cell[BoxData[ RowBox[{ RowBox[{"Show", "::", "\<\"gcomb\"\>"}], RowBox[{ ":", " "}], "\<\"\\!\\(\\*StyleBox[\\\"\\\\\\\"Could not combine the \ graphics objects in \\\\\\\"\\\", \ \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\!\\(Show[\\(\\(\\(\\(ListPlot[\\(\ \\(\\(\\(\\(\\({\\(\\({}\\)\\), \\(\\({}\\)\\), \\(\\({}\\)\\), \ \\(\\({}\\)\\), \\(\\({}\\)\\)}\\)\\) \[LeftDoubleBracket] \\(\\(5, 32\\)\\) \ \[RightDoubleBracket]\\)\\), \\(\\(PlotJoined \[Rule] True\\)\\), \ \\(\\(DisplayFunction \[Rule] Identity\\)\\)\\)\\)]\\)\\), \\(\\(ListPlot[\\(\ \\(\\(\\(\\(\\({\\(\\({}\\)\\), \\(\\({}\\)\\), \\(\\({}\\)\\), \ \\(\\({}\\)\\), \\(\\({}\\)\\)}\\)\\) \[LeftDoubleBracket] \\(\\(5, 32\\)\\) \ \[RightDoubleBracket]\\)\\), \\(\\(PlotJoined \[Rule] True\\)\\), \ \\(\\(PlotStyle \[Rule] \\(\\({\\(RGBColor[\\(\\(1, 0, \ 0\\)\\)]\\)}\\)\\)\\)\\), \\(\\(DisplayFunction \[Rule] Identity\\)\\)\\)\\)]\ \\)\\), \\(\\(ListPlot[\\(\\(\\(\\(\\(\\({\\(\\({}\\)\\), \\(\\({}\\)\\), \\(\ \\({}\\)\\), \\(\\({}\\)\\), \\(\\({}\\)\\)}\\)\\) \[LeftDoubleBracket] \ \\(\\(5, 32\\)\\) \[RightDoubleBracket]\\)\\), \\(\\(PlotJoined \[Rule] \ True\\)\\), \\(\\(PlotStyle \[Rule] \\(\\({\\(RGBColor[\\(\\(0, 1, \ 0\\)\\)]\\)}\\)\\)\\)\\), \\(\\(DisplayFunction \[Rule] Identity\\)\\)\\)\\)]\ \\)\\), \\(\\(DisplayFunction \[Rule] Identity\\)\\)\\)\\)]\\), \ \\\"MT\\\"]\\)\[NoBreak]\\!\\(\\*StyleBox[\\\"\\\\\\\".\\\\\\\"\\\", \\\"MT\\\ \"]\\) \\!\\(\\*ButtonBox[\\\"\[RightSkeleton]\\\", \ ButtonStyle->\\\"Link\\\", ButtonFrame->None, \ ButtonData:>\\\"paclet:ref/message/Show/gcomb\\\", ButtonNote -> \ \\\"Show::gcomb\\\"]\\)\"\>"}]], "Message", "MSG", CellChangeTimes->{3.541221719930545*^9}] }, Open ]] }, AutoGeneratedPackage->Automatic, WindowSize->{1008, 633}, WindowMargins->{{0, Automatic}, {Automatic, 0}}, DockedCells->FEPrivate`FrontEndResource[ "FEExpressions", "CompatibilityToolbar"], PrintingPageRange->{Automatic, Automatic}, PrintingOptions->{"Magnification"->1, "PaperOrientation"->"Portrait", "PaperSize"->{612, 792}, "PostScriptOutputFile":>FrontEnd`FileName[{$RootDirectory, "cs", "research", "medim", "images3", "starship", "ucacarr", "teaching", "3c72", "math"}, "diff2d.nb.ps", CharacterEncoding -> "ISO8859-1"]}, FrontEndVersion->"7.0 for Microsoft Windows (64-bit) (February 18, 2009)", StyleDefinitions->"Default.nb" ] (* End of Notebook Content *) (* Internal cache information *) (*CellTagsOutline CellTagsIndex->{} *) (*CellTagsIndex CellTagsIndex->{} *) (*NotebookFileOutline Notebook[{ Cell[CellGroupData[{ Cell[567, 22, 4088, 92, 1476, "Input", InitializationCell->True], Cell[4658, 116, 115, 1, 30, "Output"], Cell[4776, 119, 540, 7, 164, "Output"], Cell[5319, 128, 123, 1, 30, "Output"], Cell[5445, 131, 123, 1, 30, "Output"] }, Open ]], Cell[5583, 135, 563, 14, 209, "Text", Evaluatable->True], Cell[6149, 151, 666, 12, 21, "Message"], Cell[CellGroupData[{ Cell[6840, 167, 774, 23, 112, "Input"], Cell[7617, 192, 1090, 17, 90, "Message"] }, Open ]], Cell[8722, 212, 3036, 90, 350, "Input"], Cell[11761, 304, 208, 6, 52, "Input"], Cell[CellGroupData[{ Cell[11994, 314, 149, 4, 31, "Input"], Cell[12146, 320, 528, 10, 21, "Message"] }, Open ]], Cell[CellGroupData[{ Cell[12711, 335, 838, 25, 72, "Input"], Cell[13552, 362, 694, 13, 21, "Message"], Cell[CellGroupData[{ Cell[14271, 379, 372, 8, 23, "Print"], Cell[14646, 389, 198, 5, 23, "Print"], Cell[14847, 396, 96, 1, 23, "Print"], Cell[14946, 399, 92, 1, 23, "Print"], Cell[15041, 402, 200, 5, 23, "Print"], Cell[15244, 409, 96, 1, 23, "Print"], Cell[15343, 412, 92, 1, 23, "Print"], Cell[15438, 415, 198, 5, 23, "Print"], Cell[15639, 422, 94, 1, 23, "Print"], Cell[15736, 425, 92, 1, 23, "Print"], Cell[15831, 428, 198, 5, 23, "Print"], Cell[16032, 435, 94, 1, 23, "Print"], Cell[16129, 438, 94, 1, 23, "Print"], Cell[16226, 441, 200, 5, 23, "Print"], Cell[16429, 448, 94, 1, 23, "Print"], Cell[16526, 451, 92, 1, 23, "Print"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[16667, 458, 480, 13, 72, "Input"], Cell[17150, 473, 530, 10, 21, "Message"], Cell[17683, 485, 530, 10, 21, "Message"], Cell[18216, 497, 530, 10, 21, "Message"], Cell[18749, 509, 643, 11, 21, "Message"] }, Open ]], Cell[CellGroupData[{ Cell[19429, 525, 940, 30, 72, "Input"], Cell[20372, 557, 694, 13, 21, "Message"], Cell[CellGroupData[{ Cell[21091, 574, 372, 8, 23, "Print"], Cell[21466, 584, 200, 5, 23, "Print"], Cell[21669, 591, 96, 1, 23, "Print"], Cell[21768, 594, 94, 1, 23, "Print"], Cell[21865, 597, 200, 5, 23, "Print"], Cell[22068, 604, 96, 1, 23, "Print"], Cell[22167, 607, 92, 1, 23, "Print"], Cell[22262, 610, 198, 5, 23, "Print"], Cell[22463, 617, 96, 1, 23, "Print"], Cell[22562, 620, 92, 1, 23, "Print"], Cell[22657, 623, 198, 5, 23, "Print"], Cell[22858, 630, 96, 1, 23, "Print"], Cell[22957, 633, 94, 1, 23, "Print"], Cell[23054, 636, 200, 5, 23, "Print"], Cell[23257, 643, 94, 1, 23, "Print"], Cell[23354, 646, 94, 1, 23, "Print"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[23497, 653, 152, 4, 31, "Input"], Cell[23652, 659, 530, 10, 21, "Message"] }, Open ]], Cell[CellGroupData[{ Cell[24219, 674, 482, 13, 72, "Input"], Cell[24704, 689, 526, 10, 21, "Message"], Cell[25233, 701, 530, 10, 21, "Message"], Cell[25766, 713, 526, 10, 21, "Message"], Cell[26295, 725, 639, 11, 21, "Message"] }, Open ]], Cell[CellGroupData[{ Cell[26971, 741, 1007, 29, 72, "Input"], Cell[27981, 772, 697, 13, 21, "Message"], Cell[28681, 787, 687, 12, 21, "Message"], Cell[29371, 801, 697, 13, 21, "Message"], Cell[30071, 816, 687, 12, 21, "Message"], Cell[30761, 830, 697, 13, 21, "Message"], Cell[31461, 845, 689, 12, 21, "Message"], Cell[32153, 859, 1316, 22, 56, "Message"] }, Open ]], Cell[33484, 884, 226, 6, 52, "Input"], Cell[33713, 892, 974, 33, 117, "Input"], Cell[34690, 927, 2715, 74, 217, "Input"], Cell[CellGroupData[{ Cell[37430, 1005, 6810, 192, 876, "Input"], Cell[44243, 1199, 625, 11, 21, "Message"], Cell[44871, 1212, 696, 13, 21, "Message"], Cell[45570, 1227, 625, 11, 21, "Message"], Cell[46198, 1240, 696, 13, 21, "Message"], Cell[46897, 1255, 623, 11, 21, "Message"], Cell[47523, 1268, 748, 13, 21, "Message"], Cell[48274, 1283, 746, 13, 21, "Message"], Cell[49023, 1298, 698, 12, 30, "Message"] }, Open ]], Cell[CellGroupData[{ Cell[49758, 1315, 98, 2, 31, "Input"], Cell[49859, 1319, 362, 11, 33, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[50258, 1335, 925, 28, 72, "Input"], Cell[51186, 1365, 696, 13, 21, "Message"], Cell[CellGroupData[{ Cell[51907, 1382, 370, 8, 23, "Print"], Cell[52280, 1392, 200, 5, 23, "Print"], Cell[52483, 1399, 94, 1, 23, "Print"], Cell[52580, 1402, 94, 1, 23, "Print"], Cell[52677, 1405, 200, 5, 23, "Print"], Cell[52880, 1412, 94, 1, 23, "Print"], Cell[52977, 1415, 92, 1, 23, "Print"], Cell[53072, 1418, 198, 5, 23, "Print"], Cell[53273, 1425, 96, 1, 23, "Print"], Cell[53372, 1428, 94, 1, 23, "Print"], Cell[53469, 1431, 200, 5, 23, "Print"], Cell[53672, 1438, 96, 1, 23, "Print"], Cell[53771, 1441, 94, 1, 23, "Print"], Cell[53868, 1444, 200, 5, 23, "Print"], Cell[54071, 1451, 96, 1, 23, "Print"], Cell[54170, 1454, 92, 1, 23, "Print"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[54311, 1461, 152, 4, 31, "Input"], Cell[54466, 1467, 530, 10, 21, "Message"] }, Open ]], Cell[CellGroupData[{ Cell[55033, 1482, 484, 13, 72, "Input"], Cell[55520, 1497, 528, 10, 21, "Message"], Cell[56051, 1509, 530, 10, 21, "Message"], Cell[56584, 1521, 530, 10, 21, "Message"], Cell[57117, 1533, 641, 11, 21, "Message"] }, Open ]], Cell[CellGroupData[{ Cell[57795, 1549, 765, 21, 72, "Input"], Cell[58563, 1572, 695, 13, 21, "Message"], Cell[59261, 1587, 689, 12, 21, "Message"], Cell[59953, 1601, 1689, 27, 73, "Message"] }, Open ]] } ] *) (* End of internal cache information *)