Advertisement
Guest User

Untitled

a guest
Mar 25th, 2018
1,364
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.50 KB | None | 0 0
  1. n = 50;
  2. x[i_] := (2 (i - n))/n;
  3. y[j_] := 2 j/n - 1;
  4. stadium[i_, j_] :=
  5. stadium[i, j] =
  6. Or[(x[i] - 1)^2 + y[j]^2 < 0.9^2, (x[i] + 1)^2 + y[j]^2 <
  7. 0.9^2, -0.9 < y[j] < 0.9 && -0.9 < x[i] < 0.9];
  8. \[Phi]0 = N[Table[
  9. If[stadium[i, j], Exp[-20 (x[i]^2 + y[j]^2)], 0],
  10. {j, n}, {i, 2 n}]];
  11. \[Phi]stad = N[Table[
  12. If[stadium[i, j], 0, 1],
  13. {j, n}, {i, 2 n}]];
  14. Even[i_, j_] := (
  15. EvenQ[i ] && EvenQ[j] || OddQ[i] && OddQ[j]
  16. );
  17. update1[\[Phi]_] := Table[
  18. If[Not[stadium[i, j]], 0,
  19. If[
  20. Even[i, j],
  21. 0.5 (
  22. If[Not[stadium[i - 1, j]], 2, 1] \[Phi][[j, i + 1]]
  23. + If[Not[stadium[i + 1, j]], 2, 1] \[Phi][[j, i - 1]]
  24. + If[Not[stadium[i, j - 1]], 2, 1] \[Phi][[j + 1, i]]
  25. + If[Not[stadium[i, j + 1]], 2, 1] \[Phi][[j - 1, i]]
  26. - 2 \[Phi][[j, i]]
  27. ),
  28. \[Phi][[j, i]]
  29. ]
  30. ], {j, n}, {i, 2 n}];
  31. update2[\[Phi]_] := Table[
  32. If[Not[stadium[i, j]], 0,
  33. If[
  34. Even[i, j],
  35. \[Phi][[j, i]],
  36. 0.5 (
  37. If[Not[stadium[i - 1, j]], 2, 1] \[Phi][[j, i + 1]]
  38. + If[Not[stadium[i + 1, j]], 2, 1] \[Phi][[j, i - 1]]
  39. + If[Not[stadium[i, j - 1]], 2, 1] \[Phi][[j + 1, i]]
  40. + If[Not[stadium[i, j + 1]], 2, 1] \[Phi][[j - 1, i]]
  41. - 2 \[Phi][[j, i]]
  42. )
  43. ]
  44. ], {j, n}, {i, 2 n}];
  45. update[\[Phi]_] := update1[update2[\[Phi]]];
  46. t = 100;
  47. \[Phi]s = NestList[update, \[Phi]0, t];
  48. frame[i_] := ArrayPlot[\[Phi]s[[i]] + \[Phi]stad];
  49. Manipulate[
  50. frame[i]
  51. , {i, 1, t, 1}]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement