Advertisement
Guest User

Untitled

a guest
Jun 16th, 2019
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.71 KB | None | 0 0
  1. p = .011;
  2. ky = 10;
  3. c = 27;
  4. [CapitalOmega] = 2800/p;
  5. L = p/0.3;
  6. v = p^2* [CapitalOmega]/L;
  7. A0 = 1;
  8. xf=3;
  9. [CapitalTheta][x_] := -(3 c (1 + p^2 ky^2)/(2 p^2*v*ky)) (Sech[
  10. x c/(2 p*Sqrt[c^2 - ky^2 A0^2])]^2);
  11.  
  12. pde1 = D[A[t, x] +
  13. p^2 (ky^2 A[t, x] +
  14. 2 A0*[CapitalTheta][x]*D[[CapitalTheta]1[t, x], x] -
  15. D[A[t, x], x, x]), t] -
  16. c*D[A[t, x] +
  17. p^2 (ky^2 A[t, x] +
  18. 2 A0*[CapitalTheta][x]*D[[CapitalTheta]1[t, x], x] -
  19. D[A[t, x], x, x]), x] +
  20. p^2 ([CapitalTheta][x])^2 (D[A[t, x], t] -
  21. c*D[A[t, x],
  22. x]) == ((v p^2 ky)/(1 + (p^2 ky^2))) (2*([CapitalTheta][x])*
  23. D[A[t, x], x] + A0*D[[CapitalTheta]1[t, x], x, x]);
  24.  
  25.  
  26. pde2 = A0 (D[[CapitalTheta]1[t, x], t] -
  27. c*D[[CapitalTheta]1[t, x], x]) -
  28. p^2 (D[[CapitalTheta][x], x] (D[A[t, x], t] - c*D[A[t, x], x]) +
  29. D[A0 D[[CapitalTheta]1[x], x, x] +
  30. 2 [CapitalTheta][x] D[A[t, x], x], t] -
  31. c*D[A0 D[[CapitalTheta]1[x], x, x] +
  32. 2 [CapitalTheta][x] D[A[t, x], x],
  33. x]) == ((v p^2 ky)/(1 + (p^2 ky^2))) (2 A0 [CapitalTheta][
  34. x] D[[CapitalTheta]1[t, x], x] - D[A[t, x], x, x]) -
  35. p^2 ky A0 D[vy[t, x], x, x];
  36.  
  37.  
  38. pde3 = (1/(p^4 [CapitalOmega]^2)) (D[vy[t, x], t] -
  39. c*D[vy[t, x], x]) ==
  40. ky A0^2 D[[CapitalTheta]1[t, x], x, x] +
  41. D[2 ky A0 A[t, x] [CapitalTheta][x], x];
  42.  
  43. pde = {pde1, pde2, pde3};
  44.  
  45. ic = {A[0, x] == 10^(-5),
  46. vy[0, x] == 0, [CapitalTheta]1[0, x] == 0};
  47.  
  48.  
  49. bc = {A[t, xf] == 0, (D[A[t, x], x] /. x -> xf) ==
  50. 0, (D[A[t, x], x] /. x -> 0) ==
  51. 0, (D[[CapitalTheta]1[t, x], x] /. x -> xf) ==
  52. 0, (D[[CapitalTheta]1[t, x], x] /. x -> 0) ==
  53. 0, [CapitalTheta]1[t, xf] == 0,
  54. vy[t, xf] == 0, (D[vy[t, x], x] /. x -> 0) == 0};
  55.  
  56. begintime = 0; endtime = 80;
  57. points@x = 200; points@t = 25;
  58. m = 200;
  59. difforder = 8;
  60. domain@x = {0, 3}; domain@t = {begintime, endtime};
  61. (grid@# = Array[# &, points@#, domain@#]) & /@ {x, t};
  62.  
  63.  
  64. ptoafunc =
  65. pdetoae[{A, [CapitalTheta]1, vy}[t, x], grid /@ {t, x},
  66. difforder];
  67. del = #[[2 ;; -2]] &;
  68. ae = Map[del, Most /@ ptoafunc@pde, {2}];
  69. aeic = del /@ ptoafunc@ic;
  70. aebc = ptoafunc@bc;
  71. var = Outer[#[#2, #3] &, {A, [CapitalTheta]1, vy}, grid@t, grid@x];
  72. {barray, marray} =
  73. CoefficientArrays[Flatten@{ae, aeic, aebc},
  74. Flatten@var]; // AbsoluteTiming
  75. Block[{p = .011,
  76. ky = 10,
  77. c = 27,
  78. [CapitalOmega] = 2800/p,
  79. L = p/0.3,
  80. v = p^2* [CapitalOmega]/L,
  81. A0 = 1},
  82. sollst = LinearSolve[N@marray, -barray]]; // AbsoluteTiming
  83. solmatlst = ArrayReshape[sollst, var // Dimensions];
  84. solfunclst = ListInterpolation[#, grid /@ {t, x}] & /@ solmatlst;
  85. plot[f_, style_, t_] :=
  86. Plot[solfunclst[t, x] // Through // f //
  87. Evaluate, {x, domain@x} // Flatten // Evaluate,
  88. PlotStyle -> style]
  89.  
  90. {17.5364, Null}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement