偏微分方程式の数値解法 - kengo nakajima's homepagenkl.cc.u-tokyo.ac.jp/13n/pde.pdf ·...
TRANSCRIPT
-
( 500080)
-
Partial Differential EquationsPDE mesh, grid, particle
2PDE
-
PDE 3
Finite-Difference Method, FDM 1 2 3
-
PDE
4
1/2
Partial Differential Equations, PDE
local governing equation boundary condition initial condition
Integral Equations global Green functionfundamental function
-
PDE
5
2/2
Partial Differential Equations, PDElocal
Integral Equationsglobal
conditional Variational Method
functional
-
PDE
6
1f(x)u
1.01.0
f(x)
u(x)
1.0
x
-
PDE
7
x:1 x(x)
1.0
1.0x
s
u(x)
u(x+x)
+x
f(x)s
0sin1sin1 sxfx x+x
0,0 xu
xdx
uddxdu
dxdu
dxdu
xxxx
xxx
xx
2
2
tansin
tansin
xxdxduxuxxuxs
222 1)( 02
2
xfdx
ud
-
PDE
8
xG(x,) x= f()
x
dfxGxu 1
0,
G(x,) x influence functionGreens function
-
PDE
9
functional
1
0
21
0
21
0
1
0 21111 dx
dxdudx
dxdudxds
1
0
2
1
0
1
0
2
21
21
dxxuxfdxdu
dxxuxfdxdxduuJ
1
0dxxuxf
stationarizeEuler
-
PDE 10
Finite-Difference Method, FDM 1 2 3
-
PDE
11
1/5 3 (x1,x2,x3) u(x1,x2,x3) 2 G=0 2Second order PDE
linearnon-linear
c=0 homogeneousinhomogeneous
0,,,,,,,,,,,, 32132131
2
21
2
23
2
22
2
21
2
xxxu
xu
xu
xu
xxu
xxu
xu
xu
xuG
0,,,,,, 3213
1321
3
1,
2
321
xxxcxuxxxb
xxuxxxa
i ii
ji jiij
-
PDE
12
2/5 u
aij aij=aji 3A
x(x1,x2,x3)A(x) 0xparabolic xhyperbolic xelliptic
ijji xxu
xxu
22
333231
232221
131211
aaaaaaaaa
A
-
PDE
13
3/5 2x,y
A
AC-B2 =00
CBBA
A
yxcuyu
xu
yuC
yxuB
xuA ,2 2
22
2
2
22 BACCACB
BA
IA
-
PDE
14
4/5
022
Yu
Xu
022
2
2
Y
uX
u
022
2
2
Y
uX
u
-
PDE
15
5/5 2
022
2
2
2
2
Q
zu
yu
xu
0222
2
2
2
2
uk
zu
yu
xu
Qzu
yu
xu
tuc
2
2
2
2
2
2
2
2
2
2
2
22
2
2
zu
yu
xuc
tu
Szu
yu
xuc
tu
-
PDE
16
conduction
convection
radiation
diffusion
convection
-
PDE
17
u heat fluxq
Fourier
c
2
2
xu
xu
xtuc
xuq
C mass fluxJ
Fick D
2
2
xCD
xCD
xtC
xCDJ
-
Fourier q(x,t)
x+x
PDE
18
1/2 1
u(x,t)
Ttemperature
x
q(x,t) q(x+x,t)
x
txutxq
,,
xx
txutxq
xx
txux
txux
txxutxxq
2
2
2
2
,,
,,,,
-
Q(x,t) heat source
PDE
19
2/2 x q
xx
txutxqtxxqq
2
2 ,,,
xt
txucxt
txucq
,,
t
txu
,
2
2
xu
tuc
Qxu
tuc
2
2
-
PDE
20
Initial/Boundary Conditions B.C.
time-marching unsteady, transienttime dependent
steady 1Dirichlet
2Neumann
0
3Robin 12
-
u
PDE
21
xT 2
T
T
x
s
u(x)
u(x+x)
+x
f(x)s
x x+x
xxfTTxtu
sinsin2
2
xfxuT
tu
2
2
2
2
Tc
xuc
tu 2
2
22
2
2
-
PDE 22
1 2 3
-
PDE
23
-
Discretization
Taylor
24PDE
-
Finite Difference Method
x x
i-1 i i+1
25PDE
x
xxxx
xxxdxd
x
0
lim
-
ii+1
x x
i-1 i i+1
xdxd ii
i
12/1
x0
i
211
11
2/12/12
2 2xx
xxx
dxd
dxd
dxd iii
iiii
ii
i
26PDE
-
Taylor1/3
x x
i-1 i i+1
iiiii x
xx
xx
x
333
2
22
1 !3!2
iiiii x
xx
xx
x
333
2
22
1 !3!2
27PDE
-
Taylor2/3
x x
i-1 i i+1
iiiii x
xx
xx
x
333
2
22
1 !3!2
iiiii x
xx
xx
x
333
2
22
1 !3!2
iii
ii
xx
xx
xx
3
32
2
21
!3!2
x
iii
ii
xx
xx
xx
3
32
2
21
!3!2
x
28PDE
-
Taylor3/3
x x
i-1 i i+1
iiiii x
xx
xx
x
333
2
22
1 !3!2
iiiii x
xx
xx
x
333
2
22
1 !3!2
ii
ii
xx
xx
3
3211
!32
2
(x)2
29PDE
-
x x
i-1 i i+1
2/13
33
2/12
22
2/12/11 !3
2/!22/2/
iii
ii xx
xx
xx
2/13
32
2/1
1
!32/2
ii
ii
xx
xx
(x)2
2/13
33
2/12
22
2/12/1 !3
2/!22/2/
iii
ii xx
xx
xx
x
30PDE
-
PDE
211
11
2/12/12
2 2xx
xxx
dxd
dxd
dxd iii
iiii
ii
i
222
11
1)(,2)(,1)(
)1()()()()(
xiA
xiA
xiA
NiiBFiAiAiA
RDL
iRiDiL
022
BFdxd
)1(0)(121
)1(0)(2
12212
211
NiiBFxxx
NiiBFx
iii
iii
31
-
Discretization
Taylor
Finite Element MethodFEM weak form
weak solution
32PDE
-
Handbook of Grid Generation
33FEM-intro
-
PDE 34
Finite-Difference Method, FDM 1 2 3
-
PDE
35
1Steady Convection-Diffusion Equation
1022
x
xu
xua 11,00 uu
a0
v
xPexa
BeABeAxu aaLPe
Pe: PecletL: =1
[L2T-1] [L1T-1]
-
PDE
36
2DNavier-Stokes + Continuity
0
1
1
2
2
2
2
2
2
2
2
yv
xu
yv
xv
yp
yvv
xvu
tv
yu
xu
xp
yuv
xuu
tu
-
PDE
37
Pex=0
0.00
0.20
0.40
0.60
0.80
1.00
0.00 0.20 0.40 0.60 0.80 1.00
Pe=0.00Pe=0.10Pe=1.00Pe=2.00Pe=10.0
Pe
xPe
Pe
xPe
eePe
xu
eexu
1
11
-
PDE
38
21111 2
2 xuuu
xuua iiiii
Rc: Reynolds
xaR
uRuuR
c
iciic
0242 11
iii qcqcu 2211
0242 2 cc RqqRq1, q2: 0242 11 iciic qRqqR
: :
i
c
ci
c
c
RRccu
RRqq
22
22,1 2121
q2 0 |Rc|
-
PDE
39
Rc=1.00x= 0.10, a= 1.00, v= 0.10
Rc=2.50x= 0.10, a= 1.00, v= 0.04
-0.20
0.00
0.20
0.40
0.60
0.80
1.00
0.00 0.20 0.40 0.60 0.80 1.00
Central Difference
Exact
-0.20
0.00
0.20
0.40
0.60
0.80
1.00
0.00 0.20 0.40 0.60 0.80 1.00
Central Difference
Exact
-
PDE
40
Rc
a= 1.00, v= 0.04
-0.20
0.00
0.20
0.40
0.60
0.80
1.00
0.00 0.20 0.40 0.60 0.80 1.00
Dx= 0.10, Rc= 2.50Dx= 0.05, Rc= 1.25Exact
-
PDE
41
1/22
1111 22 x
uuuxuua iiiii
2
111 2x
uuuxuua iiiii
/1st order upwinding
iu 1iu1iu
a>0
xuua
xua ii
1
iu 1iu1iu
a
-
PDE
42
2/22
11111 222 x
uuuxaxuua
xuua iiiiiii
21111 2
22 xuuuxa
xuua iiiii
scheme
-
PDE
43
Rc=1.00x= 0.10, a= 1.00, v= 0.10
Rc=2.50x= 0.10, a= 1.00, v= 0.04
-0.20
0.00
0.20
0.40
0.60
0.80
1.00
0.00 0.20 0.40 0.60 0.80 1.00
Central DifferenceUpwindingExact
-0.20
0.00
0.20
0.40
0.60
0.80
1.00
0.00 0.20 0.40 0.60 0.80 1.00
Central DifferenceUpwindingExact
-
PDE
44
1/2implicit REAL*8(A-H,O-Z)real(kind=8), dimension(:), allocatable:: U1, U2real(kind=8), dimension(:,:), allocatable:: AMAT
!C!C-- INIT.
read (*,*) NE, VELO, DIFF
DX= 1.d0/dfloat(NE)N = NE + 1
LENGTH= 1.0d0allocate (U1(N), U2(N), AMAT(N,N))
REc= VELO*DX/DIFFPECLET= VELO/DIFF
COEFc2= VELO/(2.d0*DX)COEFc1= VELO/(1.d0*DX)COEFd= DIFF/(DX*DX)
!C!C-- Central Diff.
do j= 1, Ndo i= 1, NAMAT(i,j)= 0.d0
enddoenddo
do i= 1, NU1(i)= 0.d0
enddo
NE: N: =NE+1DT: tDX: xDIFF: vVELO: a
1022
x
xu
xua
11,00 uu
-
PDE
45
1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8
L=1.00
NENE=8
x=L/NENgrid pointN=NE+1
Fortran
C etc.
-
PDE
46
1/2implicit REAL*8(A-H,O-Z)real(kind=8), dimension(:), allocatable:: U1, U2real(kind=8), dimension(:,:), allocatable:: AMAT
!C!C-- INIT.
read (*,*) NE, VELO, DIFF
DX= 1.d0/dfloat(NE)N = NE + 1
LENGTH= 1.0d0allocate (U1(N), U2(N), AMAT(N,N))
REc= VELO*DX/DIFFPECLET= VELO/DIFF
COEFc2= VELO/(2.d0*DX)COEFc1= VELO/(1.d0*DX)COEFd= DIFF/(DX*DX)
!C!C-- Central Diff.
do j= 1, Ndo i= 1, NAMAT(i,j)= 0.d0
enddoenddo
do i= 1, NU1(i)= 0.d0
enddo
21111 2
2 xuuu
xuua iiiii
PECLET: =aL/v=a/vREc: =ax/v
COEFc1: a/xCOEFc2: a/(2*x)COEFd: v/x2
-
PDE
47
2/2do i= 2, N-1AMAT(i,i )= 2.d0 * COEFdAMAT(i,i-1)= -COEFc2 - COEFdAMAT(i,i+1)= COEFc2 - COEFd
enddo!C!C-- Boundary Conditions
U1(1)= 0.d0U1(N)= 1.d0AMAT(1,1 )= 1.d0AMAT(N,N )= 1.d0
!C!C-- Gaussian Elimination
call GAUSS (AMAT, U1, N, N)
stopend
xaRwhereuRuuR
uxx
aux
uxx
ax
uuuxuua
ciciic
iii
iiiii
0242
02
22
22
11
12212
21111
COEFc1: a/xCOEFc2: a/(2*x)COEFd: v/x2
1 2 3 4 5 6 7 8 9
i=2~N-1
-
PDE
48
2/2do i= 2, N-1AMAT(i,i )= 2.d0 * COEFdAMAT(i,i-1)= -COEFc2 - COEFdAMAT(i,i+1)= COEFc2 - COEFd
enddo!C!C-- Boundary Conditions
U1(1)= 0.d0U1(N)= 1.d0AMAT(1,1 )= 1.d0AMAT(N,N )= 1.d0
!C!C-- Gaussian Elimination
call GAUSS (AMAT, U1, N, N)
stopend
101
Nuu
1 2 3 4 5 6 7 8 9
1022
x
xu
xua
11,00 uu
-
PDE 49
Finite-Difference Method, FDM 1 2 3
-
PDE
50
21st order wave equation
a
-25.0
0.0
25.0
50.0
75.0
100.0
125.0
0 50 100 150 200 250 300
t=0.00 t=0.45
0),300(),0(
11050:60
50sin1000,
300110,500:00,
300
0
tutu
xxxu
xxxu
a
axua
tu
-
PDE
51
xuua
tu ii
211
explicitforward Euler
ninininin
in
in
in
i uuxtauu
xuua
tuu
11111
1
22
implicitbackward Euler
ni
ni
ni
ni
ni
ni
ni
ni uu
xtauu
xta
xuua
tuu
1
111
1
11
11
1
222n
iun-
-
PDE
52
FTCSForward-Time/Center-Space
xtacuucuu
uuxtauu
xuua
tuu
ni
ni
ni
ni
ni
ni
ni
ni
ni
ni
ni
ni
,2
2
2
111
111
111
Courant1
x=5.0, t= 0.01666, c~1.00 x=5.0, t= 0.015, c=0.90 x=5.0, t= 0.0075, c=0.45
-
PDE
53
t=0.45
t/x
-3.00E+04
-2.00E+04
-1.00E+04
0.00E+00
1.00E+04
2.00E+04
3.00E+04
0 50 100 150 200 250 300
C=1.00C=0.90C=0.45Exact
-
PDE
54
Von Neumann Stability Analysis
IinxiIknn
i egegu gngnIk= k x
1sin1
sin1sin2
22
22
111
cg
IcgIee
ueecuguuucuu
II
ni
IIni
ni
ni
ni
ni
ni
ni
IIinIiInni
ni
IIinIiInni
ni
IinIinni
ueegeegu
ueegeegu
gueggegu
11
11
11
gt|g|11
FTCSc=0
-
PDE
55
nininini
ni
ni
ni
ni
uucuuxuua
tuu
11
11
C=1.00
211 2
2 xuuuxa iii
-25.0
0.0
25.0
50.0
75.0
100.0
125.0
0 50 100 150 200 250 300
C=1.00C=0.90C=0.45Exact
-
PDE
56
Von Neumann Stability Analysis
ccccccgIcccIcccecg
uceucguuucuuI
ni
Ini
ni
ni
ni
ni
ni
11cos212cos2cos221
sincos1sincos11
1
22
11
(cos-1)0(1-c)0|g|1
ccg 11cos21
1
xtac
CFLCourant-Friedrichs-Lewy
-
PDE
57
Von Neumann Stability Analysis
I
ni
ni
Ini
ni
ni
ni
ni
ni
ni
ni
eccg
uuecgguc
ucuucuucuu
11
1
1 1111
111
(1-cos) 01|g|1
unconditional stable
cos1121
cos2cos2221
sincos1122
cc
cccc
Icccecc I
cos11211
ccg
-
PDE
58
Lax-Wendroff2
322
22
1
2
22
2
2
32
2
21
2
!2
tOxuatt
xuauu
xua
tu
xa
xu
ta
tu
tOttut
tuuu
xua
tu
ni
ni
ni
ni
nininininini
ni
ni
ni
ni
nin
in
i
uuucuucu
xuuuta
xuutauu
112
11
21122111
221
21
221
2
-
PDE
59
Lax-Wendroff
-25.0
0.0
25.0
50.0
75.0
100.0
125.0
0 50 100 150 200 250 300
C=1.00C=0.90C=0.45Exact
-
PDE
60
sin2
sin21
sincos12
1sincos12
221
22
221
22
22
2
22
2
22
2
Icc
IcccIcc
eccceccg
ueccucueccgu
II
ni
Ini
ni
Ini
(1-c2)0|g|1
2sin141 422 ccg
ninininininini uuucuucuu 112111 221
21
1
xtac
CFLCourant-Friedrichs-Lewy
-
PDE
61
Modified Equation1/2
xtacuucuu
xua
tu n
in
in
in
i
,1
1
Taylor
Taylor
1
43
3
32
2
2
1
43
3
32
2
21
!3!2
!3!2
tOttut
tut
tuuu
tOttut
tut
tuuu
ni
ni
ni
ni
2
3
231
332
3
33
3
3
2
22
2
2
,6622
xtOxxuat
tux
xuat
tu
xua
tu
4
-
PDE
62
Modified Equation2/25647
4
5
7122
7
xtOxua
tu
xtxtOxuxata
xua
tu
,
,,
3
33
3
3
223
3232
2
2
3223
3
32
2
2
2
,,,
1326
12
xxtxttOxuxcxa
xucxa
xua
tu
K.A. Hoffmann & S.T. Chiang, Computational Fluid Dynamics for Engineers Volume I, Chapter 4, Section 4.6 Modified Equation, Engineering Education System (EES), 1993.
-
PDE
63
Artificial/Numerical Viscosity
7u
eArtificial/Numerical Viscositydissipate
7 3223
3
32
2
2
2
,,,
1326
12
xxtxttOxuxcxa
xucxa
xua
tu
22
121
xucxae
e=0c=1Courant2tCourantLax-Wendroff
-
PDE 64
Finite-Difference Method, FDM 1 2 3
-
PDE
65
31/3Unsteady Diffusion Equation
1022
x
xu
tu
1,1,0,00)0,(
0.1
tutuxu
FTCSExplicitForward Euler
2111
122121
211
1
21
21
2
xtrruurruu
ux
tux
tux
tu
xuuu
tuu
ni
ni
ni
ni
ni
ni
ni
ni
ni
ni
ni
ni
ni
-
PDE
66
32/3Unsteady Diffusion Equation
ImplicitBackward Euler
nininini
ni
ni
ni
ni
ni
ni
ni
ni
ni
uruurru
uux
tux
tux
tx
uuut
uu
11
111
112
12
112
2
11
111
1
21
21
2
1022
x
xu
tu
1,1,0,00)0,(
0.1
tutuxu
-
PDE
67
33/3Unsteady Diffusion Equation
-Crank-Nicolson
nininininini
ni
ni
ni
ni
ni
ni
ni
ni
ni
ni
ni
ni
urururururur
ux
tux
tux
tux
t
xuuu
xuuu
tuu
111
111
1
21
121
21
12
211
2
11
111
1
21
221
2
21
2221
-
-
PDE
68
ExplicitForward Euler
niu
niu 1
niu 1
1niu
niu
1niu
11
niu
11
niu
niu
niu 1
niu 1
1niu
11
niu
11
niu
ImplicitBackward Euler
-Crank-Nicolson
-
PDE
69
21
2
x
tr
)1(cos2121cos2
21
21
21 111
rrrgreerg
ureururegu
ruurruu
II
ni
Ini
ni
Ini
ni
ni
ni
ni
21
2sin2
1
12
sin4111
2sin41)1(cos21
2
2
2
r
rg
rrg
)cos1(211
21
21 1111
1
rg
uuegrurguegr
uruurru
ni
ni
Ini
ni
I
ni
ni
ni
ni
1cos1210cos11
rg
Crank-Nicolson
-
PDE
70
t=2.00
r= 0.515x= 0.10, t= 0.00515
r= 0.500x= 0.10, t= 0.00500
-0.50
0.00
0.50
1.00
1.50
0.00 0.20 0.40 0.60 0.80 1.00
r= 0.515
r= 0.500
Exact
-
PDE
71
1/3implicit REAL*8(A-H,O-Z)real(kind=8), dimension(:), allocatable:: U, U0, Breal(kind=8), dimension(:,:), allocatable:: AMATreal(kind=8) :: DX, DT, TIME, C, LENGTHinteger :: N
!C!C +-------+!C | INIT. |!C +-------+!C===
write (*,*) 'NE, DT, OMEGA'read (*,*) NE, DT, OMG
DIFF= 1.d0
DX= 1.d0/dfloat(NE)N = NE + 1EPS= 1.d-08
allocate (B(N), U(N), U0(N), AMAT(N,N))COEF= DIFF*DT/(DX*DX)
do j= 1, Ndo i= 1, NAMAT(i,j)= 0.d0
enddoenddo
do i= 1, NU (i)= 0.d0U0(i)= 0.d0
enddo
NE: N: =NE+1DT: tDX: xOMG: SOR1
-
PDE
72
2/3do i= 2, N-1AMAT(i,i )= 2.d0*COEF + 1.d0AMAT(i,i-1)= -COEFAMAT(i,i+1)= -COEFAMAT(i,i )= 1.d0/AMAT(i,i)
enddo!C!C-- Boundary Conditions
U(1)= 0.d0U(N)= 1.d0
!C===
!C!C +------------------+!C | TIME integration |!C +------------------+!C===
TIME= 0.d0doTIME= TIME + DT
BNRM2= 0.d0do i= 2, N-1
B(i) = U0(i)BNRM2= BNRM2 + B(i)**2
enddoif (BNRM2.eq.0.d0) BNRM2= 1.d0
nininini uruurru 11111 21
1,1,0,00)0,(
tutuxu
n
iib
1
2
2b
AMAT(i,i)
-
PDE
73
3/3!C!C-- SOR
do iter= 1, 100*NDNRM2= 0.d0do i= 2, N-1
UU= U(i)RESID= ((B(i) - AMAT(i,i-1)*U(i-1)
& - AMAT(i,i+1)*U(i+1))*AMAT(i,i)-UU)*OMGU(i)= UU + RESIDDNRM2= DNRM2 + RESID**2
enddoif (dsqrt(DNRM2/BNRM2).lt.EPS) exit
enddo
do i= 1, NU0(i)= U(i)
enddoif (TIME.ge.2.d0) exit
enddo!C===
!C!C-- Result
write (*,'(a,1pe16.6)') '### TIME', TIMEdo i= 1, N
XX = dfloat(i-1)*DXwrite (*,'(3(1pe16.6))') XX, U(i)
enddo
stopend
2
2
)()1(
b
xx kkui*ui n+1
**111,111,,
1
111,
1,
111,
1ii
niii
niiii
ii
ni
in
iiin
iiin
iii
uuuAuABA
u
BuAuAuA
-
PDE 74
Finite-Difference Method, FDM 1 2 3
-
PDE
75
1/3 1 3-
21 LU
-
PDE
76
2/3 31 LU
S.V. PatankarExponential Method
Patankar, S.V., A Calculation Procedure for Two-Dimensional Elliptic Situations, Numerical Heat Transfer, Vol.4, p.409, 1981
1111
115
15
1
211111
,0,10,1.01,1.0110
,,,0
iiiicic
iiiccicccic
ccciiiiii
mmmmFmRifmmmRDmFRDmRif
xaF
xDxaRumumum
-
PDE
77
Exponential MethodRc
Rc=1.00x= 0.10, a= 1.00, v= 0.10
Rc=2.50x= 0.10, a= 1.00, v= 0.04
-0.20
0.00
0.20
0.40
0.60
0.80
1.00
0.00 0.20 0.40 0.60 0.80 1.00
Central DifferenceUpwindingExponentialExact
-0.20
0.00
0.20
0.40
0.60
0.80
1.00
0.00 0.20 0.40 0.60 0.80 1.00
Central DifferenceUpwindingExponentialExact
-
PDE
78
3/3 23ScilabMatlabC/C++Fortran
201421913:00
1
1 23A4 8
8
2318