Reaction Diffusion System,

 Reaction Diffusion System,

I have a problem solving a numerical reaction diffusion equation. It leads to the following answer:

RecursionLimit::reclim2: "Recursion depth of 1024 exceeded during evaluation

How can I solve this problem? My PC is quite fast, and I am willing to run it over night if necessary. But first of course I want to check if my equations are all right. How can I figure out working parameters and boundary conditions?

Thanks for help.

Here is the code (Derived from an old Maple code of mine and a code I found here in the Mathematica Stack Exchange):

ClearAll;

(*Parameter*)

da = 1;
db = 0.1;
k = 10;

(*Gleichungssytem und NDSolve*)

a1 = {D[a1[t, x, y], t] == 
    da*D[a1[t, x, y], x, x] + da*D[a1[t, x, y], y, y] - k*a1[t, x, y]};

a2 = {D[a2[t, x, y], t] == 
    db*D[a2[t, x, y], x, x] + db*D[a2[t, x, y], y, y] - k*a2[t, x, y]};

a3 = {D[a3[t, x, y], t] == 
    da*D[a3[t, x, y], x, x] + da*D[a3[t, x, y], y, y] + 
     k*a3[t, x, y](*-D[a4[t,x,y]]*)};


Ω = 
  ImplicitRegion[0 <= x <= 100 && 0 <= y <= 100, {x, y}];

(*Lösung des Gleichungssystems*)
soln = NDSolve[{a1, a2, a3, (*a4*)},

  Derivative[0, 1, 0][a1][t, 0, y] == 0,
  Derivative[0, 1, 0][a1][t, 100, y] == 0,
  Derivative[0, 0, 1][a1][t, x, 0] == 0,
  Derivative[0, 0, 1][a1][t, x, 100] == 0,
  a1[0, x, y] == 100, a1, {x, 0, 100}, {y, 0, 100}, {t, 0, 10},


  Derivative[0, 1, 0][a2][t, 0, y] == 0,
  Derivative[0, 1, 0][a2][t, 100, y] == 0,
  Derivative[0, 0, 1][a2][t, x, 0] == 0,
  Derivative[0, 0, 1][a2][t, x, 100] == 0,
  a2[0, x, y] == 0, a2, {x, 0, 100}, {y, 0, 100}, {t, 0, 10},


  Derivative[0, 1, 0][a3][t, 0, y] == 0,
  Derivative[0, 1, 0][a3][t, 100, y] == 0,
  Derivative[0, 0, 1][a3][t, x, 0] == 0,
  Derivative[0, 0, 1][a3][t, x, 100] == 0,
  a3[0, x, y] == 0, a3, {x, 0, 100}, {y, 0, 100}, {t, 0, 10},


  (*Plotausgabe a1*)

  Plot3D[a1[t, x, 1] /. soln, {t, 0, 10}, {x, 0, 100}, 
    PlotStyle -> Gray]


   (*Plotausgabe a2*)

   Plot3D[a2[t, x, 1] /. soln, {t, 0, 10}, {x, 0, 100}, 
    PlotStyle -> Pink]


   (*Plotausgabe a3*)

   Plot3D[a3[t, x, 1] /. soln, {t, 0, 10}, {x, 0, 100}, 
    PlotStyle -> Green]

Let’s block ads! (Why?)

Recent Questions – Mathematica Stack Exchange