Professional Documents
Culture Documents
Develop a method to solve the Navier-Stokes equations using primitive variables (pressure and velocities), using a control volume approach on a staggered grid.! "Equations! "Discrete Form! "Solution Strategy! "Boundary Conditions! "Code and Results!
u = (u, v )
n = (nx , ny )
Conservation of Momentum!
u = (u , v ) n = nx , ny
! !t ! !t
" "
u dV = # ! " uu $ ndS #
S
1 % 1 %
! " ! "
Conservation of Mass!
v dV = # ! " vu $ ndS #
S
! " u ! n ds = 0
S
Computational Fluid Dynamics! Control volume! Two-dimensional ow! Select a square control volume, aligned with the coordinate directions! y!
n3 = (0,1)
n4 = (!1,0)
h! h!
Conservation of mass!
v-velocity!
u-velocity! x!
Conservation of mass!
vi!,j+1/2!
! "
u ! n ds = 0
h!
ui!-1/2,j! Pi!,j! ui!+1/2,j!
The velocity at the end of each time step must satisfy this constraint! Integrate over the boundary!
vi!,j-1/2!
h!
hu n + 1
i + 1/ 2, j
! hun + 1
i ! 1/ 2 , j
+ hv n + 1
i , j + 1/ 2
! hv n + 1
i , j ! 1/ 2
=0
Divide by h:!
+1 +1 +1 +1 un ! un + vn ! vn =0 i+ 1 / 2 , j i! 1 / 2 , j i, j + 1/ 2 i, j ! 1 / 2
Notice that when we apply the mass conservation equation to a control volume centered at i,j, we naturally pick up the velocities at the edges of the control volume. Nothing has been said so far about how the velocities at the edges are found. They could be interpolated from values at the cell center, or found directly using control volumes centered around the velocity at the edges. The second approach leads to STAGGERED GRIDS!
vi!,j+1/2!
h!
ui!-1/2,j!
Pi!,j!
ui!+1/2,j!
vi!,j-1/2!
h!
Computational Fluid Dynamics! Momentum equation! For the momentum, select a control volume around each velocity component!
vi,j+1/2!
vi+1,j+1/2!
ui-1/2j+1! Pi,j+1!
ui+1/2,j+1!
h!
Pi,j!
ui+1/2,j!
Pi+1,j!
h!
vi,j+1/2!
vi,j-1/2!
vi+1,j-1/2!
ui-1/2,j!
Pi,j!
ui+1/2,j!
h!
h!
ui-1/2,j+1! pi,j+1! ui+1/2,j+1! pi+1,j+1! vi,j+1/2! pi,j! vi,j-1/2! pi,j-1! vi,j-3/2! ui+1/2,j-1! ui+1/2,j! vi-1,j+1/2! pi+1,j! vi-1,j-1/2! pi+1,j-1! vi-1,j-3/2!
u=
ui+1/2,j!
ui+1/2,j-1!
1 u dV V !Vu 1 v = ! v dV V Vv 1 P = ! p dV V Vp
v!i,j+1/2!
h!
ui!-1/2,j!
Pi!,j!
ui!+1/2,j!
u - cell!
v!i,j-1/2!
h!
vi,j+1/2!
vi+1,j+1/2!
ui-1/2j+1! Pi,j+1!
ui+1/2,j+1!
! !t
"
u dV
h!
Pi,j!
ui+1/2,j!
Pi+1,j!
! !t
"
v dV
h!
vi,j+1/2!
vi,j-1/2!
vi+1,j-1/2!
ui-1/2,j!
Pi,j!
ui+1/2,j!
h!
h!
! !t
"
u dV #
1 n uin++1/2, j $ ui + 1/2, j
%t
h2
! !t
"
v dV #
%t
h2
! "
vi,j+1/2!
vi+1,j+1/2!
uu ! ndS
h!
Pi,j! ui+1/2,j! Pi+1,j!
vi,j+1/2!
vi+1,j+1/2!
vi,j-1/2!
vi+1,j-1/2!
((u )
! " uu ! ndS #
S 2 n i + 1, j
h!
$ (u 2 )in, j + (uv)n
i + 1/2, j + 1/2
$ (uv)n
i + 1/2, j $ 1/2
)h
2 ui-1/2,j Pi,j ui+1/2,j Pi+1,j ui+3/2,j !1 n n # (u 2 ) n i+ 1, j = " ( ui + 3 / 2 . j + ui + 1/ 2. j )$ 2 2 vi,j-1/2 vi+1,j-1/2 "1 n n $ (u 2 ) n i, j = # (ui+ 1 / 2. j + ui ! 1/ 2 . j )% 2 !1 n n n #! 1 n # (uv )n i + 1/ 2 , j + 1/ 2 = " (ui+ 1 / 2 . j + ui + 1/ 2. j + 1 )$ " (vi , j + 1/ 2 + vi + 1, j + 1/ 2 )$ 2 2
! ! ! ! !
! " vu ! ndS
S
ui-1/2j+1!
Pi,j+1!
ui+1/2,j+1!
ui-1/2j+1!
Pi,j+1!
ui+1/2,j+1!
h!
vi,j+1/2!
(v 2 )n i, j +1 =
ui+1/2,j!
!1 n (v + vn )# " 2 i, j +3 / 2 i, j +1/ 2 $
vi,j+1/2!
ui-1/2,j!
Pi,j!
((uv)
! " vu ! ndS #
S n i + 1/2, j + 1/2
h!
$ (uv)in$1/2, j +1/2 + (v 2 )n
i , j +1
$ ( v 2 )n
i, j
)h
Pi,j ui-1/2,j ui+1/2,j "1 n (v + vn )$ # 2 i, j +1/ 2 i, j!1/ 2 % !1 n n n #! 1 n # (uv )n i + 1/ 2 , j + 1/ 2 = " (ui+ 1 / 2 . j + ui + 1/ 2. j + 1 )$ " (vi , j + 1/ 2 + vi + 1, j + 1/ 2 )$ 2 2
(v 2 )n i, j =
(uv ) n i!1/ 2 , j + 1/ 2 =
vi,j+1/2!
vi+1,j+1/2!
! "
pnx dS
h!
Pi,j!
ui+1/2,j!
Pi+1,j!
vi,j-1/2!
vi+1,j-1/2!
h!
! "
pnx dS #
1 pi +1, j $ pi , j h !
ui-1/2j+1! Pi,j+1!
ui+1/2,j+1!
! "
pny dS
h!
vi,j+1/2!
ui-1/2,j!
Pi,j!
ui+1/2,j!
h!
! "
pny dS #
1 pi , j +1 $ pi , j h !
n2 = (0,1) n1 = (1,0)
h!
vi,j+1/2!
vi+1,j+1/2!
n3 = (!1,0)
h!
h!
Pi,j!
ui+1/2,j!
Pi+1,j!
n4 = (0, !1)
!! $ "u # ndS
S
vi,j-1/2!
vi+1,j-1/2!
+ &u ' &u ' &u ' &u ' ' % ! - ) h + ) h * ) h * ) h) ( ( ( & x & y & x &y( 4 ( , 1 3 2
h!
( #u $ #u $ #u $ #u $ $ ! " * & h + & h ' & h ' & h& #y%2 #x% 3 #y% 4 % ) #x %1
n n n n + ' + &u ' + &u ' + &u ' + &u ' )h = -- ) *- ) +- ) *- ) , & x ( i +1, j , & x ( i , j , & y ( , &y( ) , i + 1/2, j + 1/2 i + 1/2, j * 1/2 (
Computational Fluid Dynamics! Viscous termsx-momentum! Computing the derivatives at the boundary:!
n uin+1/ 2 , j ' uin'1/ 2, j " !u $ & # !x % i, j h
ui+1/2,j! ui+1/2,j! vi,j+1/2! vi+1,j+1/2!
Computational Fluid Dynamics! Viscous termsx-momentum! Computing the derivatives at the boundary:!
ui+1/2,j! vi,j+1/2! vi+1,j+1/2!
Pi,j!
ui+1/2,j!
Pi+1,j! ui+1/2,j!
ui+1/2,j!
Pi,j!
ui+1/2,j!
Pi+1,j! ui+1/2,j!
vi,j-1/2!
vi+1,j-1/2! ui+1/2,j!
vi,j-1/2! ui+1/2,j!
vi+1,j-1/2!
Substitute:!
n i+ 3/ 2 , j
+u
n i & 1/ 2 , j
& 2u
n i +1 / 2 , j
$ (h %
"" !u % n % " un " !u % n + uin+1/ 2, j (1 ( 2 uin+1/ 2, j % $$ ' ' h ) $ i +1/ 2, j +1 ( 'h $ ' $# !y & ' h # !y & i +1/ 2, j (1/ 2 & # & i +1/ 2, j +1/ 2 #
vi,j+1/2!
vi+1,j+1/2!
ui-1/2j+1! Pi,j+1!
ui+1/2,j+1!
Pi,j!
ui+1/2,j!
Pi+1,j!
vi,j+1/2!
vi,j-1/2!
vi+1,j-1/2!
ui-1/2,j!
Pi,j!
ui+1/2,j!
h!
h!
!! $ "u # ndS % ! u
n i + 3/2, j
+u
n i & 1/2, j
+u
n i + 1/2, j + 1
+u
n i + 1/2, j & 1
& 4u
n i + 1/2, j
!! $ "v # ndS % ! vn
i , j + 3/2
+ vn
i , j & 1/2
+ vn
i + 1, j + 1/2
+ vn
i & 1, j + 1/2
& 4 vn
i , j + 1/2
! !t
"
1 '
! "
pnx dS
Putting it together!
ui+1 / 2 , j ! ui+1 / 2 , j !1 2 n n n = (u )i +1, j ! (u 2 )n i, j + (uv ) i + 1/ 2 , j + 1 / 2 ! (uv ) i + 1/ 2 , j ! 1 / 2 "t h # + 2 un + un + un + un ! 4u n i ! 1/ 2, j i + 1/ 2, j+ 1 i + 1/ 2 , j ! 1 i + 1/ 2 , j h i + 3/ 2, j 1 ! (Pi +1, j ! Pi , j ) Where! h p P=
n n+1
! !t
"
1 '
! "
pny dS
( (
n +1 i, j +1/ 2
!v "t
n i, j +1/ 2
Where!
P=
p !
!1 2 n ( uv ) n ! ( uv ) n + (v 2 ) n i, j +1 ! (v ) i, j i +1/ 2, j +1/ 2 i!1/ 2, j +1/ 2 h # + 2 vn + vn + vn + vn ! 4v n i +1, j +1/ 2 i!1, j +1/ 2 i, j + 3 / 2 i +1/ 2, j !1/ 2 i, j +1/ 2 h 1 ! ( Pi, j +1 ! Pi, j ) h
1 n v in, + !1 j +1/ 2 ! v i, j +1/ 2 2 n = ( uv ) n ! ( uv ) n + (v 2 ) n i, j +1 ! (v ) i, j i +1/ 2, j +1/ 2 i!1/ 2, j +1/ 2 "t h # + 2 vn + vn + vn + vn ! 4v n i +1, j +1/ 2 i!1, j +1/ 2 i, j + 3 / 2 i +1/ 2, j !1/ 2 i, j +1/ 2 h 1 ! ( Pi, j +1 ! Pi, j ) h
( (
+1 +1 +1 +1 un ! un + vn ! vn =0 i+ 1 / 2 , j i! 1 / 2 , j i, j + 1/ 2 i, j ! 1 / 2
ui +1/ 2 , j ! ui+1/ 2, j !1 2 n 2 n n n = ( u )i +1, j ! ( u )i, j + ( uv ) i +1/ 2 , j +1/ 2 ! (uv ) i +1/ 2 , j !1/ 2 "t h 1 # ! (Pi+1, j ! Pi, j ) + 2 u n + un + un + un ! 4un i + 3 / 2, j i! 1/ 2, j i+ 1/ 2, j +1 i+ 1/ 2, j !1 i +1/ 2 , j h h
( (
) )
Solution Strategy!
1 n v in, + j + 1/ 2 ! v i, j + 1/ 2
"t
!1 2 n ( uv )n ! ( uv )n + (v 2 )n i, j +1 ! (v ) i, j i +1/ 2, j +1/ 2 i! 1/ 2, j +1/ 2 h 1 # n n n n n ! (Pi, j +1 ! Pi, j ) + 2 v i+1, j +1/ 2 + v i!1, j +1/ 2 + v i, j + 3/ 2 + v i+1/ 2, j !1/ 2 ! 4v i, j +1/ 2 h h =
u n +1
i +1/ 2, j
! u n +1
i!1/ 2, j
+ v n +1
i, j +1/ 2
v n +1
i, j !1/ 2
=0
+1 n un i, j ! u i, j n = !A n i, j ! # h Pi, j + D i, j "t
+1 ! h " un i,j = 0
Constraint on velocity!
! " u = lim# V $ 0
1 #V
! % u " n ds
S
Computational Fluid Dynamics! Discretization in time! To derive an equation for the pressure we take the divergence of!
n +1
uti , j ! un i, j "t
and!
+1 t un i , j ! ui , j
= ! A i, j + D i, j
n n
u i , j = u i , j + " t (! A i , j + D i , j )
t n n n
! h " ui , j = 0
The result is! 0!
n +1
n +1
"t
= !#h Pi , j
n +1 i,j
= u ! " t # h Pi, j
t i, j
!2 hP i, j =
1 ! # ut " t h i, j
Computational Fluid Dynamics! Discretization in time! 1. Find a temporary velocity using the advection and the diffusion terms only:!
n n uti , j = un i, j + !t (" A i , j + D i, j )
1 ! P = ! h # uti, j "t
2 h i, j
ui , j = ui , j ! "t # h Pi, j
t
n +1
t=t+#t!
p1,ny!
v1,j+1!
p2,ny!
v2,j+1!
pi-1,ny!
vi-1,j+1!
pi,ny!
vi,j+1!
pi+1,ny!
vi+1,j+1!
ui+1,ny!
ui-1,ny!
u2,ny!
ui,ny!
pnx,ny!
vnx,j+1!
U1,ny!
Since a fractional number is not allowed in computer program,! redene velocity node indices:!
Array Dimension:!
p1,ny+1!
v1,ny!
p2,ny+1!
v2,ny!
pi-1,ny+1!
vi-1,ny!
pi,ny+1!
vi,ny!
pi+1,ny+1!
vi+1,ny!
ui+1,ny+1!
u2,ny+1!
ui-1,ny+1!
pnx,ny+1!
vnx,ny!
unx,ny+1!
ui,ny+1!
pnx+1,ny+1!
vnx+1,ny!
v(i,j)!
pnx+1,ny!
vnx+1,j+1!
u1,j+1!
ui-1,j+1!
p1,j+1!
v1,j!
p2,j+1!
v2,j!
pi-1,j+1!
vi-1,j!
pi,j+1!
vi,j!
pi+1,j+1!
vi+1,j!
ui+1,j+1!
u2,j+1!
ui,j+1!
pnx,j+1!
vnx,j!
pnx+1,j+1!
vnx+1,j!
u1,j!
P(i,j)!
u(i,j)!
p1,j!
v1,j-1!
p2,j!
v2,j-1!
pi-1,j!
vi-1,j-1!
pi,j!
vi,j-1!
pi+1,j!
vi+1,j-1!
ui+1,j!
ui-1,j!
u2,j!
ui,j !
pnx,j!
vnx,j-1!
pnx+1,j!
vnx+1,j-1!
u1,j-1!
ui-1,j,-1!
p1,j-1!
p2,j-1!
v2,2!
pi-1,j-1!
vi-1,2!
pi,j-1!
vi,2!
pi+1,j-1!
vi+1,2!
ui+1,-1j!
u2,j-1!
ui,j-1!
pnx,j-1!
vnx,2!
pnx+1,j-1!
vnx+1,2!
ui-1,2!
u1,1!
ui-1,1!
u2,1!
ui,1!
p1,1!
ui+1,1!
v(i, j ) = vi , j
h!
p1,2!
v1,1!
p2,2!
v2,1!
pi-1,2!
vi-1,1!
pi,2!
vi,1!
pi+1,2!
vi+1,1!
ui+12!
u2,2!
ui,2!
u (i, j ) = ui , j
v(i,j-1)!
v1,2!
u1,2!
pnx,2!
vnx,1!
pnx+1,2!
vnx+1,1!
p2,1!
pi-1,1!
pi,1!
pi+1,1!
Pnx,1!
pnx+1.1!
Array Dimension:!
=0! =0! =0! unx-2,ny+1! pnx-1,ny+1! unx-1,ny+1! pnx,ny+1! unx,ny+1! pnx+1,ny+1! vnx-1,ny! unx-2,ny! vnx,ny! unx,ny!
Array Dimension:!
unx-2,ny-1! pnx-1,ny-1! unx-1,ny-1! pnx,ny-1! unx,ny-1! pnx+1,ny-1! =0! p1,1! =0! u1,1! p2,1! =0! u2,1! p3,1! =0! u3,1! vnx-1,ny-2! vnx,ny-2! vnx+1,ny-2!
v3,3! p3,3! v3,2! p3,2! v3,1! u2,1! p3,1! =0! u3,1! u3,3! u3,3!
The edges of the pressure control volumes coincide with the boundaries of the computational domain. The normal velocities are therefore specied directly on the walls!
p1,1! =0!
u1,1!
p2,1! =0!
Computational Fluid Dynamics! Velocity Boundary Conditions! Velocity of wall is given, Uwall (no-slip) ! Interpolate linearly!
vi,3! pi,3! vi,2! pi,2! ui,2! ui,3! vi+1,3! pi+1,3! vi+1,2! pi_1,2! vi+1,1! ui,1!
vi,1!
ui,1 = ! ui,2
(reection technique)!
Computational Fluid Dynamics! Boundary Conditions - Pressure! Apply continuity at the boundary:!
u n +1 ! u n +1 + v n +1 ! v n +1 = 0
i,2 i!1,2 i,2 i,1
0!
ui-1,3!
pi,3! vi,2!
ui,3!
Substitute into:!
u n +1 ! u n +1 + v n +1 = 0
i,2 i!1,2 i,2
ui-1,2!
pi,2! vi,1!
ui,2!
u n +1
Giving:!
i +1/ 2, j
! u n +1
i!1/ 2, j
+ v n +1
i, j +1/ 2
v n +1
i, j !1/ 2
=0
v in,2+1 = v it,2 !
"t (Pi,3 ! Pi,2 ) h "t uin,2+1 = uit,2 ! ( Pi +1,2 ! Pi,2 ) h "t n +1 t ui!1,2 = ui!1,2 ! ( Pi,2 ! Pi!1,2 ) h
ui-1,1!
pi,1!
ui,1!
Computational Fluid Dynamics! Solving the pressure equation! Solving for the pressure!
Pi, j =
v in,2+1 = v it,2 !
"t (Pi,3 ! Pi,2 ) h "t uin,2+1 = uit,2 ! ( Pi +1,2 ! Pi,2 ) h "t 1 t uin!+ = u ! ( Pi,2 ! Pi!1,2 ) 1,2 i!1,2 h
Substitute into:!
P (i, j ) i = 2, nx; j = 2, ny
u n +1 ! u n +1 + v n +1 = 0
i,2 i!1,2 i,2
1 $ h t ! (P + Pi"1, j + Pi, j +1 + Pi, j"1) " u " u ti "1, j + v ti , j " v ti , j " 1 & + (1 " ! )Pi, j ' 4 % i +1, j #t i, j
Giving:! "t "t "t uit,2 ! ( Pi +1,2 ! Pi,2 ) ! uit!1,2 + ( Pi,2 ! Pi!1,2 ) + v it,2 ! ( Pi,3 ! Pi,2 ) = 0 h h h Rearrange!
1 $ h t Pi, j = ! (Pi +1, j + Pi"1, j + Pi, j +1 + Pi, j"1) " u " u ti "1, j + v ti , j " v ti , j " 1 & + (1 " ! )Pi, j ' 3 % #t i, j
i = 2; i = nx; j = 2; j = ny
One is zero! Corner nodes:! (i, j ) = (2,2); ( nx,2); (2, ny );( nx, ny )
1 $ h t Pi, j = ! (Pi +1, j + Pi"1, j + Pi, j +1 + Pi, j"1) " u " u ti "1, j + v ti , j " v ti , j " 1 & + (1 " ! )Pi, j ' 2 % #t i, j
Computational Fluid Dynamics! Algorithm! Initial eld given! Determine u, v boundary conditions!
Initialize parameters and arrays, set time step! ! for is=1:nstep! set boundary conditions for ! tangential velocity (ghost! points)! ! Find predicted velocity! ! Solve for pressure using SOR! ! Find the projected velocity ! by adding the pressure gradient! ! PLOT! end!
t=t+#t!
1 $ h t Pi, j = ! (Pi +1, j + Pi"1, j + Pi, j +1 + Pi, j"1) " u " u ti "1, j + v ti , j " v ti , j " 1 & + (1 " ! )Pi, j ' 3 % #t i, j
1 $ h t Pi, j = ! (Pi +1, j + Pi"1, j + Pi, j +1 + Pi, j"1) " u " u ti "1, j + v ti , j " v ti , j " 1 & + (1 " ! )Pi, j ' 2 % #t i, j
Pressure!
p(i,j)=beta*c(i,j)*(p(i+1,j)+p(i-1,j)+p(i,j+1)+p(i,j-1)-...! (h/dt)*(ut(i,j)-ut(i-1,j)+vt(i,j)-vt(i,j-1)))+(1-beta)*p(i,j);!
where!
c(i,j)=1/4 for interior nodes; c(i,j)=1/3 for boundary nodes; ! c(i,j)=1/2 for corner nodes; ! Set p(i,j)=0 for ghost points. ! Set the intermediate normal velocities at the wall to zero!
nx=9;ny=9;dt=0.02;nstep=200;mu=0.1;maxit=100;beta=1.2;h=1/nx;! u=zeros(nx+1,ny+2);v=zeros(nx+2,ny+1);p=zeros(nx+2,ny+2);! ut=zeros(nx+1,ny+2);vt=zeros(nx+2,ny+1);c=zeros(nx+2,ny+2)+0.25;! uu=zeros(nx+1,ny+1);vv=zeros(nx+1,ny+1);w=zeros(nx+1,ny+1);! c(2,3:ny)=1/3;c(nx+1,3:ny)=1/3;c(3:nx,2)=1/3;c(3:nx,ny+1)=1/3;! c(2,2)=1/2;c(2,ny+1)=1/2;c(nx+1,2)=1/2;c(nx+1,ny+1)=1/2;! un=1;us=0;ve=0;vw=0;time=0.0;! ! for is=1:nstep! u(1:nx+1,1)=2*us-u(1:nx+1,2);u(1:nx+1,ny+2)=2*un-u(1:nx+1,ny+1);! v(1,1:ny+1)=2*vw-v(2,1:ny+1);v(nx+2,1:ny+1)=2*ve-v(nx+1,1:ny+1);!
for i=2:nx, for j=2:ny+1 % temporary u-velocity! ut(i,j)=u(i,j)+dt*(-(0.25/h)*((u(i+1,j)+u(i,j))^2-(u(i,j)+...! u(i-1,j))^2+(u(i,j+1)+u(i,j))*(v(i+1,j)+...! v(i,j))-(u(i,j)+u(i,j-1))*(v(i+1,j-1)+v(i,j-1)))+...! (mu/h^2)*(u(i+1,j)+u(i-1,j)+u(i,j+1)+u(i,j-1)-4*u(i,j)));! end, end! for i=2:nx+1, for j=2:ny % temporary v-velocity! vt(i,j)=v(i,j)+dt*(-(0.25/h)*((u(i,j+1)+u(i,j))*(v(i+1,j)+...! v(i,j))-(u(i-1,j+1)+u(i-1,j))*(v(i,j)+v(i-1,j))+...! (v(i,j+1)+v(i,j))^2-(v(i,j)+v(i,j-1))^2)+...! (mu/h^2)*(v(i+1,j)+v(i-1,j)+v(i,j+1)+v(i,j-1)-4*v(i,j)));! end, end!
for it=1:maxit % solve for pressure! for i=2:nx+1, for j=2:ny+1! p(i,j)=beta*c(i,j)*(p(i+1,j)+p(i-1,j)+p(i,j+1)+p(i,j-1)-...! (h/dt)*(ut(i,j)-ut(i-1,j)+vt(i,j)-vt(i,j-1)))+(1-beta)*p(i,j);! end, end! end! % correct the velocity! u(2:nx,2:ny+1)=...! ! ut(2:nx,2:ny+1)-(dt/h)*(p(3:nx+1,2:ny+1)-p(2:nx,2:ny+1));! v(2:nx+1,2:ny)=...! ! vt(2:nx+1,2:ny)-(dt/h)*(p(2:nx+1,3:ny+1)-p(2:nx+1,2:ny));! time=time+dt!
! "t 1 2 # h 4
(| u | + | v |)!t #2 "
Pressure!
8 6 4 2 0 -2 -4 -6 -8 30 25 20 15 10 5 5
Mo vi
ng
top
wa
ll!
30 25 20 15 10