Re: Numerical solution of the heat equation on a disk

• To: mathgroup at smc.vnet.net
• Subject: [mg113636] Re: Numerical solution of the heat equation on a disk
• From: Alexei Boulbitch <alexei.boulbitch at iee.lu>
• Date: Fri, 5 Nov 2010 05:13:40 -0500 (EST)

```Hi, Francois,

I would simply regularize the equation, i.e instead
u_t = u_rr + (1/r) u_r
I would solve
u_t = u_rr + (1/(r+eps)) u_r
with a small eps. The choice of its value should be done depending upon the origin of your equation. This will
remove the problem. Try this, for instance:

NDSolve[{D[u[t, r], t] == D[u[t, r], r, r] + D[u[t, r], r]/(r + 0.01),
u[0, r] == 10*(Exp[-r^2/5] - Exp[-1/5]),
u[t, 1] == 0, (D[u[t, r], r] /. r ->  0) == 0}, u, {t, 0, 2}, {r, 0,
1}]
Plot3D[Evaluate[u[t, r] /. %], {t, 0, 2}, {r, 0, 1}, PlotRange ->  All,
AxesLabel ->  {"t", "r", "u"}]

Have fun, Alexei

Hello,

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 ?

Best regards,
Francois

PS : I know that I can do Bessel expansion, but it's not what I want to do here.

--
Alexei Boulbitch, Dr. habil.
Senior Scientist
Material Development

IEE S.A.
ZAE Weiergewan
11, rue Edmond Reuter
L-5326 CONTERN
Luxembourg

Tel: +352 2454 2566
Fax: +352 2454 3566
Mobile: +49 (0) 151 52 40 66 44

e-mail: alexei.boulbitch at iee.lu

www.iee.lu

--

This e-mail may contain trade secrets or privileged, undisclosed or
otherwise confidential information. If you are not the intended
recipient and have received this e-mail in error, you are hereby
notified that any review, copying or distribution of it is strictly
prohibited. Please inform us immediately and destroy the original