You are on page 1of 12

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/351607939

Heat Conduction with Variable Thermal Conductivity

Technical Report · May 2021


DOI: 10.13140/RG.2.2.17178.36805

CITATIONS READS
3 2,222

1 author:

Brian G Higgins
University of California, Davis
176 PUBLICATIONS 2,381 CITATIONS

SEE PROFILE

All content following this page was uploaded by Brian G Higgins on 15 May 2021.

The user has requested enhancement of the downloaded file.


BGHiggins/UCDavis/May_2020

Heat Conduction with Variable


Thermal Conductivity
Introduction
The thermal conductivity k of a substance is in general a function of temperature. The functional
dependence varies with material. For example, in gases the thermal conductivity normally increases
with temperature, while for conducting metals k is normally a decreasing function of temperature. In
this notebook we will examine in some detail how to account for a temperature dependent conductiv-
ity of a metal in simple 1-D steady conduction problems.
We will show that when the temperature dependence of the thermal conductivity can be expressed as
a linear function, the general solution can be found analytically. The temperature profile is then found
for various types of boundary conditions. In all cases the profile is very close to the case when k is a
constant.

Mathematical Formulation
We will consider steady conduction without any sources. The energy equation reduces to
∇ · ( k ∇T) = 0 (1)

Consider now conduction in a 1-D slab of thickness L, and a thermal conductivity k = k (T). At x = 0
the temperature is T0 and at x = L the temperature is TL . The mathematical statement of the conduc-
tion problem becomes
 T
k[T] (2)
x x
and the associated boundary conditions (for fixed temperature) are
BC1 : T (0) = T0
(3)
BC2 : T (L) = TL
We will find it convenient to introduce dimensionless variables as defined below:
T - T0 x k
θ= , ξ= , = , ΔT = T0 - TL (4)
ΔT L k0
where k0 is the thermal conductivity at T = T0
Recall for a 1-D conduction in a slab with constant k, the temperature profile is linear. Thus the above
definitions for our variables ensure that θ is of O(1), and ξ is of O(1). Also, we have made the thermal
0 HeatConduction_VariableConductivity_2021.nb

conductivity dimensionless with respect to a reference thermal conductivity k0 such that over the
temperature range of interest K is of O(1). Thus our new variables may be written as
θ = θ (ξ),  = [θ (ξ)] (5)

It follows from the chain rule of differentiation that


T T ξ  ξ ΔT θ
= = (θ (ξ) ΔT + T0 ) = (6)
x ξ x ξ x L ξ
Thus in terms of our dimensionless variables, our conduction problem becomes
k0 ΔT  θ
 =0
L2 ξ ξ

(7)
BC1 : θ (0) = 0

BC2 : θ (1) = 1
2
Since the group K0 ΔT  L  is a non-zero constant we can divide through by it to obtain
 θ
 =0
ξ ξ

(8)
BC1 : θ (0) = 0

BC2 : θ (1) = 1
To solve this equation we need to specify how the thermal conductivity depends on temperature, viz.,
 =  (θ) (9)

Thermal Conductivity of Metals


For discussion purposes we will consider the thermal conductivity of copper. Data in the literature
reveals that copper has the following temperature dependence.

