Solve PDE system with 3 variables
- To: mathgroup at smc.vnet.net
- Subject: [mg131934] Solve PDE system with 3 variables
- From: ZharenkovDA at yandex.ru
- Date: Sat, 2 Nov 2013 02:26:23 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-outx@smc.vnet.net
- Delivered-to: mathgroup-newsendx@smc.vnet.net
Hello, I'm trying to solve the system of PDE's with piecewise IC functions. Each function depends of 3 variables.
With this code Mathematica throws 2 errors like this:
NDSolve::mxsst: Using maximum number of grid points 100 allowed by the MaxPoints or MinStepSize options for independent variable r.
In documentation I found that this error appears when there is a sharp feature in initial conditions. But I'm sure that there is no such features in them.
b = 1;
a = 1.01;
mu = 1;
r0 = 0.1;
r01 = 0.3;
r02 = 0.7;
r1 = 1;
foo1[r_?NumericQ] :=
Piecewise[{{0, r < r0}, {(r - r0)/(r01 - r0), r0 <= r <= r01}, {1,
r01 < r < r02}, {(r - r1)/(r02 - r1), r02 <= r <= r1}, {0,
r > r1}}]
foo2[r_?NumericQ] :=
Piecewise[{{1, r < r0}, {(r - r01)/(r0 - r01), r0 <= r <= r01}, {0,
r01 < r}}]
ftu = Table[{r, foo1[r]}, {r, 0, 1, 0.0025}];
ftv = ft = Table[{r, foo2[r]}, {r, 0, 1, 0.0025}];
initU = Interpolation[ftu];
initV = Interpolation[ftv];
w = NDSolve[{D[u[r, thet, t], t] ==
D[u[r, thet, t], {r, 2}] + (1/r) D[u[r, thet, t], r] + (1/r^2) D[
u[r, thet, t], {thet, 2}] +
u[r, thet, t] (1 - u[r, thet, t] - c*v[r, thet, t]),
D[v[r, thet, t], t] ==
mu*(D[v[r, thet, t], {r, 2}] + (1/r) D[v[r, thet, t],
r] + (1/r^2) D[v[r, thet, t], {thet, 2}]) +
a*v[r, thet, t] (1 - c*u[r, thet, t] - b*v[r, thet, t]),
Derivative[1, 0, 0][u][1, thet, t] == 0,
Derivative[1, 0, 0][v][1, thet, t] == 0,
Derivative[1, 0, 0][u][0.01, thet, t] == 0,
Derivative[1, 0, 0][v][0.01, thet, t] == 0,
(*D[u[r,thet,t],r]\[Equal]D[initU[r],r]/.{r\[Rule]1},
D[v[r,thet,t],r]\[Equal]D[initV[r],r]/.{r\[Rule]1},
D[u[r,thet,t],r]\[Equal]D[initU[r],r]/.{r\[Rule]0.01} ,
D[v[r,thet,t],r]\[Equal]D[initV[r],r]/.{r\[Rule]0.01},*)
u[r, 0, t] == u[r, 2 Pi, t],
v[r, 0, t] == v[r, 2 Pi, t],
u[r, thet, 0] == initU[r],
v[r, thet, 0] == initV[r]},
{u, v}, {t, 0, 1}, {thet, 0, 2 Pi}, {r, 0.01, 1}];