Message Boards Message Boards

0
|
3123 Views
|
4 Replies
|
3 Total Likes
View groups...
Share
Share this post:

Solve PDE with boundary and initial conditions?

Posted 5 years ago

I've been struggling the last weekend with solving the following heat equation:

Heat PDE

Here's my attempt:

Clear["Global'*"]
a=0.05;b=0.1;  h0=1025; rho=2200; k=0.35; cp=1000; alpha=k/(rho*cp);


pde =( D[T[t,x,y], {x, 2}] + D[T[t, x,y], {y, 2}])*alpha == D[T[t, x,y], {t, 1}];

bc = {T[t>0.00001,0,y]==T[t>0.0001,a,y]==T[t>0.00001,x,0]==T[t>0.00001,x,b]==333, T[0,x,y]==300};

soln = NDSolveValue[{pde, bc}, T[t,x, y], {x, 0, a}, {y, 0, b},{t,0,80000}] 

soln[60,a/2,b/2]

I'm new to Wolfram Mathematica and would appreciate any help.

POSTED BY: C H
4 Replies

I am not sure if that question was posed to me or the OP but

bc = {DirichletCondition[
    T[t, x, y] == 333, (x == 0 || x == a || y == 0 || y == b)], 
   T[0, x, y] == 300};

Means that the entire plate is in equilibrium at 300 degrees before initial conditions are applied. At time 0, a constant temperature of 333 is applied to the outline of the plate along the x==0, x==a,y==0, and y==b edges.

POSTED BY: Neil Singer
Anonymous User
Anonymous User
Posted 5 years ago

can you explain the T(t,0,y)=T(t,a,y)=T(t,x,0)=... in your post?

to me this says "the (plate) begins at 300K everywhere (T(0,x,y,z)) and thereafter equals 323K at all times and points" (which wouldn't even allow warmup time and being warmed equally everywhere wouldn't be a PDE except accidentally). what is your notation?

POSTED BY: Anonymous User

Also,

You should edit your post to use the code button (upper left button). This makes the code more readable and copy and paste-able.

I would also change your NDSolve statement a bit:

soln = NDSolveValue[{pde, bc}, T, {x, 0, a}, {y, 0, b}, {t, 0, 10000}]

You can visualize it with something like:

ListAnimate@
 Table[Plot3D[soln[t, x, y], {x, 0, a}, {y, 0, b}, 
   PlotRange -> {Automatic, Automatic, {280, 350}}], {t, 0, 8000, 
   300}]
POSTED BY: Neil Singer

You should use

bc = {DirichletCondition[
    T[t, x, y] == 333, (x == 0 || x == a || y == 0 || y == b)], 
   T[0, x, y] == 300};

For your boundary conditions.

Regards,

Neil

POSTED BY: Neil Singer
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract