﻿ Sample Problems > Applications > Heatflow > heat_boundary

heat_boundary

Navigation:  Sample Problems > Applications > Heatflow >

heat_boundary

{ HEAT_BOUNDARY.PDE

This problem shows the use of natural boundary conditions to model

insulation, reflection, and convective losses.

The heatflow equation is

div(K*grad(Temp)) + Source = 0

The Natural boundary condition specifies the value of the surface-normal

component of the argument of the divergence operator, ie:

Natural Boundary Condition  =  normal <dot> K*grad(Temp)

Insulating boundaries and symmetry boundaries therefore require the

boundary condition:

Natural(Temp) = 0

At a convective boundary, the heat loss is proportional to the temperature

difference between the surface and the coolant. Since the heat flux is

F = -K*grad(Temp)  =  b*(Temp - Tcoolant)

the appropriate boundary condition is

Natural(Temp) = b*(Tcoolant - Temp).

In this problem, we define a quarter of a circle, with reflective

boundaries on the symmetry planes to model the full circle.  There is a

uniform heat source of 4 units throughout the material.  The outer

boundary is insulated, so the natural boundary condition is used to

specify no heat flow.

Centered in the quadrant is a cooling hole. The temperature of the

coolant is Tzero, and the heat loss to the coolant is (Tzero - Temp)

heat units per unit area.

In order to illustrate the characteristics of the Finite Element model,

we have selected output plots of the normal component of the heat flux

along the system boundaries.  The F.E. method forms its equations based

on the weighted average of the deviation of the approximate solution

to the PDE over each cell.  There is no guarantee that on the outer

boundary, for example, where the Natural(Temp) = 0, the point-by-point

value of the normal derivative will necessarily be zero. But the integral

of the PDE over each cell should be correct to within the requested

accuracy.

Here we have requested three solution stages, with successively tighter

accuracy requirements of 1e-3, 1e-4 and 1e-5.

Notice in plot 7 that while the pointwise values of the normal flux

oscillate by ten percent in the first stage, they oscillate about the

same solution as the later stages, and the integral of the heat loss is

2.628, 2.642 and 2.6395 for the three stages.  Compare this with the

analytic integral of the source (2.6389) and with the numerical integral

of the source in plot 5 (all 2.6434).  The Divergence Theorem is

therefore satisfied to 0.004, 0.001, and 0.0002 in the three stages.

In plot 7,  "Integral" and "Bintegral" differ because they are the result

of different quadrature rules applied to the data.

}

 title "Coolant Pipe Heatflow"   select    stages = 3    errlim = staged(1e-3,1e-4,1e-5)    autostage=off variables    Temp         definitions    K = 1           { conductivity }    source = 4     { source }    Tzero = 0       { coolant temperature }        flux = -K*grad(Temp) { thermal flux vector }   initial values    Temp = 0         equations    Temp : div(K*grad(Temp)) + source = 0

boundaries                 { define the problem domain }

Region 1               { ... only one region }

start "OUTER" (0,0) { start at the center }

natural(Temp)=0     { define the bottom symmetry boundary condition }

line to(1,0)       { walk to the surface }

natural(Temp)=0     { define the "Zero Flow" boundary condition }

arc (center=0,0) to (0,1)   { walk the outer arc }

natural(Temp)=0     { define the Left symmetry B.C. }

line to close       { return to close }

start "INNER" (0.4,0.2) { define the excluded coolant hole }

natural(Temp)=Tzero-Temp { "Temperature-difference" flow boundary.

Negative value means negative K*grad(Temp)

or POSITIVE heatflow INTO coolant hole }

arc (center=0.4,0.4){ walk boundary CLOCKWISE for exclusion }

to (0.6,0.4)

to (0.4,0.6)

to (0.2,0.4)

to close

monitors

contour(Temp)   { show contour plots of solution in progress }

plots               { write these hardcopy files at completion: }

grid(x,y)                         { show the final grid }

contour(Temp)                     { show the solution  }

surface(Temp)

vector(-K*dx(Temp),-K*dy(Temp)) as "Heat Flow"

contour(source)                   { show the source to compare integral }

elevation(normal(flux)) on "outer" range(-0.08,0.08)

report(bintegral(normal(flux),"outer")) as "bintegral"

elevation(normal(flux)) on "inner" range(1.95,2.3)

report(bintegral(normal(flux),"inner")) as "bintegral"

histories

history(bintegral(normal(flux),"inner"))

end