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