[Date Index]
[Thread Index]
[Author Index]
Re: Numerical solution of the heat equation on a disk
*To*: mathgroup at smc.vnet.net
*Subject*: [mg113619] Re: Numerical solution of the heat equation on a disk
*From*: Francois Fayard <FFayard at slb.com>
*Date*: Fri, 5 Nov 2010 05:10:27 -0500 (EST)
Thank you for that explanation. I was missing a few points here.
Regards,
Francois
On Nov 4, 2010, at 7:43 AM, Mark McClure wrote:
> On Thu, Nov 4, 2010 at 4:58 AM, Francois Fayard <FFayard at slb.com> wrote:
>
>> I would like to get a numerical simulation of the heat equation with
>> Dirichlet boundary conditions on a disk. With the problem I have,
>> the function does not depend on theta, so we get :
>> u_t == u_rr + (1/r) u_r
>>
>> It introduces a singularity as goes to 0 and Mathematica can not
>> solve the problem with NDSolve. Is there a way to go around this?
>
> Of course, there is no singularity, rather a removeable discontinuity.
> D[u,r]/r, for example, can be replaced with D[u,r,r] at r==0. We can
> define some auxilliarly functions so that the equation takes the
> proper form at zero. We also use the rotational symmetry of the
> solution to obtain the boundary condition at zero, nameley D[u,r]==0.
> Putting this all together, we get something like so:
>
> f1[r_ /; r > 0] :== 1;
> f1[r_ /; r ==== 0] :== 2;
> f2[r_ /; r > 0] :== 1/r;
> f2[r_ /; r ==== 0] :== 0;
> Clear[u];
> {sol} == NDSolve[{Derivative[0, 1][u][r, t] ====
> f2[r]*Derivative[1, 0][u][r, t] +
> f1[r]*Derivative[2, 0][u][r, t], u[r, 0] ==== 1 - r^2,
> Derivative[1, 0][u][0, t] ==== 0, u[1, t] ==== 0},
> u[r, t], {t, 0, 2}, {r, 0, 1}];
> u[r_, t_] == u[r, t] /. sol;
> pics == Table[ParametricPlot3D[{r*Cos[th], r*Sin[th], u[r, t]},
> {r, 0, 1}, {th, 0, 2 Pi}, PlotRange -> {-1, 1}],
> {t, 0, 0.3, 0.01}];
> ListAnimate[pics]
Prev by Date:
**Re: Manipulate with Matrices**
Next by Date:
**Re: Renaming Variables Across Files**
Previous by thread:
**Re: := vs = in some function definitions**
Next by thread:
**Re: Numerical solution of the heat equation on a disk**
| |