Mathematica Heat Equation in Polar coordinates in Mathematica

Click For Summary
SUMMARY

The forum discussion focuses on solving the heat equation in polar coordinates using Mathematica. The equation is defined as ∂u/∂t = α²[(∂²u/∂r²) + (1/r)(∂u/∂r) + (1/r²)(∂²u/∂θ²)], with boundary conditions specified for a disk of radius a. The user encountered errors with NDSolve, specifically "NDSolve: bcart" and "Plot3D: plnc", indicating insufficient boundary conditions and potential issues with the coordinate system. Recommendations include ensuring θ runs from 0 to and considering DSolve for symbolic solutions.

PREREQUISITES
  • Understanding of partial differential equations (PDEs)
  • Familiarity with polar coordinates in mathematical modeling
  • Experience using Mathematica, specifically NDSolve and DSolve
  • Knowledge of boundary conditions in numerical simulations
NEXT STEPS
  • Learn how to implement boundary conditions in NDSolve for polar coordinates
  • Explore the use of DSolve for obtaining symbolic solutions of PDEs
  • Investigate the implications of coordinate singularities in numerical simulations
  • Study the visualization techniques in Mathematica for 3D plots of solutions
USEFUL FOR

Mathematicians, physicists, and engineers working on heat transfer problems, as well as students and researchers utilizing Mathematica for numerical analysis and simulations of partial differential equations.

Hop
Messages
1
Reaction score
0
Hi! Can someone please help?
I'm trying to solve the heat equation in polar coordinates. Forgive my way of typing it in, I'm battling to make it look right. The d for derivative should be partial, alpha is the Greek alpha symbol and theta is the Greek theta symbol.
du/dt = (alpha.alpha)[(d/dr)(du/dr)+(1/r)du/dr+(1/(r.r))(d/theta)(du/dtheta)]
This is the heat equation for a disk with radius a.
u(r,theta,0) = (a-r)cos(theta)
u(a,theta,t) = 0

In Mathematica, I used:
NDSolve[{Derivative[0,0,1][u][r,theta,t]==alpha Derivative[2,0,0][u][r,theta,t]+alpha Derivative[1,0,0][u][r,theta,t]+alpha Derivative[0,2,0][u][r,theta,t], u[r,theta,0] == (a-r)Cos[theta], u[a,theta,t]==0},u,{r,0,a},{theta,0,1},{t,0,1}]

I got an error: NDSolve: bcart
I tried replacing alpha with 2 and a with 4. Still got a problem. Is there a way of keeping the alpha's and a's? And can the radius start from 0, without problems?

Then I need to plot it in 3 dimensions. I tried: (radius starting from 1 since I had problems)
Plot3D[Evaluate[u[r,theta,t] /. First[%]],{r,1,4}, {theta,0,pi}, {t,0,1},PlotPoints -> 50]

I got an error: Plot3D: plnc (repeatedly)
General :: stop
Plot3D[InterpolatingFunction[{{1.,4.},{0.,3.14159},{0.,1.}},<>][r,theta,t],{r,1,4},{theta,0,pi},{t,0,1}, PlotPoints -> 50]

I still need to add a different boundary condition where du/dr(a,theta,t) = 0 and need to solve u(r,theta,t). Would it work the same way?

Please help! I would really appreciate it!

Thanks,
Hop
 
Physics news on Phys.org
Hop said:
Hi! Can someone please help?
I'm trying to solve the heat equation in polar coordinates. Forgive my way of typing it in, I'm battling to make it look right. The d for derivative should be partial, alpha is the Greek alpha symbol and theta is the Greek theta symbol.
du/dt = (alpha.alpha)[(d/dr)(du/dr)+(1/r)du/dr+(1/(r.r))(d/theta)(du/dtheta)]
This is the heat equation for a disk with radius a.
u(r,theta,0) = (a-r)cos(theta)
u(a,theta,t) = 0

In Mathematica, I used:
NDSolve[{Derivative[0,0,1][u][r,theta,t]==alpha Derivative[2,0,0][u][r,theta,t]+alpha Derivative[1,0,0][u][r,theta,t]+alpha Derivative[0,2,0][u][r,theta,t], u[r,theta,0] == (a-r)Cos[theta], u[a,theta,t]==0},u,{r,0,a},{theta,0,1},{t,0,1}]

