FV Diffusion
FV Diffusion
𝜕 𝜕𝜙 𝜕 𝜕𝜙
(Γ ) + (Γ ) + 𝑆 = 0
𝜕𝑥 𝜕𝑥 𝜕𝑦 𝜕𝑦
or, in vector form:
∇ ∙ (Γ∇𝜙)+S=0
∫ ∇ ∙ (Γ∇𝜙)𝑑𝑉 + ∫ 𝑆𝑑𝑉 = 0
∫ ∇ ∙ 𝑎 𝑑𝑉 = ∫ 𝑎 ∙ 𝑛̂ 𝑑𝑆
∫ Γ∇𝜙 ∙ 𝑛̂ 𝑑𝑆 + ∫ 𝑆𝑑𝑉 = 0
Typical Finite Volume Mesh and Terminology
𝜕𝜙 𝜕𝜙 𝜕𝜙 𝜕𝜙
𝐴𝑒 Γ𝑒 | − 𝐴𝑤 Γ𝑤 | + 𝐴𝑛 Γ𝑛 | − 𝐴𝑠 Γ𝑠 | + 𝑆̅Δ𝑥Δ𝑦 = 0
𝜕𝑥 𝑒 𝜕𝑥 𝑤 𝜕𝑦 𝑛 𝜕𝑦 𝑠
Finite-difference approximation for derivatives
𝜕𝜙 𝜙𝐸 − 𝜙𝑃
| = + 𝑂(𝛿𝑥)2
𝜕𝑥 𝑒 (𝛿𝑥)𝑒
and
source term linearization
𝑆̅Δ𝑥Δ𝑦 = 𝑆𝑢 + 𝑆𝑝 𝜙𝑝
results in
𝜙𝐸 − 𝜙𝑃 𝜙𝑃 − 𝜙𝑊 𝜙𝑁 − 𝜙𝑃 𝜙𝑃 − 𝜙𝑆
Δ𝑦 (Γ𝑒 − Γ𝑤 ) + Δ𝑥 (Γ𝑛 − Γ𝑠 )
(𝛿𝑥)𝑒 (𝛿𝑥)𝑤 (𝛿𝑦)𝑛 (𝛿𝑦)𝑠
+ 𝑆𝑢 + 𝑆𝑃 𝜙𝑃 = 0
Rearrange as
Γ𝑤 Δ𝑦 Γ𝑒 Δ𝑦 Γ𝑠 Δ𝑥 Γ𝑛 Δ𝑥
( + + + − 𝑆𝑝 ) 𝜙𝑃
(𝛿𝑥)𝑤 (𝛿𝑥)𝑒 (𝛿𝑦)𝑠 (𝛿𝑦)𝑛
Γ𝑤 Δ𝑦 Γ𝑒 Δ𝑦 Γ𝑛 Δ𝑥 Γ𝑠 Δ𝑥
= 𝜙𝑊 + 𝜙𝐸 + 𝜙𝑁 + 𝜙 + 𝑆𝑢
(𝛿𝑥)𝑤 (𝛿𝑥)𝑒 (𝛿𝑦)𝑛 (𝛿𝑦)𝑠 𝑆
𝐴𝑃 𝜙𝑃 = 𝐴𝑊 𝜙𝑊 + 𝐴𝐸 𝜙𝐸 + 𝐴𝑆 𝜙𝑆 + 𝐴𝑁 𝜙𝑁 + 𝑆𝑢
Γ𝑤 Δ𝑦
𝐴𝑊 =
(𝛿𝑥)𝑤
Γ𝑒 Δ𝑦
𝐴𝐸 =
(𝛿𝑥)𝑒
Γ𝑠 Δ𝑥
𝐴𝑆 =
(𝛿𝑦)𝑠
Γ𝑛 Δ𝑥
𝐴𝑁 =
(𝛿𝑦)𝑛
𝐴𝑃 = 𝐴𝑊 + 𝐴𝐸 + 𝐴𝑆 + 𝐴𝑁 − 𝑆𝑃
**********************************************************
Boundaries
A) Fixed (Dirichlet) boundary condition (i.e., set 𝜙 on a boundary)
Look at west boundary as an example
Find
−Γ𝑤 Δ𝑦
𝑆𝑝 =
((𝛿𝑥)𝑤 /2)
Γ𝑤 Δ𝑦
𝑆𝑢 = 𝜙
((𝛿𝑥)𝑤 ⁄2) 𝐵𝐶
𝐴𝑊 = 0
What did we do? “Cut the link” to west boundary and utilized source
terms to implement boundary condition.
∇2 𝜙=0
0≤𝑥≤1 0≤𝑦≤1
∇ ∙ (Γ∇ϕ) = 0
with Γ = 1.
! east boundary
AE(NX,:)=0. !cut link
SP(NX,:)=-2.
do j=1,NY
SU(NX,j)=2.*( (dy/2.) + dy*float(j-1) )
end do
! south boundary
AS(:,1)=0. !cut link
SU(:,1)=0.
SP(:,1)=-2.
! north boundary
AN(:,NY)=0. ! cut link
SP(:,NY)=-2.
do i=1,NX
SU(i,NY)=2.*( (dx/2.) + dx*float(i-1) )
end do
! northwest
AN(1,ny)=0. ! cut links
AW(1,ny)=0.
SU(1,ny)=2.*(dx/2.)
SP(1,ny)=-4.
! southeast
AS(nx,1)=0. ! cut links
AE(nx,1)=0.
SU(nx,1)=2.*(dy/2.)
SP(nx,1)=-4.
! northeast
AN(nx,ny)=0. ! cut links
AE(nx,ny)=0.
SU(nx,ny)=2.*((dx/2.) + dx*float(nx-1)) + 2.*((dy/2.) + dy*float(ny-1))
SP(nx,ny)=-4.
AP=AE+AW+AN+AS-SP
write(10,*)0.0,',',1.0,',',0.0,',',0.0 ! northwest
write(10,*)1.0,',',0.0,',',0.0,',',0.0 ! southeast
write(10,*)1.0,',',1.0,',',0.0,',',1.0 ! northeast
end