Question: Vary heat transfer coefficient with changing surface temperature

Hi

 

I am trying to solve a Heat Transfer problem (of transient conduction in a 2D annulus of material with convective boundary conditions). I currently have a fixed heat transfer coefficient, but in reality this varies with surface temperature.

 

I am using the PDEsolve meothod to solve the equation. Is there a way of linking the temperature at the end of each time step into an equation to calculate h.

I am a Maple/programming notice so this sort of thing is way out of my depth. Below is the code i've used so far. There are probably better ways of writing this with loops and things but for now this is working for me apart from varying the heat transfer coeifficient.

I know this is a pretty specific problem so it is a long shot but hopefulyl someone has encountered the same thing.

 

Thanks for your help :)

 

Code:

restart:
with(LinearAlgebra):
with(ArrayTools):
with(ExcelTools):
PDEtools:

> ;
> Variables := ExcelTools:-Import("C:\\Users\\Documents\\Maple\\MAPLE - MARCH 2011\\InputVariables.xls", "InputVariables", "D5:D25");
## Geometry of Annulus

ra := Variables[1, 1]:
rb := Variables[2, 1]:
dr:=(rb-ra)/10:

R := ra:
for i from R by dr to rb do
R:=R,i;
end do:
R:

pi := evalf(Pi):
V:=pi*((rb^2)-(ra^2)):
m:= V*rho:

SurfArea:=2*pi*rb:


> k := Variables[9, 1]; Cp := Variables[10, 1]; rho := Variables[11, 1]; diffusivity := k/(Cp*rho); alpha := diffusivity;
> Ti := Variables[5, 1]; Ta := Variables[6, 1];
> h := Variables[17, 1]; Tamb := Variables[18, 1];
> Thetaa := Ta-Tamb; Thetai := Ti-Tamb;
>
> t1 := Variables[14, 1]; tf := convert(t1, rational);
> ;
PDE := diff(Theta(r, t), r, r)+(diff(Theta(r, t), r))/r = (diff(Theta(r, t), t))/alpha:
pdsolve(PDE):
dsolve(diff(_F1(r),`$`(r,2)) = _F1(r)*_c[1]-diff(_F1(r),r)/r):
dsolve(diff(_F2(t),t) = _F2(t)*_c[1]*alpha):
IBC := {Theta(r,0)=Thetai, Theta(ra,t)=Thetaa, D[1](Theta)(rb,t)=-(h/k)*(Theta(rb,t))}:
pds := pdsolve(PDE,IBC,numeric):

Temp_tf:=pds:-plot(t=tf,numpoints=50,labels=[Radius, Temperature_difference]):
> plots[display]({Temp_tf});


Please Wait...