I got an error: NDSolve: bcart
I tried replacing alpha with 2 and a with 4. Still got a problem. Is there a way of keeping the alpha's and a's? And can the radius start from 0, without problems?

Then I need to plot it in 3 dimensions. I tried: (radius starting from 1 since I had problems)
Plot3D[Evaluate[u[r,theta,t] /. First[%]],{r,1,4}, {theta,0,pi}, {t,0,1},PlotPoints -> 50]

I got an error: Plot3D: plnc (repeatedly)
General :: stop
Plot3D[InterpolatingFunction[{{1.,4.},{0.,3.14159},{0.,1.}},<>][r,theta,t],{r,1,4},{theta,0,pi},{t,0,1}, PlotPoints -> 50]

I still need to add a different boundary condition where du/dr(a,theta,t) = 0 and need to solve u(r,theta,t). Would it work the same way?

Please help! I would really appreciate it!

Thanks,
Hop
These equations are unreadable. Please use LaTex.
 
Hop said:
Hi! Can someone please help?
I'm trying to solve the heat equation in polar coordinates. Forgive my way of typing it in, I'm battling to make it look right. The d for derivative should be partial, alpha is the Greek alpha symbol and theta is the Greek theta symbol.
du/dt = (alpha.alpha)[(d/dr)(du/dr)+(1/r)du/dr+(1/(r.r))(d/theta)(du/dtheta)]

\frac{\partial u}{\partial t} = \alpha^2\left(<br /> \frac{\partial^2 u}{\partial r^2} + \frac 1r \frac{\partial u}{\partial r} + \frac{1}{r^2} \frac{\partial^2 u}{\partial \theta^2}\right)

This is the heat equation for a disk with radius a.
u(r,theta,0) = (a-r)cos(theta)
u(a,theta,t) = 0

In Mathematica, I used:

NDSolve[{Derivative[0,0,1][u][r,theta,t]==alpha Derivative[2,0,0][u][r,theta,t]+alpha Derivative[1,0,0][u][r,theta,t]+alpha Derivative[0,2,0][u][r,theta,t], u[r,theta,0] == (a-r)Cos[theta], u[a,theta,t]==0},u,{r,0,a},{theta,0,1},{t,0,1}]

Please use code tags for code. It prevents the parser interpreting [u] as an underline tag.

Code:
NDSolve[{Derivative[0,0,1][u][r,theta,t]==alpha Derivative[2,0,0][u][r,theta,t]+alpha Derivative[1,0,0][u][r,theta,t]+alpha Derivative[0,2,0][u][r,theta,t], u[r,theta,0] == (a-r)Cos[theta], u[a,theta,t]==0},u,{r,0,a},{theta,0,1},{t,0,1}]

As I read it, you have \theta running between 0 and 1. Surely you want \theta between 0 and 2\pi?

I got an error: NDSolve: bcart
I tried replacing alpha with 2 and a with 4. Still got a problem. Is there a way of keeping the alpha's and a's? And can the radius start from 0, without problems?

NDSolve is for numerical solutions. This necessarily involves telling Mathematica what values of \alpha and a you want it to use (but in any event you can remove both of them from the problem by suitable rescalings of r and t). If you want a symbolic solution, use DSolve.

The error message indicates that you have not supplied sufficient boundary conditions. In particular, Mathematica does not know that r and \theta are to be interpreted as polar coordinates, and that therefore u(r,0,t) = u(r,2\pi,t) and that the boundary condition to be imposed at r = 0 is that \frac{\partial u}{\partial r} = 0. But the coordinate singularity at the origin may be fatal in any event: I don't think you can tell NDSolve that the value of u at the origin should not depend on \theta. (Or, if Mathematica can work all that out for itself, you only told it to look at 0 \leq \theta \leq 1 and didn't supply boundary conditions at the edges of that sector.)
 

Similar threads

  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
Replies
5
Views
2K
  • · Replies 2 ·
Replies
2
Views
3K
Replies
8
Views
2K
  • · Replies 4 ·
Replies
4
Views
3K
  • · Replies 10 ·
Replies
10
Views
1K
  • · Replies 26 ·
Replies
26
Views
2K
Replies
13
Views
3K
  • · Replies 9 ·
Replies
9
Views
4K