T(K) k (W/(m·K)
200 413
300 401
400 393
500 386
600 379
800 366

We can use Mathematica to examine this dependence. First, we create an interpolation function from
the data:
HeatConduction_VariableConductivity_2021.nb 0

In[]:= data = {{200, 413}, {300, 401}, {400, 393}, {500, 386}, {600, 379}, {800, 366}};
cond = Interpolation[N[data]];
k[T_] := cond[T]

Here is a plot of the data using our new function k[T]


In[]:= Plot[k[T], {T, 200, 800}, Frame -> True,
FrameLabel  {Style["T(K)", 16], Style["K(T)", 16]},
PlotRange  {360, 420}, PlotStyle  Thick]
420

410

400
K(T)

390
Out[]=

380

370

360
200 300 400 500 600 700 800

T(K)
Note that for temperatures T > 250 K, the plot is effectively linear. This suggest we write k (T) as a
Taylor series about a reference temperature
T
k[T] = k0 [T0 ] + (T - T0 ) + … + HOT (10)
T T0

or more compactly as
k[T] = k0 + α (T - T0 ) (11)

We can express this result in terms of our dimensionless variables as


k α ΔT
[θ] = = 1+ θ ≡ 1+β θ (12)
k0 k0
where β = α ΔT / k0 . From the data we can determine β . Suppose ΔT = 100 K, and we will take our
reference temperature T0 as 300 K. Using Mathematica we can evaluate the slope of k (T) at T = 300
to find
In[]:= α = (D[k[T], T]) W  m · K2  /. T -> 300
0.095 W
Out[]= -
m · K2

Thus β = (α ΔT / k0 )= -0.0237 so that  (θ) = 1 - 0.0237 θ.

Analytical Solution
In this section we show that if the thermal conductivity is taken as a linear function of temperature, we
0 HeatConduction_VariableConductivity_2021.nb

can solve the 1-D thermal conduction problem analytically. Recall the problem we need to solve is
 θ
(1 + β θ) =0
ξ ξ (13)

BC1 : θ (0) = 0
(14)
BC2 : θ (1) = 1
We can integrate the ODE once to get
θ
(1 + β θ) = C1 (15)
ξ
Reorganizing this equation as
(1 + β θ) θ = C1 ξ (16)

and integrating again gives


θ ξ
 (1 + β θ) θ =  C1 ξ
0 0
(17)
β 2
 θ+ θ = C1 ξ
2
We use the second BC to determine the constant C1 . Thus θ (1) = 1 implies
β β
θ+ θ2 = 1 + ξ (18)
2 2
Thus the solution is an implicit function of ξ.

Using Mathematica
We can use Mathematica to solve this quadratic equation for θ (obviously we could do this by hand)
β β
In[]:= sol1 = Solveθ + θ2 == 1 + ξ, θ
2 2
-1 - 1 + 2 β ξ + β2 ξ -1 + 1 + 2 β ξ + β2 ξ
Out[]= θ  , θ  
β β

The solution is in the form of a replacement rule. If we evaluate these two solutions at the boundaries ξ
=0, 1 we obtain after simplifying the expressions and expanding the radicals
In[]:= {θ /. sol1 /. ξ  0, θ /. sol1 /. ξ  1} // Simplify // PowerExpand
2 2+β
Out[]= - , 0, - , 1
β β

Thus the first solution does not satisfy the boundary conditions, and should be discarded. Here is a plot
of the second solution for copper with a β = -0.0237
HeatConduction_VariableConductivity_2021.nb 0

In[]:= Plot[Evaluate[Last[θ /.sol1 /.β  - 0.0237]], {ξ, 0, 1}, PlotRange  All,


Frame  True, FrameLabel  {Style["ξ", 16], Style["θ", 16]}, PlotStyle  Thick]
1.0

0.8

0.6
θ

Out[]= 0.4

0.2

0.0
0.0 0.2 0.4 0.6 0.8 1.0

The plot shows as expected that when β << 1, then θ (ξ) ≈ ξ. That is, θ is a linear function of ξ
which is the result found previously for a constant thermal conductivity. In summary, we expect that a
constant thermal conductivity will suffice in most situations.

Newton’s Law of Cooling


The algebra becomes more involved if one or both boundary conditions are replaced with Newton's
law of cooling. Consider the following problem
 T
k[T]
x x

T (19)
BC1 : - k = h[T (0) - T∞ ]
x T (0)

BC2 : T (L) = TL
For this problem it is convenient to use the previous dimensionless variables. The problem statement
becomes
 θ
(1 + β θ) =0
ξ ξ

θ (20)
BC1 : (1 + β θ) = i ( θ[0] + γ)
ξ θ (0)

BC2 : θ (1) = 1
where the dimensionless groups i and γ are defined as
0 HeatConduction_VariableConductivity_2021.nb

h T0 - T ∞
i = , γ= (21)
k0 L ΔT
where i is the Biot number. Note that in the limit i  0, we get a zero flux BC at ξ = 0. In the limit i 
∞, T0  T∞ ,and thus γ  0 so that θ[0]  0. The relevant general solution is
β
In[]:= Solveθ[ξ] + θ[ξ]2 == C1 ξ + C2 , θ[ξ]
2
-1 - 1 + 2 β ξ C1 + 2 β C2 -1 + 1 + 2 β ξ C1 + 2 β C2
Out[]= θ[ξ]  , θ[ξ]  
β β

β
In[]:= sol = LastSolveθ[ξ] + θ[ξ]2 == C1 ξ + C2 , θ[ξ][[1]]
2
-1 + 1 + 2 β ξ C1 + 2 β C2
Out[]= θ[ξ] 
β

The boundary conditions can be evaluated as follows


In[]:= BC2 = (θ[ξ] /. sol)  1 /. ξ  1
BC1 = (1 + β θ[ξ] /. sol) D[θ[ξ] /. sol, ξ]  i ((θ[ξ] /. sol) + γ) /. ξ  0
-1 + 1 + 2 β C1 + 2 β C 2
Out[]= 1
β

-1 + 1 + 2 β C2
Out[]= C1  i γ +
β

We have two equations and two unknowns which we can solve for the constants C1 and C2 in terms of
β, i and γ. The solution is given by

In[]:= sol3 = Solve[{BC1, BC2}, {C1 , C2 }]

i i2 i2 + 2 i3 + i4 + 2 i2 β + i2 β2 - 2 i3 β γ


Out[]= C1  - - + i γ + ,
β β β

1 2 i 2 i2 2 i2 1 + 2 i + i2 + 2 β + β2 - 2 i β γ


C2  2+ + + β - 2 i γ - ,
2 β β β

i i2 i2 + 2 i3 + i4 + 2 i2 β + i2 β2 - 2 i3 β γ


C1  - - + i γ - ,
β β β

1 2 i 2 i2 2 i2 1 + 2 i + i2 + 2 β + β2 - 2 i β γ


C2  2+ + + β - 2 i γ + 
2 β β β

By examining the limiting cases i  0, we require that θ=1 for all values of β. In this way we can
deduce that the relevant solution is the first one.
HeatConduction_VariableConductivity_2021.nb 0

In[]:= tempProfile = (sol /. First[sol3])


1
Out[]= θ[ξ] 
β

2 i 2 i2 2 i2 1 + 2 i + i2 + 2 β + β2 - 2 i β γ


-1 +  1 + β 2 + + + β - 2 i γ - +
β β β

i i2 i2 + 2 i3 + i4 + 2 i2 β + i2 β2 - 2 i3 β γ


2β - - + i γ + ξ
β β β

Let is evaluate the temperature profile when the Biot number Bi is zero:
In[]:= ((θ[ξ] /. tempProfile) /. i  0) // FullSimplify // PowerExpand
Out[]= 1

Here is a plot for i = 0:


In[]:= Plot[Evaluate[θ[ξ] /.tempProfile /.i  0 /.β  - 0.02137` /.γ  0.8`], {ξ, 0, 1},
Frame  True, FrameLabel  {Style["ξ", 12], Style["θ (ξ)", 16]}, PlotStyle  Thick]
2.0

1.5
θ (ξ)

1.0
Out[]=

0.5

0.0
0.0 0.2 0.4 0.6 0.8 1.0

Here is a plot of the temperature profile when β = - 0.02137, γ = 0.8, and i = 20:
0 HeatConduction_VariableConductivity_2021.nb

In[]:= Plot[Evaluate[θ[ξ] /.tempProfile /.i  20 /.β  - 0.02137` /.γ  0.8`], {ξ, 0, 1},
Frame  True, FrameLabel  {Style["ξ", 16], Style["θ (ξ)", 16]}, PlotStyle  Thick]
1.0

0.5
θ (ξ)

Out[]= 0.0

-0.5

0.0 0.2 0.4 0.6 0.8 1.0

Finally in the opposite limit i  ∞, and γ  0 we get the previous solution.


In[]:= Plot[Evaluate[θ[ξ] /.tempProfile /.i  1000 /.β  - 0.02137` /.γ  0.8`],
{ξ, 0, 1}, Frame  True, FrameLabel  {Style["ξ", 12], Style["θ (ξ)", 12]}]
1.0

0.5
θ (ξ)

0.0
Out[]=

-0.5

0.0 0.2 0.4 0.6 0.8 1.0

Solution of the BVP using Mathematica: Shooting Method


We can also use Mathematica to solve the heat conduction problem discussed in the previous section
by solving the nonlinear BVP numerically. The advantage is that we can then account for arbitrary
temperature dependence for the conductivity. In this example we will use the data for copper and work
in dimensional variables. We will take L = 2 m, ΔT = 100 K. The approach we take is based on the
shooting method described in a previous notebook. First, we define the equations. Note that we make
use of our previously constructed interpolation function for the thermal conductivity.
HeatConduction_VariableConductivity_2021.nb 0

In[]:= system[Ω_] := {D[(k[T[x]] × T '[x]), x] == 0, T[0] == 300, T '[0] == Ω}


sol4[Ω_] := NDSolve[system[Ω], T[x], {x, 0, 2}]
yend[Ω_ ? NumericQ] := First[(T[x] /. sol4[Ω]) /. x -> 2]
bc = FindRoot[yend[Ω]  400, {Ω, 100, 200}];
Plot[Evaluate[T[x] /.sol4[Ω /.bc]], {x, 0, 2},
Frame  True, FrameLabel  {Style["x", 16], Style["T(x)", 16]},
PlotRange  All, PlotStyle  RGBColor[0, 0, 1]]
400

380

360
T(x)

Out[]= 340

320

300
0.0 0.5 1.0 1.5 2.0

x
As expected, since β << 1 for the full temperature range, the solution is effectively a straight line, as we
saw previously. It is important to recognize that our numerical analysis used the interpolation expres-
sion for the thermal conductivity
In[]:= k[T]

Domain: {{200., 800. }}


Out[]= InterpolatingFunction [T]
Output: scalar

Thus if our thermal conductivity data was not linear over the temperature range of interest, we can still
solve the problem using this method.

Heat Conduction with a Nonlinear Source


Let us now consider a more complicated problems, namely 1-D heat conduction problem with a nonlin-
ear source term:
d dT
k (T) = Φ (T)
dx dx
(22)
BC1 : T (0) = T0
BC2 : T (L) = TL
where the source term has an exponential dependence on temperature and is given by
Φ (T) = -8 × 103 e.005 T (23)
0 HeatConduction_VariableConductivity_2021.nb

This problem cannot be solved analytically, but we can readily obtain a solution via our shooting
method.
In[]:= system[Ω_] :=
{D[(k[T[x]] × T '[x]), x] == - 8000 Exp[0.005 T[x]], T[0] == 300, T '[0] == Ω}
sol5[Ω_] := NDSolve[system[Ω], T[x], {x, 0, 2}]
yend[Ω_ ? NumericQ] := First[(T[x] /. sol5[Ω]) /. x -> 2]

By first plotting how our BC at x = L varies with Ω we can determine our initial guesses for FindRoot.
Recall we want the value of Ω such that yend[Ω] = 400.

In[]:= Plot[yend[Ω] - 400, {Ω, 150, 250}, Frame  True,


FrameLabel  {Style["T(x)", 16], Style["yend[Ω]-400", 16]}]
60

40
yend[Ω]-400

20

0
Out[]=

-20

-40

160 180 200 220 240

T(x)
Thus the value of the slope that we are looking for is Ω ≈ 190. The initial guesses we will use for Find-
Root are Ω = 150, Ω = 250. Here is the final result

In[]:= bc = FindRoot[yend[Ω]  400, {Ω, 180, 200}, WorkingPrecision  10];


Plot[Evaluate[T[x] /.sol5[Ω /.bc]], {x, 0, 2}, Frame  True,
FrameLabel  {Style["x", 16], Style["T(x)", 16]}, PlotRange  All]

440

420

400

380
T(x)

Out[]=
360

340

320

300
0.0 0.5 1.0 1.5 2.0

x
As expected, since we have a source term, the profile is no longer linear, but exhibits a local maximum.
View publication stats

HeatConduction_VariableConductivity_2021.nb 0

Summary
The above calculations show how to solve the thermal conduction problems when the thermal conduc-
tivity is an arbitrary function of temperature. When the temperature dependence of the thermal conduc-
tivity can be expressed as a linear function of temperature, the problem can be solved analytically,
though the algebra may be prohibitive if the BCs involve Newton's law of cooling. Since k/T can
often be approximated as a constant, a prudent approach is to use a conductivity value based on the
average temperature.

If one is given specific data for the thermal conductivity it is relatively straightforward to incorporate
the data into a numerical solution of the nonlinear BVP. This method also allows one to analyze conduc-
tion problems involving nonlinear source terms.

You might also like