Solve PDE with boundary and initial conditions?

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

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.

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

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}]

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?

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.