Post on 02-Jan-2017
Pós Graduação em Engenharia Mecânica
PROGRAMA FRANCISCO EDUARDO MOURÃO SABOYA DEPÓS-GRADUAÇÃO EM ENGENHARIA MECÂNICAESCOLA DE ENGENHARIAUNIVERSIDADE FEDERAL FLUMINENSE
Doctoral Thesis
SOLUTION OF THE INCOMPRESSIBLE
NAVIER-STOKES EQUATIONS BY
PROJECTION METHODS USING THE
INTEGRAL TRANSFORM TECHNIQUE
DANIEL JOSÉ NAHID MANSUR CHALHUB
MARCH 2015
DANIEL JOSÉ NAHID MANSUR CHALHUB
SOLUTION OF THE INCOMPRESSIBLENAVIER-STOKES EQUATIONS BY
PROJECTION METHODS USING THEINTEGRAL TRANSFORM TECHNIQUE
Doctoral Thesis presented to the FranciscoEduardo Mourão Saboya Mechanical Engi-neering Graduate Program of the FederalFluminense University (UFF) as a partial re-quirement to obtain the degree of Doctor inSciences in Mechanical Engineering.
Advisors: Leandro Alcoforado Sphaier, Ph.D.Leonardo Santos de Brito Alves, Ph.D.
Universidade Federal FluminenseNiterói, March 9, 2015
SOLUTION OF THE INCOMPRESSIBLENAVIER-STOKES EQUATIONS BY
PROJECTION METHODS USING THEINTEGRAL TRANSFORM TECHNIQUE
This Thesis is a partial requirement to obtain the degree of
DOCTOR IN MECHANICAL ENGINEERING
Field of concentration: Thermosciences
Thesis approved by Examining Committee formed by the Professors:
Leandro Alcoforado Sphaier, Ph.D (Advisor)Universidade Federal Fluminense – PGMEC/UFF
Leonardo Santos de Brito Alves, Ph.D (Advisor)Universidade Federal Fluminense – PGMEC/UFF
Luiz Eduardo Bittencourt Sampaio, D.ScUniversidade Federal Fluminense – PGMEC/UFF
Maria Laura Martins-Costa, D.ScUniversidade Federal Fluminense – PGMEC/UFF
Luiz Claudio Gomes Pimentel, D.ScUniversidade Federal do Rio de Janeiro – COPPE/UFRJ
Renato Machado Cotta, Ph.DUniversidade Federal do Rio de Janeiro – COPPE/UFRJ
SOLUTION OF THE INCOMPRESSIBLENAVIER-STOKES EQUATIONS BY
PROJECTION METHODS USING THEINTEGRAL TRANSFORM TECHNIQUE
Esta Tese é parte dos pré-requisitos para a obtenção do título de
DOUTOR EM ENGENHARIA MECÂNICA
Área de concentração: Termociências
Aprovada em sua forma final pela Banca Examinadora formada pelosprofessores:
Leandro Alcoforado Sphaier, Ph.D (Advisor)Universidade Federal Fluminense – PGMEC/UFF
Leonardo Santos de Brito Alves, Ph.D (Advisor)Universidade Federal Fluminense – PGMEC/UFF
Luiz Eduardo Bittencourt Sampaio, D.ScUniversidade Federal Fluminense – PGMEC/UFF
Maria Laura Martins-Costa, D.ScUniversidade Federal Fluminense – PGMEC/UFF
Luiz Claudio Gomes Pimentel, D.ScUniversidade Federal do Rio de Janeiro – COPPE/UFRJ
Renato Machado Cotta, Ph.DUniversidade Federal do Rio de Janeiro – COPPE/UFRJ
Abstract
The present work developed a novel numerical method for solving the unsteady
incompressible Navier-Stokes equations with primitive variables in two dimensions that
can be easily extendable to three dimensions. The methodology is based on Projection
Methods using a mixed approach through the Classical Integral Transform Technique
(CITT). Knowing that the main bottleneck of the classical pressure-correction approach
is the solution of the pressure Poisson equation (PPE), this work proposes a different
approach using the classic Projection Method for advancing in time the Navier-Stokes
equations and CITT to find pressure dependence on the discrete velocity field in a semi-
analytical manner, using the previous time-step pressure field as a filter. For comparison
purposes, the Finite Volume Method (FVM) was also used, where the PPE was solved
with a Gauss-Seidel iterative procedure. Two variations of the method were proposed:
Single Transformation (CITT-ST) and Double Transformation (CITT-DT).
Initially the solution of the PPE using the semi-analytical proposed approach was
accomplished. A verification analysis was performed and showed that the spatial dis-
cretization order matched the expected value of 2 in both x and y directions and CITT
had a very high performance, converging with very low truncation orders. Preliminary
computational CPU time results revealed that CITT-DT was not the best choice for
this propose due to poor computational performance compared to CITT-ST.
The solution of the incompressible Navier-Stokes equations were computed in two
classic test cases: Lid-Driven Cavity and Backward-Facing Step flows. The obtained
results were compared with the literature showing a very good agreement. Both sim-
ulated test cases showed very similar behavior in the results: For very coarse meshes
CITT-ST and FVM had similar performances but for more refined meshes the former
had a dramatically better performance than the latter. For all cases CITT-ST without
filter scheme had the worst performance. The results showed that, although more in-
vestigations are needed, CITT-ST using pressure as filter has a great potential of being
a good substitute for the methodologies currently used for solving the PPE.
v
Resumo
No presente trabalho foi desenvolvido um novo método numérico para resolver as
equações de Navier-Stokes incompressíveis (N-S) transiente com variáveis primitivas em
duas dimensões que pode ser facilmente extensível a três dimensões. A metodologia é
baseada em Métodos de Projeção e utiliza uma abordagem mista através da Técnica da
Transformada Integral Clássica (CITT). Sabendo-se que o principal gargalo da abor-
dagem de pressão de correção clássica é a solução da equação de Poisson para pressão
(PPE), este trabalho propõe uma abordagem diferente, utilizando o Método da Projeção
clássico para o avanço no tempo de N-S e CITT para encontrar dependência da pressão
sobre o campo de velocidades discretas de uma forma semi-analítica, usando o campo
de pressão do passo de tempo anterior como um filtro. Para efeito de comparação, o
método dos volumes finitos (FVM) também foi utilizado, onde a PPE foi resolvida pelo
método de Gauss-Seidel. Foram propostos duas variações do método: Transformação
Simples (CITT-ST) e Transformação Dupla (CITT-DT).
Inicialmente a solução da PPE utilizando a abordagem proposta foi realizada. A
análise de verificação foi realizada e mostrou que a ordem de discretização espacial cor-
respondeu ao valor esperado de 2 em ambos direções x e y e CITT teve um desempenho
muito elevado, convergindo com ordens muito baixas de truncamento. Resultados de
custos computacionais preliminares revelaram que CITT-DT não foi a melhor escolha
para este objetivo devido ao mau desempenho em comparação com CITT-ST.
A solução de N-S foram computadas para dois casos: Problema da Cavidade e es-
coamento em um degrau. Os resultados obtidos foram comparados com a literatura
que mostrou uma boa concordância. Ambos os casos simulados apresentaram compor-
tamento muito semelhante nos resultados: Para malhas muito grossas CITT-ST e FVM
apresentaram desempenhos semelhantes, mas para malhas mais refinadas, o primeiro
obteve um desempenho muito melhor do que o segundo. Para todos os casos, CITT-ST
sem filtro apresentou o pior desempenho. Os resultados mostraram que, embora sejam
necessários mais investigações, CITT-ST com filtro tem um grande potencial de ser um
bom substituto para as metodologias atualmente utilizadas para a resolução da PPE.
vi
Contents
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v
Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi
Nomenclature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 Pressure-Based Methods Overview . . . . . . . . . . . . . . . . . . . . . 2
1.2 Integral Transform Technique Overview . . . . . . . . . . . . . . . . . . 4
1.3 Literature Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4 Objective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.5 Thesis Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2. Problem Formulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1 Pressure Poisson Equation . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3. Incompressible Navier-Stokes Numerical Solution . . . . . . . . . . . . . . . . 17
3.1 Staggered Grid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.2 Time Marching Schemes . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2.1 Explicit Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2.2 Implicit Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2.3 Projection Method . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2.3.1 Helmholtz-Hodge decomposition . . . . . . . . . . . . . 21
3.2.3.2 Classical Projection Method . . . . . . . . . . . . . . . 21
4. Solution of the Pressure Poisson Equation . . . . . . . . . . . . . . . . . . . . 27
4.1 Filtering Scheme for Integral Transformation . . . . . . . . . . . . . . . 28
4.2 Source Term Discretization . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.3 Classical Integral Transform Technique: Double Transformation . . . . . 30
4.3.1 Equation transformation for n > 0 and m > 0 . . . . . . . . . . . 33
4.3.2 Equation transformation for n = 0 and m > 0 . . . . . . . . . . . 33
vii
4.3.3 Equation transformation for n > 0 and m = 0 . . . . . . . . . . . 34
4.3.4 Recovery of the original pressure field . . . . . . . . . . . . . . . 34
4.3.5 Integration of discrete fields . . . . . . . . . . . . . . . . . . . . . 35
4.4 Classical Integral Transform Technique: Single Transformation . . . . . 36
4.4.1 Equation transformation for m > 0 . . . . . . . . . . . . . . . . . 38
4.4.2 Equation transformation for m = 0 . . . . . . . . . . . . . . . . 38
4.4.3 Recovery of the original pressure field . . . . . . . . . . . . . . . 40
4.4.4 Integration of the discrete fields . . . . . . . . . . . . . . . . . . . 40
4.5 Finite Volume Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5. Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.1 Poisson Equation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.1.1 Convergence Analysis . . . . . . . . . . . . . . . . . . . . . . . . 44
5.1.2 Computational Time Analysis . . . . . . . . . . . . . . . . . . . . 48
5.2 Incompressible Navier-Stokes Test Cases . . . . . . . . . . . . . . . . . . 48
5.2.1 Lid-Driven Cavity . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.2.2 Backward-Facing Step . . . . . . . . . . . . . . . . . . . . . . . . 61
5.3 Mass Conservation Analysis . . . . . . . . . . . . . . . . . . . . . . . . . 69
6. Summary and Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
viii
List of Figures
3.1 Discretized two dimensional cartesian domain using a staggered grid . . 18
5.1 Solution of the pressure Poisson equation using the proposed source term. 44
5.2 Single Transformation: Maximum absolute error vs. ∆x for ∆y =
1/1000, plotted together with the theoretical second order curve. . . . . 45
5.3 Double Transformation: Maximum absolute error vs. ∆x for ∆y =
1/1000, plotted together with the theoretical second order curve. . . . . 46
5.4 Single Transformation: Maximum absolute error vs. ∆y for ∆x =
1/1000, plotted together with the theoretical second order curve. . . . . 46
5.5 Double Transformation: Maximum absolute error vs. ∆y for ∆x =
1/1000, plotted together with the theoretical second order curve. . . . . 47
5.6 Comparison of the computational time of CITT using single transforma-
tion and CITT using double transformation. . . . . . . . . . . . . . . . . 49
5.7 Comparison of the computational time of CITT using single transforma-
tion and CITT using double transformation to achieve an absolute error
of 10−6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5.8 Geometry of the lid-driven cavity flow [1]. . . . . . . . . . . . . . . . . . 51
5.9 Streamlines of the flow inside the lid-driven cavity simulated by CITT
using single transformation with filter scheme and with imax = jmax = 80. 54
5.10 Lid-Driven Cavity: Profile of streamwise velocity at the midplane of the
cavity (x = 0.5L and y = 0.5L) for Re = 100: Comparison of the present
results with the work of Ghia et al. [2]. . . . . . . . . . . . . . . . . . . 55
5.11 Lid-Driven Cavity: Profile of streamwise velocity at the midplane of the
cavity (x = 0.5L and y = 0.5L) for Re = 400: Comparison of the present
results with the work of Ghia et al. [2]. . . . . . . . . . . . . . . . . . . 56
5.12 Lid-Driven Cavity: Plots showing the CPU time consumed for each time-
step until the steady state for Re = 1, different meshes and methodolo-
gies. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
ix
5.13 Lid-Driven Cavity: Plots showing the CPU time consumed for each time-
step until the steady state for Re = 100, different meshes and method-
ologies. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.14 Lid-Driven Cavity: Plots showing the CPU time consumed for each time-
step until the steady state for Re = 400, different meshes and method-
ologies. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.15 Lid-Driven Cavity: Total computational time consumed to achieve steady
state. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.16 Geometry of the backward-facing step flow [1]. . . . . . . . . . . . . . . 61
5.17 Streamlines of the flow inside the backward facing step geometry sim-
ulated by CITT using single transformation with filter scheme, with
jmax = 80 (∆x = ∆y) and for vinlet = 0. . . . . . . . . . . . . . . . . . . 63
5.18 Backward-Facing Step: Reattachment length as function of Reynolds
number: Comparison of the present results with the work of Biswas et al.
[3]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
5.19 Backward-Facing Step: Plots showing the CPU time consumed for each
time-step until the steady state for Re = 1, different meshes and method-
ologies. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5.20 Backward-Facing Step: Plots showing the CPU time consumed for each
time-step until the steady state for Re = 10, different meshes and method-
ologies. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
5.21 Backward-Facing Step: Plots showing the CPU time consumed for each
time-step until the steady state for Re = 50, different meshes and method-
ologies. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.22 Backward-Facing Step: Total computational time consumed to achieve
steady state. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
x
List of Tables
3.1 Indices used for each dimension and for the Classical Integral Transform
Technique (CITT). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.1 Absolute error calculated for ∆y = 1000−1 and ∆x = 1000−1, for many
nmax (Single Transformation) and kmax (Double Transformation). . . . . 47
xi
Nomenclature
n Normal exterior vector
x Position vector x = (x, y, z)
t Time
L Domain dimension in x-direction
H Domain dimension in y-direction
ρ Fluid density
µ Dynamic viscosity
ν Kinematic viscosity
Re Reynolds number
Ma Mach number
v Velocity vector v = (u, v, w)
v Projection method intermediate velocity vector v = (u, v, w)
f Body force vector in acceleration dimensions f = (fx, fy, fz)
p Pressure
Q General source term for the pressure Poisson equation
BW Pressure Poisson equation Neumann boundary conditions for x = 0
BE Pressure Poisson equation Neumann boundary conditions for x = L
BS Pressure Poisson equation Neumann boundary conditions for y = 0
BN Pressure Poisson equation Neumann boundary conditions for y = H
n, m, k Indices for CITT
mmax, Truncation order for CITT Single Transformation
kmax Truncation order for CITT Double Transformation
i, q, p Indices for the position in mesh for x-direction
j, r, s Indices for the position in mesh for y-direction
imax Maximum mesh divisions in x-direction
xii
jmax Maximum mesh divisions in y-direction
∆x Cell dimensions in x-direction
∆y Cell dimensions in y-direction
l Index for the time step
Xn Eigenfunctions for the CITT solution in x-direction
Ym Eigenfunctions for the CITT solution in y-direction
λn Eigenvalues for the CITT solution in x-direction
βm Eigenvalues for the CITT solution in y-direction
Nxn Norms of the eigenvalue problem in x-directions
Nym Norms of the eigenvalue problem in y-directions
K1, K2 Dummy integration variables
c1, c2 Integration constants
V Domain volume
∂V Domain surface
Λ General function
ε Absolute error
( )∗ Filtered quantity
¯( ) Transformed quantity for CITT Single Transformation
¯( ) Transformed quantity for CITT Double Transformation
xiii
Chapter 1
Introduction
Incompressible flows are an approximation of flows that the material derivative of the
density is approximately zero,1 in other words, the fluid density is considered constant.
The majority of the fluid and associated flow we find in our daily lives belong to the
incompressible category. For example, most of the flow associated with air, water and
biological flows (such as blood) are all in the incompressible flow domain. For pure
ideal gases this approximation is translated in flows with low velocities compared to the
speed of sound in the gas (Ma� 1) and low temperature differences.
The major difficulty for the numerical simulation of incompressible flows is that the
velocity and pressure are coupled by the incompressibility constraint. To overcome this
difficulty in time dependent viscous incompressible flows, fractional step methods, which
are also referred in the literature as Projection Methods, were developed. Projection
Methods can be classified into three classes [4], namely pressure-correction methods [5],
velocity-correction methods [6], and consistent splitting methods [7]. The most attrac-
tive feature of Projection Methods is that, at each time step, one only needs to solve
a sequence of decoupled elliptic equations for velocity and pressure, making it very ef-
ficient for large scale numerical simulations. Although Projection Methods are widely
used, many authors have already drawn attention to the fact that the decomposition
used in this method is intrinsically second order accurate [4, 8].
Pressure-correction schemes are time-marching techniques composed of two sub-
1 DρDt = dρ
dt + v · ∇ρ ≈ 0
1
steps for each time step: the pressure is treated explicitly or ignored in the first sub-step
then is corrected in the second one. The linear momentum equations play the major
role in determining the velocity components. Thus, it is left to the continuity equation
to determine pressure, even if this variable does not appear explicitly in this equation.
The most common methodology to determine an equation for the pressure-correction is
to combine both equations by taking the divergence of the momentum equations and
substituting the continuity equation where necessary, effectively generating a Poisson
type equation for the pressure. This makes it possible to obtain an equation for the
pressure-correction, using the continuity equation.
The major computational time associated with this procedure is the solution of the
Poisson equation at each step, which consumes large amounts of computer time. One
reason for this is that the convergence rate of iterative methods that are commonly used
for this purpose, such as the Jacobi and Gauss-Seidel, rapidly decreases as the mesh is
refined [9].
On the other hand, in the realm of analytical methods, the Integral Transform Tech-
nique [10] has been playing a big role. It deals with expansions of the sought solution in
terms of infinite orthogonal basis of eigenfunctions, keeping the solution process always
within a continuous domain. The resulting system is generally composed of a set of un-
coupled differential equations which can be solved analytically. However, a truncation
error is involved since the infinite series must be truncated to obtain numerical results.
This error decreases as the number of summation terms (truncation order) is increased,
and the solution converges to a final value. Due to the series representation nature of
the Integral Transform Technique, the estimated error can be easily obtained, which
results in better global error control of the solution. The disadvantage associated with
this approach is the need for more elaborate analytical manipulation. This effort can
be greatly minimized with the use of symbolical computation [11].
1.1 Pressure-Based Methods Overview
Pressure based methods solve an equation for pressure obtained by combining two
or more conservation equations. In the literature there are particular terminologies
to designate each method, for example, Fractional Steps Methods [1, 12], Projection
2
Methods [13] and Pressure or Velocity-Correction Methods [14].
All these methods were developed following studies of Harlow andWelch [15], Chorin
[13], and Temam [16]. Since its inception, this class of methods has been thoroughly
studied in the literature over the past decades, several methods have been developed
using spatial discretization based on Finite Differences [13, 17], Finite Elements [18, 19],
and Finite Volumes [20–22].
In the method of Chorin [13], an incomplete form of the linear momentum equation
is solved at each time step, generating an approximate velocity field that does not satisfy
mass conservation. Then, a correction is applied to produce a divergence free velocity
field. The correction for the velocity field is an orthogonal projection in the sense that it
projects the velocity field on the previous time-step divergence free velocity field. This
step is called projection pitch and the method that uses this approach is known as a
Projection Method. Projection Methods eliminates the traditional pressure gradient of
the momentum equations.
The Pressure-Correction Method is similar to a traditional Projection Method, but
the pressure gradient term is kept in the momentum equations. In recent decades, the
Pressure-Correction Method has been widely studied in conjunction with the Finite
Volume Method for spatial discretization. Semi-Implicit Method for Pressure Linked
Equations (SIMPLE) [23] is one of the most widespread pressure-correction methods in
the literature. Almost a decade after SIMPLE, Karkari and Patankar [20] developed the
Semi-Implicit Method for Pressure Linked Equations Revised (SIMPLER), an extension
of SIMPLE applicable to compressible flows at various speeds.
In 2003, Munz et al. [8] drew attention to the first-order temporal accuracy limi-
tation of the SIMPLE class methods and proposed a fix for the method by employing
multiple variables for pressure, making it more efficient to simulate flows with low values
of Mach number. Similar adaptations have already been proposed by other researchers
[24] which proposed an algorithm for the simulation of unsteady viscous stratified com-
pressible flows, having the advantage to deal with a broad range of subsonic Mach
numbers, including nearly incompressible flows, with a single modelling, based on the
fully compressible Navier-Stokes equations. Roller and Munz [25] proposed a semi-
implicit predictor-corrector algorithm. In the predictor step, the asymptotic equations
3
are used to guess the global and large scale effects. Then the corrector step can be
viewed as an incompressible solver with compressibility effects acting as source terms.
In 1982, a Pressure-Correction Method with fractional steps was derived using the
Finite Element Method [18]. This technique was developed in order to significantly
reduce the computational time in unsteady viscous incompressible flows. Years later,
using the Finite Differences, Kan [26] developed a method with second order accuracy
in time.
A typical derivation of the Fractional Step Method for the numerical solution of
the incompressible Navier-Stokes can follow two distinct paths. On one hand, one can
discretize time first and then discretize the space. When one adopts this approach, there
is a controversy about which boundary conditions are imposed at each step. In many
Projection Methods, only the normal component of the velocity boundary condition is
imposed on the incompressibility step [27]. This fact, along with the need to impose
a boundary condition for the non-physical pressure, can produce numerical error near
the wall [28]. On the other hand, when the space discretization is performed prior
to time discretization in fractional steps, the boundary conditions must be established
beforehand. Procedures of this type, however, result in loss of generality.
An important feature of Fractional Step Methods is the order of the overall system
in relation to time discretization. Many methods are first-order [29], although some
second order methods [1, 30] have also been developed.
Since it was proposed, Fractional Step Methods grew in popularity due to its com-
putational efficiency, the possibility of subdividing a complex problem in simpler ones,
ease of computational implementation and also the use of more appropriate solution
techniques, considering the elliptic, parabolic or hyperbolic features of Navier-Stokes
equations. Some review papers [31, 32] show a summary of the major developments of
the last decade on the pressure-based methods.
1.2 Integral Transform Technique Overview
The initial ideas [33] that led to the creation of the Classical Integral Transform
Technique (CITT), according to Cotta [34], were introduced by Koshlyakov [35] in
1936. Grimnberg [36], in 1948, made progress of the theory by applying it to magnetic
4
and electrical problems. After a few decades, the authors Ozisik [37] and Tranter [38]
already conceived the idea of the integral transformation.
According to Özişik and Murray [39], in 1974, during the spacial race period, Russia
and other Eastern European Countries provided a major breakthrough in the develop-
ment and application of analytical methods, such as the Integral Transform Technique.
Concurrently, the United States and Western Europe focused on developing methods
called purely numerical like Finite Differences and Finite Elements. Furthermore, cal-
culations developed in the West required an increasing computational effort, while the
methodologies from Eastern Europe focused on extensive analytical manipulations.
This lasted until the mid seventies. Mikhailov [40], in 1972 gave a definitive con-
tribution to the consolidation of the Classical Integral Transform Technique when he
proposed a general processing core that unified the various individual transformations
developed until then, obtaining the general solution to the linear diffusion equation in
finite regions.
Özişik and Murray [39], in 1974, for the first time applied the integral transform
theory in diffusion problems with boundary conditions varying in position and time.
The proposed problem was characterized by the presence of non-transformable terms by
CITT, were handled by the substitution of the inversion formula, resulting in an infinite
system of ordinary differential equations of first order for the transformed potential.
To recover the original potential, approximate solutions of this system of differential
equations were obtained, giving then a rise to a hybrid analytical-numerical procedure
and, hence, taking the first steps towards the Generalized Integral Transform Technique
(GITT).
Another study that also contributed significantly to the development of the theory of
integral transforms was published by Mikhailov [41] in 1975. This work solved diffusion
problems with time dependent coefficients, which generated terms that were also not
transformable by the CITT. Using an auxiliary time-dependent eigenvalue problem and
applying the same procedure used by Özişik and Murray [39], Mikhailov obtained an
infinite system of differential equations with variable coefficients for the transformation
potential.
In 1984, Mikhailov and Özişik [10] presented a systematic way of applying the
5
Integral Transform Technique for solving various problems of linear diffusion, divided
into seven major classes. This text introduced the formalisms of CITT. According
to Cotta [42], the features of CITT approach, compared to the numerical methodologies,
generate a variety of advantages, as is shown below:
• Systematic methodology of solution;
• Reduction of processing time;
• Prescribed error control;
• Increase of numerical convergence rate;
• Nonexistence of meshes;
• Direct numerical determination of the function at a point (for defined values of
time and space) without the need of numerical calculation of previous temporal
states or other parts of the spatial domain;
• Versatility of the method in associating with others, due to the analytical/numerical
characteristic;
Due to the evolutionary process of the integral transform method, Cotta [42], pre-
sented a review of classic formalisms, which are now extended with emphasis on the
solution of nonlinear problems, which could only be solved by the GITT [34, 42–48]
which is a generalization of the CITT that can be applied to non-transformable sys-
tems, including nonlinear problems, making the method applicable to a virtually infinite
number of problems.
He also suggested techniques to improve the efficiency of the solution. Since then,
the GITT began to be disseminated rapidly and emerged as a powerful hybrid tool
for solving diffusive and diffusive-convective problems. Later, a book was developed
specifically for applications of the GITT [34].
1.3 Literature Review
In the realm of numerical solutions of the incompressible Navier-Stokes equations,
the pioneer work of Harlow and Welch [15] and Chorin [13] were among the first to
6
attempt a solution of the Navier-Stokes equations using primitive variables. They used
Finite Differences scheme to discretize the pressure Poisson equation and used an explicit
method for the time discretization.
Harlow and Amsteden [49] considerably revised and generalized the ICE2 technique
in such a way as to extend the applicability to fluid flows with arbitrary equations of
state and the full viscous stress tensor. The method is useful for the numerical solution
of time-dependent fluid flow problems in several space dimensions, for all Mach numbers.
In the work of Kim and Moin [1], a numerical method for computing three di-
mensional, time-dependent incompressible flows is presented. The method is based
on a fractional-step, or time-splitting, scheme in conjunction with the approximate-
factorization technique. It was showed that the use of velocity boundary conditions for
the intermediate velocity field can lead to inconsistent numerical solutions. Appropriate
boundary conditions for the intermediate velocity field are derived and tested.
Rosenfeld et al. [50] developed a fractional step method for solving the time-dependent
three-dimensional incompressible Navier-Stokes equations in generalized coordinate sys-
tems. The primitive variable formulation uses the pressure, defined at the center of the
computational cell, and the volume fluxes across the faces of the cells as the dependent
variables, instead of the Cartesian components of the velocity. The governing equations
are discretized by Finite Volumes using a staggered mesh system. The solution of the
continuity equation is decoupled from the momentum equations by a fractional step
method which enforces mass conservation by solving a Poisson equation. This proce-
dure, combined with a consistent approximation of the geometric quantities, is done to
satisfy the discrete mass conservation equation to machine accuracy, as well as to gain
the favorable convergence properties of the Poisson solver.
Langtangen et al. [51] and Guermond et al. [4] made a thorough overview of the
available methods for solving the incompressible Navier-Stokes equations. The main
subject of these works concern Projection Methods. Many variations of these methods
are considered and the issues of each formulation are pointed out. A long discussion is
done for each method explaining in details each one.
More recently, the work of Feng et al. [52] studied an implicit fractional-step method
2 Implicit Continuous-fluid Eulerian
7
for numerical solutions of the incompressible Navier-Stokes equations. The time ad-
vancement is decomposed into a sequence of two steps, and the first step can be seen
as a linear elliptic problem; on the other hand, the second step has the structure of
the Stokes problem. The two problems satisfy the full homogeneous Dirichlet boundary
conditions on the velocity. The authors did a convergence analysis and error estimates
for the intermediate velocities, the end-of step velocities and the pressure solution are
derived.
Chemetov and Cipriano [53] were concerned with boundary layer turbulence. It was
considered an incompressible viscous fluid in 2D domains with permeable walls. The
main goal of the work was to study the fluid behavior at very low viscosities (large
Reynold’s numbers).
Sen [54] proposed a new family of implicit compact Finite Difference schemes for
computation of unsteady convection-diffusion equations with variable convection coeffi-
cients. The schemes which are fourth order accurate in space and second or lower order
accurate in time depending on the choice of weighted time average parameter are then
applied to unsteady Navier-Stokes system. These schemes which are based on a five
point stencil with constant coefficients, named as “(5,5) Constant Coefficient 4th Order
Compact” [(5,5)CC-4OC], give rise to a diagonally dominant system of equations and
shows higher accuracy and better phase and amplitude error characteristics than some
of the standard methods.
The work of Viswanath and Tobasco [55] began a sequence of investigations whose
eventual aim is to derive and implement numerical solvers that can reach higher Reyn-
olds numbers than is currently possible. Every time step of a Navier-Stokes solver in
effect solves a linear boundary value problem. The use of Green’s functions was used
to derive the numerical solver.
A few studies utilized the GITT to solve the Navier-Stokes equations, one could
highlight the works of Guerrero and Cotta [56] and Pereira et al. [57] that solved the
fluid flow problem using the stream-function formulation. The remarkable work of Lima
et al. [58] managed to solve the unsteady incompressible Navier-Stokes using the GITT
with primitive variables. In the paper of Lima et al. [58], a hybrid numerical-analytical
solution was developed based on eigenfunction expansions in one space co-ordinate and
8
error-controlled numerical solution of the resulting system of coupled ordinary differ-
ential equations in the remaining space direction. The approach was illustrated for
developing flow between parallel-plates with uniform and irrotational inlet flow condi-
tion. The conventional Poisson-type equation for the pressure field with appropriate
boundary conditions was also transformed and simultaneously solved with the momen-
tum equation along the longitudinal direction, by considering eigenvalue problems for
each of the two potentials, defined in the transversal direction. The transversal velocity
component was then explicitly determined from the continuity equation.
In the work of Guedes and Ozisik [59, 60], the authors analyzed the unsteady forced
convection in laminar flow between parallel plates. This problem is solved using a hy-
brid scheme that combines the Generalized Integral Transform Technique (GITT) with
second-order Finite Differences, each applied in a different direction. Semi-analytical
results are presented for the variations in the amplitude of periodically varying fluid
bulk temperature and wall heat flux along the channel length for different frequen-
cies. An approximate formula for the decay of the peak bulk temperature amplitude is
developed.
Cotta and Gerk [61] employed the integral transform method in conjunction with
second-order-accurate explicit Finite Differences scheme, to handle accurately a class
of parabolic-hyperbolic problems that appear in connection with transient forced con-
vection inside ducts. The integral transformation process eliminates the independent
variables in which the diffusion phenomena dominates. Stability and convergence char-
acteristics of the proposed mixed approach are also examined.
Only a few works implemented a mixed approach using the Integral Transform
Technique and other discrete schemes. Among these works, one could mention the
work of Chalhub et al. [62] where a new methodology was developed for the solution of
unsteady convective heat transfer problems via the implementation of the Generalized
Integral Transform Technique and Finite Diferences in the same direction. The proposed
scheme was based on writing the unknown potential in term of eigenfunction expansions;
however, rather than transforming advection terms, an upwind approximation is used
prior to the integral transformation. The formal application of the methodology was
demonstrated for a general multidimensional problem, and numerical results for a one-
9
dimensional Burgers test case were calculated. With the approximation, numerical
diffusion is introduced, which was shown to reduce unwanted oscillations that arise at
higher Péclet values and stronger nonlinear effects, reducing mean square errors.
Castellões and Cotta [63] analyzed internal transient forced convection in laminar
regime for incompressible dynamically developed and thermally developing flow within
parallel-plate microchannels, considering arbitrary variations in time for inlet tempera-
ture and/or velocity field. The formulation considers rarefaction effects existent in the
slip-flow regime. The effects of axial conduction and viscous dissipation within the fluid
are included. The solution is obtained using partial integral transformation strategy.
The resulting system of transformed partial differential equations is numerically solved
by the numerical Method of Lines. Particular emphasis is placed on results for periodic
time disturbances of inlet temperature or pressure gradient.
A recent work by Chalhub et al. [64], which is the base of the present work, presented
an alternate method for solving the Poisson equation for calculating the pressure field
that appears in many discrete numerical solvers of the incompressible Navier-Stokes
equations. The methodology is based on a pressure-correction scheme with a mixed
approach that employs CITT for the calculation of the pressure field from a given
discrete velocity field. Two solution schemes were analyzed, these being the single
transformation and the double transformation. The Poisson equation was solved with
the two different schemes using a prescribed source term to simulate the discrete data
that could arise in the solution process of the momentum equation and an numerical
results are presented.
1.4 Objective
The present work has as main goal to develop a numerical method for solving the
unsteady incompressible Navier-Stokes equations with primitive variables in two dimen-
sions, although it could be easily extended to three dimensions. The novel methodology
is based on Projection Methods using a mixed approach through the Classical Integral
Transform Technique. Knowing that the main bottleneck of the classical pressure-
correction approach is the solution of the pressure Poisson equation. A common ap-
proach to acelerate the iterative solution convergence of the Gauss-Seidel scheme used
10
here as the Poisson solver is to employ multigrid procedures [1], however this work
proposes a new approach using the Integral Transform Technique to find the pressure
dependence on the discrete velocity field in a semi-analytical manner, eliminating the
need for an iterative solver.
1.5 Thesis Organization
In chapter 2, it is presented a review of the classical incompressible Navier-Stokes
formulation and it is shown in detail the steps to obtain the pressure Poisson equation.
It is also presented the characteristics of this Poisson equation and the difficulties of
solving it.
Chapter 3 presents the techniques to solve the incompressible Navier-Stokes equa-
tions together with the staggered grid that will be used in this work. Time marching
schemes are also shown highlighting the Projection Method, that is the method that
the present work is based on.
In chapter 4, a detailed explanation of the mathematical formulation using the Clas-
sic Integral Transform Technique is presented for the solution of the pressure Poisson
equation. Two variations of the method are proposed: Single Transformation and Dou-
ble Transformation.
Finally, the results are discussed in chapter 5, where a verification is presented first
with a thorough discussion of the computational time and the convergence for both
proposed methodologies. A validation is then presented in the second part of chapter 5
two test cases are solved: Lid-Driven Cavity and Backward-Facing Step. They include
a comparison with the literature and the comparison of the computational time of the
methodologies.
11
Chapter 2
Problem Formulation
We find many types of fluids everyday in our lives, such as water and air as examples
of Newtonian fluid. In order to model the flow of these fluids, the conservation laws of
physics and a constitutive equation are required. The combination of these principles
results in the Navier-Stokes equations [65].
The conservation laws of physics utilized are the mass conservation, also known as
the continuity equation, and the momentum conservation, also know as Newton’s second
law. For the constitutive equation, the Newton’s law of viscosity is used for Newtonian
fluids. In the case of the Navier-Stokes equations, one retains a fluid dissipative force,
a pressure force and possible body forces in the momentum balance. This force balance
defines one equation for each velocity component. Moreover, flows with low Mach
numbers and small temperature differences can be considered incompressible where
density is approximately constant. Consequently, the conservation of mass reduces to a
divergence free condition on the fluid velocity. The result is the incompressible Navier-
Stokes equations1:
ρ∂v
∂t+ ρv · ∇v = −∇p+ µ∇2v + ρf for x ∈ V and t ≥ 0 (2.1a)
∇ · v = 0 for x ∈ V (2.1b)
where µ is the fluid dynamic viscosity and ρ is the fluid density and both properties are
1 Some authors refer to the Navier-Stokes equations as just the momentum equation.
12
constants.
Equation (2.1a) is the momentum conservation equation and equation (2.1b) is the
mass conservation equation, also called the incompressibility constraint. The initial
conditions consist of prescribing v, whereas the boundary conditions can be of several
types: prescribed velocity components, vanishing normal derivatives of velocity compo-
nents, or prescribed stress vector components. Analyzing the system of equations (2.1),
it is clear that the dependent variables are the velocity vector v and the pressure p.
Recently, the incompressible Navier-Stokes equations drew attention to the scientific
community due to the inclusion of the problem as one of the Millennium Prize Problems
from Clay Mathematics Institute [66]. The prize goes to the researcher that proves the
Navier-Stokes existence and smoothness in three dimensions.
In addition to the theoretical, analytic difficulties of Navier-Stokes equations, the
equations also present practical problems. The system of equations forms a nonlinear,
coupled set of equations which admits analytical solutions in a limited number of cases.
So being, the last resource for solving this system of equation (2.1) is by numerical
techniques. The main issues of implementing numerically the solution of the Navier-
Stokes equations is how exactly to implement the incompressibility constraint (2.1b)
[67] and the non-existence of an equation for the pressure.
2.1 Pressure Poisson Equation
In order to overcome the difficulties of the incompressible Navier-Stokes equations,
it is common in the literature [6, 51, 68] to introduce a pressure Poisson equation by
applying the divergence operator on both sides of the momentum equation (2.1a). After
this procedure, it is possible to solve to problem for the unknown pressure using the
poisson equation. But another question remains: What are the boundary conditions
suitable for this new equation for pressure? It’s not a trivial question since there is
usually no information about the pressure on the domain nor the boundaries. What
most authors do to solve this issue is to use second type boundary condition2 since
there is a gradient of pressure in the momentum equation, arriving in the following
2 Also known as Neumann boundary conditions [69]
13
formulation:
∇2p = ∇ ·(−ρ∂v
∂t− ρv · ∇v + µ∇2v + ρf
)for x ∈ V and t ≥ 0 (2.2a)
(∇p) · n = ζ(x) for x ∈ ∂V (2.2b)
where n is the exterior normal vector to ∂V surface and ζ(x) is a function yet to be
discovered.
The pressure Poisson equation (2.2) with Neumann boundary conditions suffer from
two weaknesses:
1. Solution Nonuniqueness
The solution can only be determined up to a constant, which for this, it is neces-
sary to introduce one more constraint:
∫V
p(x) dV = 0 (2.3)
This basically implies that the mean value of the pressure is equal to zero. Any
other value for this integral could be chosen, hence, for simplicity the zero value
is chosen. As some authors already realized [68], the pressure is somewhat an
intriguing quantity in incompressible flows. It is not a thermodynamic variable
as there is no equation of state for an incompressible fluid. It is in one sense a
mathematical artefact – a Lagrange multiplier – that constrains the velocity field
to remain divergence-free; i.e., incompressible. But it’s important to note that
even though the absolute value of pressure has no physical meaning, the gradient
of the pressure is a relevant physical quantity: a force per unit volume.
2. Poisson-Neumann Compatibility Condition
If the Poisson equation for pressure (2.2) is integrated in the volume V, the
following equation is obtained.
∫V
∇ · (∇p) dV =
∫V
κ(x) dV (2.4)
14
where κ is the source term of the Poisson equation, given by
κ(x) = ∇ ·(−ρ∂v
∂t− ρv · ∇v + µ∇2v + ρf
)(2.5)
Applying the divergence theorem [70] in the left hand side of equation (2.4),
∫∂V
(∇p) · nds =
∫V
κ(x) dV (2.6)
According to the pressure Poisson formulation (2.2) on the boundaries of the
domain ∂V, (∇p) · n = ζ(x) is valid, so the above equation gives:
∫∂Vζ(x) ds =
∫V
κ(x) dV (2.7)
Equation (2.7) is known as the Poisson-Neumann Compatibility Condition. Ob-
serving the compatibility condition, it can be seen that the source term of the
Poisson equation κ(x) has a relation with the boundary conditions ζ(x), in other
words, the chosen boundary conditions must comply with this compatibility con-
dition for the problem to be mathematically well-posed. Once the source term of
this problem is given by relation (2.5), equation (2.7) can be rewritten as:
∫∂Vζ(x) ds =
∫V
∇ ·(−ρ∂v
∂t− ρv · ∇v + µ∇2v + ρf
)dV (2.8)
Applying again the divergence theorem on the right hand side,
∫∂Vζ(x) ds =
∫∂V
(−ρ∂v
∂t− ρv · ∇v + µ∇2v + ρf
)· nds (2.9)
For these to integrals to be equal in general, their integrands must be equal, so
an expression for the boundary condition is obtained:
ζ(x) = (∇p) · n =
(−ρ∂v
∂t− ρv · ∇v + µ∇2v + ρf
)· n
for x ∈ ∂V and t ≥ 0 (2.10)
15
This means that the boundary conditions for the pressure Poisson equation must
be of the above form for the mathematical formulation to be well-posed. It is
also important to note that the boundary condition obtained complies with the
momentum equation (2.1a).
By using the mass conservation to simplify the system of equations (2.2), the re-
placement of the continuity for the pressure Poisson equation (2.2) is achieved, resulting
in the following system to be solved:
ρ∂v
∂t+ ρv · ∇v = −∇p+ µ∇2v + ρf for x ∈ V and t ≥ 0 (2.11a)
∇2p = ∇ · (−ρv · ∇v + ρf) for x ∈ V (2.11b)
with the following conditions for pressure:
(∇p) · n =
(ρ∂v
∂t− ρv · ∇v + µ∇2v + ρf
)· n for x ∈ ∂V (2.12)∫
V
p(x) dV = 0 (2.13)
As it can be observed on the new set of equations (2.11) to be solved, on one hand
there is the momentum equation which has a derivative in time for the velocity and
on the other hand there is a Poisson equation for pressure, which is an elliptic partial
differential equation. This type of equation has the characteristic to propagate the
pressure at infinite speed in order to keep the flow always and everywhere incompressible;
i.e., it is always in equilibrium with a time-varying divergence-free velocity field. This
equation is also often difficult and expensive to compute.
In the next chapters the numerical solution of the incompressible Navier-Stokes
equations will be discussed and a new semi-analytical methodology based on the Clas-
sical Integral Transform Technique will be presented to solve the Poisson equation for
pressure.
16
Chapter 3
Incompressible Navier-Stokes Numerical Solution
As already seen in the previous chapter, the solution of the incompressible Navier-
Stokes equations (2.1) is remarkably challenging. For the sake of simplicity, it will be
considered from now on, only the two-dimensional case in cartesian coordinates as it
can be easily generalized and implemented in a three-dimensional problem or using
curvilinear coordinates.
3.1 Staggered Grid
Before continuing the mathematical approach of the solution for incompressible
flows, it is important to define the type of mesh to be used. The mathematical formula-
tion so far complies with the Neumann-Poisson compatibility condition (2.7), however
after discretizing the problem, the discrete system may not be compatible with this
condition depending on the type of chosen discretization [71]. Some authors as Abdal-
lah [71, 72] developed a way to achieve this compatibility using Finite Differences on
collocated grids.
Another way to overcome this issue is to use a staggered grid. On a staggered grid
the scalar variables (pressure, density, total enthalpy etc.) are stored in the cell centers,
whereas the velocity or momentum variables are located at the cell faces, as shown
in figure 3.1. This is different from a collocated grid arrangement, where all variables
are stored in the same positions. A staggered storage is mainly used on structured
grids for compressible or incompressible flow simulations. Using a staggered grid is a
17
simple way to avoid odd-even decoupling between the pressure and velocity. Odd-even
decoupling is a discretization error that can occur on collocated grids and which leads
to checkerboard patterns in the solutions [15]. This instability is due to the relationship
between the pressure and velocity. Notice that in the time-discretized equations, the
velocity depends on the first derivatives of the pressure and the pressure depends on the
first derivatives of the velocity. Hence, if a central difference is used and the nodes are
labelled odd or even (according to a checkerboard) then it is found that the pressure
at even nodes depends on the velocity at odd nodes and the pressure at odd nodes
depends on the velocity at even nodes. It happens similarly for the velocity. Thus, it is
not surprising that this decoupling leads to a checkerboard effect.
Lv1,1
H
u2,1
v1,2
p1,1u1,1
ui,j
vi,j+1
pi,j
vi,j
ui+1,j
uimax,jmax
vimax,jmax+1
vimax,jmax
pimax,jmax
uimax+1,jmax
y
x
Fig. 3.1: Discretized two dimensional cartesian domain using a staggered grid
18
The discretization parameters are given bellow for the pressure grid:
∆x = L/imax (3.1)
∆y = H/jmax (3.2)
xi = ∆x (i− 1/2) (3.3)
yj = ∆y (j − 1/2) (3.4)
The indices i and j are associated with the x and y coordinates, respectively. To
make it easier for the reader to follow the text, all indices used from now on are presented
in table 3.1. These indices are used by the spatial and time dicretization, and for the
summation indices of the Classical Integral Transform Technique.
Tab. 3.1: Indices used for each dimension and for the Classical Integral TransformTechnique (CITT).
x y t CITT
i j n
q r l m
p s k
3.2 Time Marching Schemes
The next step of the methodology is the time discretization. Although in this work
the Projection Method [13] is used to implement the numerical formulation, a quick
review of a few methods is also presented.
3.2.1 Explicit Methods
Explicit methods are considered the simplest time marching schemes. These meth-
ods calculate the state of a system of the next time-step using only the previous time-step
data. From many variations of this type of formulation, the simplest one is the explicit
19
forward Euler, which is presented bellow [51]:
vl+1 = ∆t
(−1
ρ∇pl + ν∇2vl + ρf l − vl · ∇vl
)− vl (3.5a)
∇2pl = ∇ ·(−ρvl · ∇vl + ρf l
)(3.5b)
This equation can be easily solved for vl+1 using some discrete differential equation
method like Finite Differences [73], Finite Volumes [23] or Finite Elements [74]. How-
ever, the main problem of this approach is that the mass conservation is not satisfied
in the next time-step l + 1, due to the Poisson equation, that represents the mass con-
servation, only being computed in the current time-step l, in other words, ∇ · vl+1 6= 0.
Furthermore, the Poisson equation must be solved using the boundary condition pre-
sented in equation (2.12).
3.2.2 Implicit Methods
One way to try to solve the problem pointed out for explicit methods is to implement
an implicit method instead:
vl+1 = ∆t
(−1
ρ∇pl+1 + ν∇2vl+1 + ρf l+1 − vl+1 · ∇vl+1
)− vl (3.6a)
∇2pl+1 = ∇ ·(−ρvl+1 · ∇vl+1 + ρf l+1
)(3.6b)
This formulation has now two unknowns vl+1 and pl+1, and hence it requires a
simultaneous solution of momentum and Poisson equation, it becomes impossible to
achieve with this formulation.
3.2.3 Projection Method
A more efficient way to solve incompressible flows was introduced by Chorin [13]
as Projection Methods. The key advantage of the Projection Method is that the com-
putations of the velocity and pressure fields are decoupled. The algorithm of Pro-
jection Method is based on the Helmholtz-Hodge decomposition1 of any smooth tree-
dimensional vector field into a solenoidal part and an irrotational part.
1 Also known as Helmholtz decomposition and theorem of Ladyzhenskaya
20
3.2.3.1 Helmholtz-Hodge decomposition
Helmholtz-Hodge decomposition theorem [75, 76] states that a smooth vector field
v defined on a simply connected domain can be uniquely decomposed into a divergence-
free (solenoidal) part vsol and an irrotational part virr. In other words:
v = vsol + virr (3.7)
Since virr is irrotational, there must be a scalar function ϕ that satisfies:
virr = ∇ϕ (3.8)
replacing the above relation in (3.7)
v = vsol +∇ϕ (3.9)
Applying the divergence operator on both sides of the equation and knowing that the
solenoidal part vsol is divergence free (∇ · vsol = 0), the following equation is obtained:
∇ · v = ∇2ϕ (3.10)
which is the essence of Projection Methods for solving the incompressible Navier-Stokes
equations.
3.2.3.2 Classical Projection Method
In Chorin’s [13] original Projection Method, one should first compute an intermedi-
ate velocity v, explicitly using the momentum equation by ignoring the pressure gradient
term:
v = ∆t(ν∇2vl + ρf l − vl · ∇vl
)− vl (3.11)
In the second half of the algorithm, the projection step, the intermediate velocity is
21
corrected to obtain the final solution of the time step vl+1:
vl+1 = v − ∆t
ρ∇pl+1 (3.12)
Applying the divergence operator on both sides of the equations (3.12) and knowing
that ∇ · vl+1 = 0 due to the mass conservation2:
∇2pl+1 =ρ
∆t∇ · v (3.13)
Where it should be noticed that the boundary conditions (2.12) must be applied for
the compatibility condition (2.7) to be satisfied.
In order to make it clear that the algorithm is really just an operator splitting
approach, in which one considers the viscous forces (in the first half step) and the
pressure forces (in the second half step) separately, let’s take the equation (3.12) and
rearrange on the form:
v = vl+1 +∆t
ρ∇pl+1 (3.14)
Equation (3.14) is the standard Helmholtz-Hodge decomposition (3.10) where:
vsol = vl+1 (3.15)
and
virr =∆t
ρ∇pl+1 (3.16)
A distinguishing feature of Chorin’s Projection Method is that the velocity field is
forced to satisfy a discrete continuity constraint at the end of each time step without
the need to compute the momentum equation and the Poisson equation simultaneously
as implicit methods require.
Typically, the Projection Method operates as a two-stage fractional step scheme,
a method that uses multiple calculation steps for each numerical time-step. In many
2 Note that ∇ · v is not necessarily equal to zero.
22
projection algorithms, the steps are split as follows:
1. The predictor step: First the system is progressed in time to a intermediate-time-
step position, solving the transport equations for mass and momentum.
2. At this point an initial projection may be implemented such that the inter-
mediate-time-step velocity field is enforced as divergence free.
3. The corrector step: These use the time-centred estimates of the velocity to form
final time-step state.
4. A final projection is then applied to enforce the divergence restraint on the velocity
field. The system has now been fully updated to the new time.
For the present work the time-marching scheme that will be used is the Projection
Method. For the two dimensional cartesian cases, equation (3.11) becomes:
u = ∆t F l − ul (3.17)
v = ∆tGl − vl (3.18)
where
F = ν
(∂2u
∂2x+∂2u
∂y2
)+ fx −
(u∂u
∂x+ v
∂u
∂y
)(3.19)
G = ν
(∂2v
∂2x+∂2v
∂y2
)+ fy −
(u∂v
∂x+ v
∂v
∂y
)(3.20)
In the present work, the staggered grid allows us to implement the discretization
of F and G by approximating the derivatives using a second order Finite Difference
approach for the advection and diffusion terms. However, it could be troublesome for
very high Reynolds numbers [9]. Furthermore, for future works, a high order upwind
scheme can be suggested.
The discretization of F is computed in the same mesh of u and using the following
scheme:
23
• For 1 < i < imax + 1 and 1 < j < jmax:
Fi,j = fx(xi −∆x/2, yj) +ν (ui−1,j − 2ui,j + ui+1,j)
∆x2+
− ui,j (ui+1,j − ui−1,j)
2∆x+ν (ui,j−1 − 2ui,j + ui,j+1)
∆y2+
− (ui,j+1 − ui,j−1) (vi−1,j + vi−1,j+1 + vi,j + vi,j+1)
8∆y(3.21a)
• For 1 < i < imax + 1 and j = jmax:
Fi,j = fx(xi −∆x/2, yj) +ν (ui−1,j − 2ui,j + ui+1,j)
∆x2+
− ui,j (ui+1,j − ui−1,j)
2∆x+
4ν (ui,j−1 − 3ui,j + UNi−1 + UNi)
3∆y2+
+(vi−1,j + vi−1,j+1 + vi,j + vi,j+1) (ui,j−1 + 3ui,j − 2 (UNi−1 + UNi))
12∆y(3.21b)
• For 1 < i < imax + 1 and j = 1:
Fi,j = fx(xi −∆x/2, yj) +ν (ui−1,j − 2ui,j + ui+1,j)
∆x2+
− ui,j (ui+1,j − ui−1,j)
2∆x+
4ν (−3ui,j + ui,j+1 + USi−1 + USi)
3∆y2+
− (vi−1,j + vi−1,j+1 + vi,j + vi,j+1) (3ui,j + ui,j+1 − 2 (USi−1 + USi))
12∆y(3.21c)
• For i = 1 and 1 ≤ j ≤ jmax
Fi,j = fx(xi −∆x/2, yj)+
+ν (ui,j − 2ui+1,j + ui+2,j)
∆x2− ui,j (−3ui,j + 4ui+1,j − ui+2,j)
2∆x+
+4ν(−2UWj + UvWj + UvWj+1
)∆y2
−
(UvWj+1 − U
vWj
)VWj
∆y(3.21d)
24
• For i = imax + 1 and 1 ≤ j ≤ jmax
Fi,j = fx(xi −∆x/2, yj)+
+ν (ui−2,j − 2ui−1,j + ui,j)
∆x2− ui,j (ui−2,j − 4ui−1,j + 3ui,j)
2∆x+
+4ν(−2UEj + UvEj + UvEj+1
)∆y2
−
(UvEj+1 − U
vEj
)VEj
∆y(3.21e)
and G is calculated in the same mesh of v and using using the following scheme:
• For 1 < i < imax and 1 < j < jmax + 1:
Gi,j = ρ fy(xi, yj −∆y/2) +ν (vi−1,j − 2vi,j + vi+1,j)
∆x2+
+(−ui,j−1 − ui,j − ui+1,j−1 − ui+1,j) (vi+1,j − vi−1,j)
8∆x+
+ν (vi,j−1 − 2vi,j + vi,j+1)
∆y2− vi,j (vi,j+1 − vi,j−1)
2∆y(3.22a)
• For i = imax and 1 < j < jmax + 1:
Gi,j = ρ fy(xi, yj −∆y/2) +4ν(vi−1,j − 3vi,j + VEj−1 + VEj
)3∆x2
+
−(−ui,j−1 − ui,j − ui+1,j−1 − ui+1,j)
(vi−1,j + 3vi,j − 2
(VEj−1 + VEj
))12∆x
+
+ν (vi,j−1 − 2vi,j + vi,j+1)
∆y2− vi,j (vi,j+1 − vi,j−1)
2∆y(3.22b)
• For i = 1 and 1 < j < jmax + 1:
Gi,j = ρ fy(xi, yj −∆y/2) +4ν(−3vi,j + vi+1,j + VWj−1 + VWj
)3∆x2
+
+(−ui,j−1 − ui,j − ui+1,j−1 − ui+1,j)
(3vi,j + vi+1,j − 2
(VWj−1 + VWj
))12∆x
+
+ν (vi,j−1 − 2vi,j + vi,j+1)
∆y2− vi,j (vi,j+1 − vi,j−1)
2∆y(3.22c)
25
• For 1 ≤ i ≤ imax and j = 1:
Gi,j = ρ fy(xi, yj −∆y/2)+
+ν (vi,j − 2vi,j+1 + vi,j+2)
∆y2− vi,j (−3vi,j + 4vi,j+1 − vi,j+2)
2∆y+
+4ν(−2VSi + V u
S i + V uS i+1
)∆x2
−USi
(V u
S i+1 − Vu
S i
)∆x
(3.22d)
• For 1 ≤ i ≤ imax and j = jmax + 1:
Gi,j = ρ fy(xi, yj −∆y/2)+
+ν (vi,j−2 − 2vi,j−1 + vi,j)
∆y2− vi,j (vi,j−2 − 4vi,j−1 + 3vi,j)
2∆y+
+4ν(−2VNi + V u
N i + V uN i+1
)∆x2
−UNi
(V u
N i+1 − Vu
N i
)∆x
(3.22e)
where the discrete boundary conditions are given by:
USi = u(xi, 0) (3.23)
UNi = u(xi, H) (3.24)
UWj = u(0, yj) (3.25)
UEj = u(L, yj) (3.26)
VSi = v(xi, 0) (3.27)
VNi = v(xi, H) (3.28)
VWj = v(0, yj) (3.29)
VEj = v(L, yj) (3.30)
UvWj = u(0, yj −∆y/2) (3.31)
UvEj = u(L, yj −∆y/2) (3.32)
V uS i = v(xi −∆x/2, 0) (3.33)
V uN i = v(xi −∆x/2, H) (3.34)
26
Chapter 4
Solution of the Pressure Poisson Equation
As seen in the previous sections, the pressure Poisson equation plays an impor-
tant role in incompressible computational fluid dynamics, so it is imperative to have a
method to solve this equation more efficiently. This works develops a new methodol-
ogy for solving the pressure Poisson equation using a semi-analytical scheme by integral
transformation. Two variations of the method are proposed: Single Transformation and
Double Transformation.
The general Poisson equation for pressure in two-dimensions, using cartesian co-
ordinates and compatible boundary conditions can be written in the following form:
∂2p
∂x2+∂2p
∂y2= Q(x, y) (4.1a)
(∂p
∂x
)x=0
= BW(y) = −ρ[(
∂u
∂t
)x=0
+ u(0, y)
(∂u
∂x
)x=0
+ v(0, y)
(∂u
∂y
)x=0
]+
+ µ
[(∂2u
∂x2
)x=0
+
(∂2u
∂y2
)x=0
]+ ρfx(0, y) (4.1b)
(∂p
∂x
)x=L
= BE(y) = −ρ[(
∂u
∂t
)x=L
+ u(L, y)
(∂u
∂x
)x=L
+ v(L, y)
(∂u
∂y
)x=L
]+
+ µ
[(∂2u
∂x2
)x=0
+
(∂2u
∂y2
)x=0
]+ ρfx(L, y) (4.1c)
27
(∂p
∂y
)y=0
= BS(x) = −ρ
[(∂v
∂t
)y=0
+ u(x, 0)
(∂v
∂x
)y=0
+ v(x, 0)
(∂v
∂y
)y=0
]+
+ µ
[(∂2v
∂x2
)y=0
+
(∂2v
∂y2
)y=0
]+ ρfy(x, 0) (4.1d)
(∂p
∂y
)y=H
= BN(x) = −ρ
[(∂v
∂t
)y=H
+ u(x,H)
(∂v
∂x
)y=H
+ v(x,H)
(∂v
∂y
)y=H
]+
+ µ
[(∂2v
∂x2
)y=H
+
(∂2v
∂y2
)y=H
]+ ρfy(x,H) (4.1e)
where Q(x, y) is the source term of the equation, which must be calculated in the same
nodes as the pressure, and for the Projection Method it is given by:
Q(x, y) =ρ
∆t
(∂u
∂x+∂v
∂y
)(4.2)
The problem can be rewritten in a compact general form:
∂2p
∂x2+∂2p
∂y2= Q(x, y) (4.3a)(
∂p
∂x
)x=0
= BW(y) (4.3b)(∂p
∂x
)x=L
= BE(y) (4.3c)(∂p
∂y
)y=0
= BS(x) (4.3d)(∂p
∂y
)y=H
= BN(x) (4.3e)
where BW(y), BE(y), BS(x) and BN(x) represent the functions for each boundary con-
dition shown previously.
4.1 Filtering Scheme for Integral Transformation
Before continuing to the solution via integral transformation, it is proposed a sepa-
ration of the pressure on the following form:
p(x, y, t) = p∗(x, y, t) + pf (x, y) (4.4)
where p∗ is the filtered pressure and pf is a known filter function.
28
Replacing equation (4.4) in the Poisson equation, the following form is obtained:
∂2p∗
∂x2+∂2p∗
∂y2= Q(x, y, t)−
(∂2pf∂x2
+∂2pf∂y2
)(4.5a)(
∂p∗
∂x
)x=0
= BW(y)−(∂pf∂x
)x=0
(4.5b)(∂p∗
∂x
)x=L
= BE(y)−(∂pf∂x
)x=L
(4.5c)(∂p∗
∂y
)y=0
= BS(x)−(∂pf∂y
)y=0
(4.5d)(∂p∗
∂y
)y=H
= BN(x)−(∂pf∂y
)y=H
(4.5e)
The filter function pf is chosen to be the pressure in the previous time-step pf = pl−1.
This procedure is based on a local-instantaneous filtering scheme [77, 78] and the for-
mulation yields:
∂2pf∂x2
+∂2pf∂y2
=∂2pl−1
∂x2+∂2pl−1
∂y2= Ql−1 (4.6)
Since the pressure boundary conditions are the same in the previous and current
time-step, the resulting boundary conditions for the filtered problem are homogeneous:
∂2p∗
∂x2+∂2p∗
∂y2= Q∗(x, y) (4.7a)(
∂p∗
∂x
)x=0
= 0 (4.7b)(∂p∗
∂x
)x=L
= 0 (4.7c)(∂p∗
∂y
)y=0
= 0 (4.7d)(∂p∗
∂y
)y=H
= 0 (4.7e)
where
Q∗(x, y) = Ql(x, y)−Ql−1(x, y) (4.8)
Instead of solving the general problem (4.3), the filtered homogeneous problem (4.7)
will be solved. This kind of formulation has much better convergence rate for the integral
29
transformation since the previous solution in time already contains meaningful amount
of information on the frequencies of the solution, so it requires a lower truncation order.
The filtered pressure can be interpreted as just a correction of the pressure of the
previous time-step.
4.2 Source Term Discretization
The source term of the Poisson equation Q is function of the velocities, which are
given in terms of a discrete field, in other words, we only have the velocities at the nodes
of the velocity mesh. This means that the source term is not a continuos function, so
Q is defined in a discrete form.
The discretization of Q is defined in the pressure mesh and is chosen to be of the
following form for the Projection Method:
Qi,j =ρ
∆t
(ui+1,j − ui,j
∆x+vi,j+1 − vi,j
∆y
)(4.9)
For this work, the second order central difference is chosen to discretize the deriva-
tives. However it is important to point out that this formulation very flexible and any
other type of discretization and source term could be used.
4.3 Classical Integral Transform Technique: Double
Transformation
In this work the Classical Integral Transform Technique [10] is used for the pur-
pose of solving the filtered Poisson equation (4.7). This is an analytical technique that
uses expansions of the sought solution in terms of an infinite orthogonal basis of eigen-
functions, keeping the solution process always within a continuous domain. The first
formulation to be used is the Double Transformation, which two transformations are
done, one in each direction. It is already known [10] that this approach is not the best
one due to the spectral nature of this kind of boundary value problem. However, for
comparison purposes, it will also be developed in this study. The reader should keep
in mind that a better approach (Single transformation) will be formulated in the next
30
section.
In order to establish the transformation pair, the pressure field is written as function
of an orthogonal eigenfunctions obtained from the following auxiliary eigenvalue problem
known as the Helmholtz classic problem in cartesian coordinates [10], where Xn(x) are
the eigenfunctions and λn are the eigenvalues for the x-direction.
d2Xn(x)
dx2+ λ2
nXn(x) = 0 (4.10a)
X ′(0) = 0 X ′(L) = 0 (4.10b)
which has the following solution:
Xn(x) = cos (λnx) (4.11a)
λn =πn
Lfor n = 1, 2, 3, . . . (4.11b)
It should be noted that for these boundary conditions, one needs also to account for
non-trivial solutions corresponding to λ0 = 0.
X0 = 1 (4.12a)
λ0 = 0 (4.12b)
Since we are transforming in two directions, similarly the eigenvalue problem in
y-direction is given by:
d2Ym(y)
dy2+ β2
mYm(y) = 0 (4.13a)
Y ′(0) = 0 Y ′(H) = 0 (4.13b)
where Ym(y) are the eigenfunctions and βm are the eigenvalues for the y-direction. This
problem has the following solution:
Ym(y) = cos (βmy) (4.14a)
βm =πm
Hfor m = 1, 2, 3, . . . , (4.14b)
31
Where it should also be noted that for these boundary conditions, one needs also
to account for non-trivial solutions corresponding to β0 = 0.
Y0 = 1 (4.15a)
β0 = 0 (4.15b)
Now, the transformation pair can be defined:
Transformation ⇒ ¯p∗n,m =
∫ H
0
∫ L
0p∗(x, y)Xn(x)Ym(y) dx dy (4.16a)
Inversion ⇒ p(x, y) =∞∑n=0
∞∑m=0
¯p∗n,mXn(x)Ym(y)
Nxn Nym(4.16b)
where the norm Nxn is defined by:
Nxn =
∫ L
0X2n dx =
L
2for n 6= 0 (4.17)
Nx0 =
∫ L
0X2
0 dx = L for n = 0 (4.18)
Similarly Nym is defined by:
Nym =
∫ H
0Y 2m dy =
H
2for m 6= 0 (4.19)
Ny0 =
∫ H
0Y 2
0 dy = H for m = 0 (4.20)
The inversion formula can be expanded in the following way:
p∗(x, y) =¯p∗0,0
Nx0 Ny0
+∞∑n=1
¯p∗n,0Xn(x)
Nxn Ny0
+∞∑m=1
¯p∗0,m Ym(y)
Nx0 Nym+
+
∞∑n=1
∞∑m=1
¯p∗n,mXn(x)Ym(y)
Nxn Nym(4.21)
Knowing that the mean value of pressure must be equal to zero as the extra condition
(2.3) states, p0,0 must be equal to zero. This simplifies the inversion formula to the
32
following form:
Inversion ⇒ p(x, y) =∞∑n=1
¯p∗n,0Xn(x)
Nxn Ny0
+∞∑m=1
¯p∗0,m Ym(y)
Nx0 Nym+
+
∞∑n=1
∞∑m=1
¯p∗n,mXn(x)Ym(y)
Nxn Nym(4.22)
4.3.1 Equation transformation for n > 0 and m > 0
Applying the transformation operator∫ H
0
∫ L0 (•)Xn Ym dx dy on both sides of the
filtered Poisson equation (4.7) and simplifying using the eigenvalue problems, we arrive
at:
−λ2n
¯p∗n,m − β2m
¯p∗n,m = ¯Q∗n,m (4.23)
where
¯Q∗n,m =
∫ H
0
∫ L
0Q∗(x, y)Xn Ym dx dy (4.24)
Solving for the transformed pressure:
¯p∗n,m = −¯Q∗n,m
λ2n + β2
m
(4.25)
4.3.2 Equation transformation for n = 0 and m > 0
Using the same procedure, but applying the operator∫ H
0
∫ L0 (•)Ym dx dy instead, it
is easy to see that the solution for the transformed pressure is:
¯p∗0,m = −¯Q∗0,mβ2m
(4.26)
where
¯Q∗0,m =
∫ H
0
∫ L
0Q∗(x, y)Ym dx dy (4.27)
33
4.3.3 Equation transformation for n > 0 and m = 0
Similarly using the operator∫ H
0
∫ L0 (•)Xn dx dy, it is obtained:
¯p∗n,0 = −¯Q∗n,0λ2n
(4.28)
where
¯Q∗n,0 =
∫ H
0
∫ L
0Q∗(x, y)Xn dx dy (4.29)
4.3.4 Recovery of the original pressure field
In order to obtain the filtered pressure, one should replace equations (4.25), (4.26)
and (4.28) in the inversion formula (4.22), obtaining:
p(x, y) = −∞∑n=1
¯Q∗n,0λ2n
Xn(x)
Nxn Ny0
−∞∑m=1
¯Q∗0,mβ2m
Ym(y)
Nx0 Nym+
−∞∑n=1
∞∑m=1
¯Q∗n,mλ2n + β2
m
Xn(x)Ym(y)
Nxn Nym(4.30)
The greatest advantage of this approach is that it requires a lot less analytical effort
and the final solution is simpler and more compact. However, the final solution has
a double summation that can increase computational time. In order to minimize this
time, one can use a reordering scheme, switching from the double summation to a single
one.
∞∑n=1
∞∑m=1
⇒∞∑k=1
(4.31)
By observing the solution (4.30), one can see that for lowers (λ2n + β2
m) the greater
is the term in the summation, hence, the reordering scheme is done by associating
pairs (n,m) with a single index k by organizing pairs that promote lowers (λ2n + β2
m)
in ascending order. By doing that, one can arrive at the following expression for the
34
pressure distribution:
p(x, y) = −∞∑n=1
¯Q∗n,0λ2n
Xn(x)
Nxn Ny0
−∞∑m=1
¯Q∗0,mβ2m
Ym(y)
Nx0 Nym+
−∞∑k=1
¯Q∗n(k),m(k)
λ2n(k) + β2
m(k)
Xn(k)(x)Ym(k)(y)
Nxn(k) Nym(k)
(4.32)
So far the solution is fully analytical, but the summation is infinite and to obtain a
finite result for pressure, it must be truncated at desired truncation orders (nmax, mmax
and kmax) for each summation which the convergences are treated independently.
p(x, y) = −nmax∑n=1
¯Q∗n,0λ2n
Xn(x)
Nxn Ny0
−mmax∑m=1
¯Q∗0,mβ2m
Ym(y)
Nx0 Nym+
−kmax∑k=1
¯Q∗n(k),m(k)
λ2n(k) + β2
m(k)
Xn(k)(x)Ym(k)(y)
Nxn(k) Nym(k)
(4.33)
4.3.5 Integration of discrete fields
We already know from the previous section that the source term Q is discrete. In
order to compute the term ¯Q∗, the integrals are separated in each cell of the domain,
obtaining the following form:
¯Q∗n,m =
imax∑i=1
jmax∑j=1
∫ yj+∆y/2
yj−∆y/2
∫ xi+∆x/2
xi−∆x/2Q∗Xn Ym dx dy (4.34)
¯Q∗0,m =
imax∑i=1
jmax∑j=1
∫ yj+∆y/2
yj−∆y/2
∫ xi+∆x/2
xi−∆x/2Q∗ Ym dx dy (4.35)
¯Q∗n,0 =
imax∑i=1
jmax∑j=1
∫ yj+∆y/2
yj−∆y/2
∫ xi+∆x/2
xi−∆x/2Q∗Xn dx dy (4.36)
Now to compute the integrals, an approximation of Q∗ inside the cells must be done.
In order to do so, the Taylor series [79] is utilized:
Q∗(x, y) ≈rmax∑r=0
smax∑s=0
(x− xi)r(y − yj)s
r! s!
(∂r+sQ∗
∂xr∂ys
)i,j
(4.37)
where the summation must be truncated and rmax and smax must be chosen according
to the desired approximation order. For the purpose of this work, the approximation
35
order required is 2, so rmax = 0 and smax = 0 are chosen, resulting in:
Q∗(x, y) ≈ Q∗i,j (4.38)
Hence, equations (4.34) to (4.36) becomes:
¯Q∗n,m ≈imax∑i=1
jmax∑j=1
Q∗i,j
∫ yj+∆y/2
yj−∆y/2
∫ xi+∆x/2
xi−∆x/2Xn Ym dx dy (4.39)
¯Q∗0,m ≈imax∑i=1
jmax∑j=1
Q∗i,j
∫ yj+∆y/2
yj−∆y/2
∫ xi+∆x/2
xi−∆x/2Ym dx dy (4.40)
¯Q∗n,0 ≈imax∑i=1
jmax∑j=1
Q∗i,j
∫ yj+∆y/2
yj−∆y/2
∫ xi+∆x/2
xi−∆x/2Xn dx dy (4.41)
where the integrals are computed analytically.
The approach showed above is equivalent to considering Q∗i,j approximately constant
within the cell (i, j), so it can be taken out of the cell integration.
4.4 Classical Integral Transform Technique: Single
Transformation
The second formulation to be developed in this work is the Single Transformation,
which only one transformation is done. As already mentioned in the previous section,
this is a better approach for this kind of problem.
In a similar manner to solve the problem from previous formulation, one need to
establish the transformation pair. For this approach, only one eigenvalue problem is
required since only one direction is going to be transformed. For this work the trans-
formation is going to be applied at y-direction, however x-direction could have been
chosen as well having in the same solution but swapping y for x. The eigenvalue prob-
lem for y-direction is the same as the previous formulation and it is repeated here for
convenience:
d2Ym(y)
dy2+ β2
mYm(y) = 0 (4.42a)
Y ′(0) = 0 Y ′(H) = 0 (4.42b)
36
which has the following solution:
Ym(y) = cos (βmy) (4.43a)
βm =πm
Hfor m = 1, 2, 3, . . . (4.43b)
It should also be noted that for these boundary conditions, one needs also to account
for non-trivial solutions corresponding to β0 = 0.
Y0 = 1 (4.44a)
β0 = 0 (4.44b)
The norm Nym is defined by:
Nym =
∫ H
0Y 2m dy =
H
2for m 6= 0 (4.45)
Ny0 =
∫ H
0Y 2
0 dy = H for m = 0 (4.46)
However the transformation pair is different:
Transformation ⇒ p∗n(x) =
∫ L
0p∗(x, y)Ym(y) dx (4.47a)
Inversion ⇒ p∗(x, y) =p∗0(x)
Ny0
+∞∑m=1
Ym(y)p∗m(x)
Nym(4.47b)
The final solution is given by two portions of the pressure: the average pressure in
the x-direction, p∗avg and the modified pressure p∗mod:
p∗(x, y) = p∗avg(x) + p∗mod(x, y) (4.48)
where p∗avg comes from the solution of the eigenproblem when β = 0 and p∗mod comes
from the solution when β > 0, in other words:
p∗avg(x) =p∗0(x)
Ny0
(4.49)
p∗mod(x, y) =
∞∑m=1
Ym(y)p∗m(x)
Nym(4.50)
37
4.4.1 Equation transformation for m > 0
The integral transformation of the governing differential equation is derived by ap-
plying the operator∫ H
0 (•)Ym dy on the filtered Poisson equation (4.7), leading to the
following transformed filtered Poisson equation:
∂2p∗m(x)
∂x2− β2
mp∗m(x) = Q∗m(x) (4.51a)(
∂p∗m(x)
∂x
)x=0
= 0 (4.51b)(∂p∗m(m)
∂x
)x=L
= 0 (4.51c)
where the transformation of the parameter Q∗ is given by:
Q∗m(x) =
∫ H
0Q∗(x, y)Ym dy (4.52)
Equation (4.51) admits a closed-form analytical solution.
p∗m(x) =1
4e−xβm
((−e2xβm − 1
)(coth(Lβm)− 1)
∫ L
0
eK1βmQ∗m(K1)
βmdK1−
2
∫ x
0
eK1βmQ∗m(K1)
βmdK1 −
(e2xβm + 1
)(coth(Lβm) + 1)
∫ L
0
e−K2βmQ∗m(K2)
βmdK2+
2e2xβm
∫ x
0
e−K2βmQ∗m(K2)
βmdK2
)(4.53)
where K1 and K2 are dummy integration variables.
4.4.2 Equation transformation for m = 0
In order to obtain the transformed differential equation for β = 0, a very similar
process is done by applying the operator1∫ H
0 (•) dy on the filtered Poisson equation
(4.7). The transformed equation is given bellow:
∂2p∗0(x)
∂x2= Q∗0(x) (4.54a)(
∂p∗0(x)
∂x
)x=0
= 0 (4.54b)(∂p∗0(x)
∂x
)x=L
= 0 (4.54c)
1 It is already known that Y0 = 1, so the operator∫H0
(•)Y0(y) dy becomes∫H0
(•) dy.
38
where
Q∗0(x) =
∫ H
0Q∗(x, y) dy (4.55)
which has the closed-form analytical solution after integrating twice:
∂p∗0(x)
∂x=
∫ x
0Q∗0(K1) dK1 + c1 (4.56)
p∗0(x) =
∫ x
0
∫ K2
0Q∗0(K1) dK1 dK2 + c1 x+ c2 (4.57)
where K1 and K2 are dummy integration variables and c1 and c2 are integration con-
stants.
By applying the boundary conditions, one arrives to the following system of equa-
tions:
c1 = 0, (4.58)
0 =
∫ L
0Q∗0(x) dx+ c1 (4.59)
which means that the integral must be zero:
∫ L
0Q∗0(x) dx = 0 (4.60)
Replacing the definition of Q∗0 (4.55) in the equation (4.60):
∫ L
0
∫ H
0Q(x, y) dy dx = 0 (4.61)
It is easy to see that this integral is in fact equal to zero due to the compatibility
condition (2.7). In order to obtain c2 we need to use the extra condition for the Poisson
equation (2.3). Applying the integral operator∫ L
0 (•) dx in the equation (4.57) and
already knowing that c1 = 0.
∫ L
0p∗0(x) dx =
∫ L
0
∫ x
0
∫ K2
0Q∗0(K1) dK1 dK2 dx+
∫ L
0c2 dx (4.62)
39
As∫ L
0 p∗0(x) dx = 0 due to the extra condition (2.3), simplification yields:
c2 = − 1
L
∫ L
0
∫ x
0
∫ K2
0Q∗0(K1) dK1 dK2 dx (4.63)
Since we are only interested in the gradient of pressure and not in its absolute value
and c2 is just an additive constant, we can simply consider it to be equal to zero. Finally
we obtain the solution for the transformed pressure:
p∗0(x) =
∫ x
0
∫ K2
0Q∗0(K1) dK1 dK2 (4.64)
4.4.3 Recovery of the original pressure field
In order to recover the original filtered pressure p∗ we only need to used the inversion
formula (4.47b):
p∗(x, y) =p∗0(x)
Ny0
+
mmax∑m=1
Ym(y)p∗m(x)
Nym(4.65)
Again, the summation must be truncated to a finite value (mmax) to be obtained.
The main advantage of this method is that, besides requiring more analytical manipu-
lation, the solution has only one summation compared to the Double Transformation.
4.4.4 Integration of the discrete fields
Using the same procedure showed in the previous section, the Taylor series (4.37) is
used to obtain an approximation of Q inside each cell. Again, the required order is 2,
so rmax = 0 and smax = 0 are chosen, resulting in the following scheme:
∫ H
0
∫ L
0Q∗(x, y) Λ(x, y) dx dy ≈
imax∑i=1
jmax∑j=1
Q∗i,j
∫ yj+∆y/2
yj−∆y/2
∫ xi+∆x/2
xi−∆x/2Λ(x, y) dx dy (4.66)
∫ xi
0
∫ H
0Q∗(K1, y)Λ(K1, y) dy dK1 ≈
≈i−1∑q=1
jmax∑r=1
Q∗q,r
(∫ ∆x2
+xq
xq−∆x2
∫ ∆y2
+yr
yr−∆y2
Λ(K1, y) dy dK1
)+
+
jmax∑r=1
Q∗i,r
(∫ xi
xi−∆x2
∫ ∆y2
+yr
yr−∆y2
Λ(K1, y) dy dK1
)(4.67)
40
∫ xi
0
∫ K2
0
∫ H
0Q∗(K1, y)Λ(K1, y) dy dK1 dK2 ≈
≈jmax∑r=1
Q∗i,r
∫ xi
xi−∆x2
(∫ K2
xi−∆x2
(∫ ∆y2
+yr
yr−∆y2
Λ(K1, y) dy
)dK1
)dK2+
+
i−1∑s=1
jmax∑r=1
Q∗s,r
∫ ∆x2
+xs
xs−∆x2
(∫ K2
xs−∆x2
(∫ ∆y2
+yr
yr−∆y2
Λ(K1, y) dy
)dK1
)dK2+
+
i−1∑s=1
jmax∑r=1
Q∗s,r1
2∆x
∫ ∆x2
+xs
xs−∆x2
(∫ ∆y2
+yr
yr−∆y2
Λ(K1, y) dy
)dK1+
+i−1∑s=1
s−1∑q=1
jmax∑r=1
Q∗q,r∆x
∫ ∆x2
+x(q)
x(q)−∆x2
(∫ ∆y2
+yr
yr−∆y2
Λ(K1, y) dy
)dK1 (4.68)
where Λ(x, y) is a general function, the integrals are computed analytically and K1 and
K2 are dummy integration variables.
The same procedure could be done transforming in the x-direction resulting in the
exact same result just swapping x by y.
4.5 Finite Volume Methods
A classic second order Finite Volume Method (FVM) [23] is also developed in this
work in order to validate and compare the results. The first step of the formulation is
the integration of the Poisson equation (4.3) in one cell of the discretized domain.
∫ yj+∆y/2
yj−∆y/2
∫ xi+∆x/2
xi−∆x/2
∂2p
∂x2dx dy +
∫ yj+∆y/2
yj−∆y/2
∫ xi+∆x/2
xi−∆x/2
∂2p
∂y2dx dy =
=
∫ yj+∆y/2
yj−∆y/2
∫ xi+∆x/2
xi−∆x/2Qdx dy (4.69)
Using a second order FVM classic approach, one could easily approximate the above
equation and obtain the following discretized equation:
pi−1,j − 2pi,j + pi+1,j
∆x2+pi,j−1 − 2pi,j + pi,j+1
∆y2= Qi,j (4.70)
which is valid for the internal cells (1 < i < imax and 1 < j < jmax).
For the boundary cells, the boundary conditions should be applied, resulting in the
following scheme:
41
• For 1 < i < imax and j = jmax:
pi−1,j − 2pi,j + pi+1,j
∆x2+pi,j−1 − pi,j
∆y2= Qi,j −
BNi
∆y(4.71)
• For 1 < i < imax and j = 1:
pi−1,j − 2pi,j + pi+1,j
∆x2+−pi,j + pi,j+1
∆y2= Qi,j +
BSi
∆y(4.72)
• For i = imax and 1 < j < jmax
pi−1,j − pi,j∆x2
+pi,j−1 − 2pi,j + pi,j+1
∆y2= Qi,j −
BEj
∆x(4.73)
• For i = 1 and 1 < j < jmax
−pi,j + pi+1,j
∆x2+pi,j−1 − 2pi,j + pi,j+1
∆y2= Qi,j +
BWj
∆x(4.74)
• For i = imax and j = 1
pi−1,j − pi,j∆x2
+−pi,j + pi,j+1
∆y2= Qi,j −
BEj
∆x+
BSi
∆y(4.75)
• For i = imax and j = jmax
pi−1,j − pi,j∆x2
+pi,j−1 − pi,j
∆y2= Qi,j −
BEj
∆x− BNi
∆y(4.76)
• For i = 1 and j = jmax
−pi,j + pi+1,j
∆x2+pi,j−1 − pi,j
∆y2= Qi,j +
BWj
∆x− BNi
∆y(4.77)
• For i = 1 and j = 1
−pi,j + pi+1,j
∆x2+−pi,j + pi,j+1
∆y2= Qi,j +
BWj
∆x+
BSi
∆y(4.78)
This system of equations can now be solved using an iterative solver. For the
present work, the Gauss-Seidel method will be used. In order to implement the Gauss-
Seidel method, the nonuniquiness condition (2.3) of the Poisson Neumann problem is
implemented within the solver subroutine, which automatically applies this condition
at each iteration.
42
Chapter 5
Results
In this chapter the results obtained from the computational code developed using
the new formulation will be presented. In the first section a comparison between the
two proposed methodologies for the solution of the pressure Poisson equation will be
presented and a comparison of computational time will be done. In the second section,
the solution of the incompressible flow in two test cases simulated by the proposed
method will be presented.
The codes were implemented in FORTRAN 90 using GFortran [80]. They were
compiled in serial computation, using the -O3 optimization flag and executed on an
Intel(R) Core (TM) i7-4820K 3.70GHz CPU.
5.1 Poisson Equation
This section will present some results for the solution of the Poisson equation for
the pressure field only. For all cases presented in this section, L = 1, H = 1, ρ = 1 and
µ = 1 were used and the source term of the Poisson equation (4.3) was assumed to be
of the following form:
Q = − sin
(2π y
H
)− sin
(2π x
L
)(5.1)
43
with the following boundary conditions:
BW = BE = BS = BN = 0 (5.2)
The formulation proposed above complies with the compatibility condition (2.7)
and the figure 5.1 shows the solution of the pressure Poisson equation for the proposed
problem.
0.0
0.5
1.0
x
0.0
0.5
1.0
y
-0.1
0.0
0.1p
Fig. 5.1: Solution of the pressure Poisson equation using the proposed sourceterm.
5.1.1 Convergence Analysis
With the results obtained, the convergence will be analyzed and discussed in this
subsection. The absolute error for the convergence analysis in x-direction used for
graphics and tables is:
εxi,j(imax) = pi,j(imax, 1000)− pi,j(2imax, 1000) (5.3)
44
where the absolute error ε is calculated at the mesh point (i, j) and for a mesh size (imax, 1000).
For the y-direction:
εyi,j(jmax) = pi,j(1000, jmax)− pi,j(1000, 2jmax) (5.4)
where the absolute error ε is calculated at the mesh point (i, j) and for a mesh size
(1000, jmax). For the calculation of the error in the x-direction, a refined mesh of 1000
divisions in y-direction was used (imax � jmax) in order minimize the effects of the
y-direction convergence and guarantee that the error in the x-direction is dominat. The
same 1000 mesh divisions in y was used for the error in the x-direction (jmax � imax).
In this particular problem, for the Double Transformation scheme (4.33) the trun-
cation orders will be the same for all three summations of the solution (kmax = nmax =
mmax). Hence, kmax will be used to refer to Double Transformation truncation order as
mmax will be used for Single Transformation.
●
●
●
●
●
0.01 0.02 0.05 0.10
5.×10-61.×10-5
5.×10-51.×10-4
5.×10-410-3
Δx
ϵx
mmax=20
● Present Results
2nd order curve
Fig. 5.2: Single Transformation: Maximum absolute error vs. ∆x for ∆y =1/1000, plotted together with the theoretical second order curve.
Since the variation of mmax and kmax is almost unnoticeable in graphical curves,
table 5.1 shows numerical values of the absolute error for many ∆x, ∆y and mmax,
kmax for single and double transformation. It is possible to see that the variation of
mmax and kmax has almost no effect for the majority of the cases. This shows that
the Integral Transform Technique converges very fast. It can also be seen that the
approximation order of the domain discretization remains 2, no matter what mmax is
utilized. This fast convergence was already expected due to the source term being
45
●
●
●
●
●
0.01 0.02 0.05 0.10
5.×10-61.×10-5
5.×10-51.×10-4
5.×10-410-3
Δx
ϵx
kmax=20
● Present Results
2nd order curve
Fig. 5.3: Double Transformation: Maximum absolute error vs. ∆x for ∆y =1/1000, plotted together with the theoretical second order curve.
●
●
●
●
●
0.01 0.02 0.05 0.10
5.×10-61.×10-5
5.×10-51.×10-4
5.×10-410-3
Δy
ϵy
mmax=20
● Present Results
2nd order curve
Fig. 5.4: Single Transformation: Maximum absolute error vs. ∆y for ∆x =1/1000, plotted together with the theoretical second order curve.
a function of sines and cosines, which facilitates the CITT convergence. Since this
preliminary study aims to evaluate only the converge, it will be used. Furthermore,
this source term was also chosen to comply with the Neumann Poisson compatibility
conditions (2.7). For simplicity, this section will show the figures for a fixed mmax = 20
and kmax = 20.
In order to illustrate the convergence of the solution with the variation of ∆x, fig-
ures 5.2 and 5.3 show graphics of the maximum absolute error versus ∆x mesh size,
where the former figure corresponds to Single Transformation and the latter to Double
Transformation. As one can observe the convergence order is very close to 2, which
was expected since all approximations made in the mathematical formulation had this
46
●
●
●
●
●
0.01 0.02 0.05 0.10
5.×10-61.×10-5
5.×10-51.×10-4
5.×10-410-3
Δy
ϵy
kmax=20
● Present Results
2nd order curve
Fig. 5.5: Double Transformation: Maximum absolute error vs. ∆y for ∆x =1/1000, plotted together with the theoretical second order curve.
Tab. 5.1: Absolute error calculated for ∆y = 1000−1 and ∆x = 1000−1, for manynmax (Single Transformation) and kmax (Double Transformation).
Single Transformation (∆y = 1/1000)nmax ∆x = 0.1 ∆x = 0.05 ∆x = 0.025 ∆x = 0.0125
10 1.06254× 10−3 2.56432× 10−4 6.27369× 10−5 1.55104× 10−5
20 1.06254× 10−3 2.56432× 10−4 6.27369× 10−5 1.55104× 10−5
30 1.06254× 10−3 2.56432× 10−4 6.27369× 10−5 1.55104× 10−5
Double Transformation (∆y = 1/1000)kmax ∆x = 0.1 ∆x = 0.05 ∆x = 0.025 ∆x = 0.0125
10 1.05115× 10−3 2.57722× 10−4 6.08988× 10−5 1.48577× 10−5
20 1.05870× 10−3 2.58233× 10−4 6.22900× 10−5 1.51263× 10−5
30 1.06621× 10−3 2.53687× 10−4 6.29041× 10−5 1.52816× 10−5
Single Transformation (∆x = 1/1000)nmax ∆y = 0.1 ∆y = 0.05 ∆y = 0.025 ∆y = 0.0125
10 1.05115× 10−3 2.57722× 10−4 6.08988× 10−5 1.48577× 10−5
20 1.05870× 10−3 2.58233× 10−4 6.22900× 10−5 1.51263× 10−5
30 1.06621× 10−3 2.53687× 10−4 6.29041× 10−5 1.52816× 10−5
Double Transformation (∆x = 1/1000)kmax ∆y = 0.1 ∆y = 0.05 ∆y = 0.025 ∆y = 0.0125
10 1.05115× 10−3 2.57722× 10−4 6.08988× 10−5 1.48577× 10−5
20 1.05870× 10−3 2.58233× 10−4 6.22900× 10−5 1.51263× 10−5
30 1.06621× 10−3 2.53687× 10−4 6.29041× 10−5 1.52816× 10−5
47
theoretical order. In other hand, figures 5.4 and 5.5 show the convergence of the ab-
solute error in respect to ∆y. The same behavior is seen, with the convergence order
approaching to 2.
5.1.2 Computational Time Analysis
For this subsection the same problem considered in the previous section (equations
(5.1) and (5.2)) will be considered and ∆x = ∆y will be utilized for all presented
cases. Figure 5.6 presents a comparison of the CPU time versus the summation trunca-
tion error for single and Double Transformation strategies. As can be seen, the Single
Transformation has better performance using approximately between 5 to 20 times less
computational time to obtain the same error as the Double Transformation. In other
words, the final performance of the CITT Single Transformation makes up for the bigger
effort in the analytical manipulation, showing that this is a better approach as already
expected.
Figure 5.7 shows a graphic comparing the Single Transformation and Double Trans-
formation to achieve a summation truncation error of 10−6 for different meshes. As can
be seen, the single transformation is faster on all the simulated meshes.
Another work by Chalhub et al. [81] did the same analysis for a different source term
Q = (x4 +x3 +x2 +x−77/60)(y4 +y3 +y2 +y). This source term also complies with the
compatibility condition however it does not have the sines and cosines nature, making
it more difficult for the CITT convergence. Results obtained by [81] were very similar
to the ones shown in this work and the conclusion was the same: Single Transformation
is much faster than Double Transformation.
In conclusion, the Single Transformation consumes much less CPU time. Hence,
from now on, in this work, the results will be presented only for CITT Single Transfor-
mation to solve the complete incompressible Navier-Stokes system.
5.2 Incompressible Navier-Stokes Test Cases
In this section the solution of some classic test cases in the literature will be com-
puted to validate the proposed formulation and evaluate its performance for more de-
manding problems. Three methods are computed and evaluated: CITT using Single
48
●
●
●
●
●
●
■
■
■
■■
■
10-9 10-8 10-7 10-6 10-5 10-40.1
0.5
1
5
10
Sum Truncation Error
TotalCPUTime(s)
Δx = Δy = 0.025; imax = jmax = 40
● Single Tranf.
■ Double Transf.
●
●
●
●
●
●
■
■
■
■■
■
10-9 10-8 10-7 10-6 10-5 10-4
1
5
10
50
Sum Truncation Error
TotalCPUTime(s)
Δx = Δy = 0.0125; imax = jmax = 80
● Single Tranf.
■ Double Transf.
●
●
●
●
●
●
■
■
■
■
■
■
10-9 10-8 10-7 10-6 10-5 10-45
10
50
100
Sum Truncation Error
TotalCPUTime(s)
Δx = Δy = 0.00625; imax = jmax = 160
● Single Tranf.
■ Double Transf.
Fig. 5.6: Comparison of the computational time of CITT using single transfor-mation and CITT using double transformation.
49
●
●
●
●
●
■
■
■
■
■
0.005 0.010 0.020 0.050
0.1
1
10
100
Δx = Δy
TotalCPUTime(s)
Sum Truncation Error = 10-6
● Single Tranf.
■ Double Transf.
Fig. 5.7: Comparison of the computational time of CITT using single transfor-mation and CITT using double transformation to achieve an absoluteerror of 10−6.
Transformation with filtering scheme (CITT-ST-F), CITT using Single Transforma-
tion without filtering scheme (CITT-ST) and a code developed using Finite Volumes
Methods (FVM) [23] together with Gauss-Seidel linear system solver [73]. As discussed
previously, the CITT using Double Transformation will not be presented in the following
section due to its poor performance.
For the computation of the test cases, all results were calculated with prescribed
relative precision of 10−6 for the Gauss-Seidel iterative solver used in FVM and also
for the CITT summation series convergence. In order to guarantee this precision in
the truncated summations, an automatic truncation procedure was developed and im-
plemented. The Projection Method was used and the time-steps ∆t utilized were the
same for all methods. The results computed in the current work were carried out using
only uniform meshes and also considering ∆x = ∆y. Neumann boundary conditions for
pressure on all impermeable/no slip walls were approximated to zero without violating
the compatibility condition (2.7).
The computational time showed in the next sections stands for: The CPU time for
each time step to calculate the coefficients and the summation for CITT; and the CPU
time to mount the matrix and to solve the system for FVM.
50
5.2.1 Lid-Driven Cavity
The first test case to be solved using the new methodology is the classic lid-driven
cavity problem. Figure 5.8 shows the geometry of this type of problem with its boundary
conditions together with the appropriate nomenclature. In this type of flow, the flow
is driven by the upper wall and several standing vortices exist inside the cavity whose
characteristics are functions of Reynolds numbers.
1; 0; / 0u v p y= = ∂ ∂ =
L
0
0
u
v
=
=
0
0
u
v
=
=
x
y
0; 0; / 0u v p y= = ∂ ∂ =
0
/ 0
v
p x
=
∂ ∂ =
0
/ 0
v
p x
=
∂ ∂ =
L
Fig. 5.8: Geometry of the lid-driven cavity flow [1].
Impermeable/no slip boundary conditions are used for the entire boundary, resulting
in the following formulation for x-component of the velocities:
u(0, y) = 0 (5.5)
u(L, y) = 0 (5.6)
u(x, 0) = 0 (5.7)
u(x, L) = Ulid (5.8)
51
and for the y-component:
v(0, y) = 0 (5.9)
v(L, y) = 0 (5.10)
v(x, 0) = 0 (5.11)
v(x, L) = 0 (5.12)
The normal gradient of the pressure is considered to be zero (∇p · n = 0) on the
entire boundary. The proposed boundary condition for pressure complies with the
compatibility condition (2.7).
The Reynolds number is computed using the characteristic length L using the fol-
lowing formula:
ReL =ρUlid L
µ(5.13)
where Ulid is the velocity of the lid and L is the length and height of the square cavity.
In order to illustrate the solution, figure 5.9 shows the streamlines for the lid-driven
cavity flow for the three solved Reynolds numbers with a mesh of 80 × 80. No visual
difference was observed between the three methods, so only the case computed by CITT-
ST-F is displayed. One can see that the corner eddies become more prominent when
the Reynolds is increased as expected from the literature [2].
Figures 5.10 and 5.11 show the streamwise velocity obtained from the novel method-
ologies at the midplane of the cavity (x = 0.5L and y = 0.5L) for Re = 100 and Re = 400
respectively, where the results from Ghia et al. [2] are also presented for comparison
purposes. As can be seen, the results for the present work using a mesh of 80×80 are in
good agreement with the literature data. From the graphics of the figures 5.10 and 5.11,
it is easy to note that all the three methods shown are graphically identical. Higher
Reynolds numbers require more refined meshes to converge as can be noted by a slight
difference between the present results and the data from [2] for Re = 400. Comparing
both velocity curves from figure 5.11 and noting that the difference between lines and
solid points are slightly higher for the v-component, one can realize that the horizontal
velocity component u also converges faster than the vertical component v.
Figures 5.12 to 5.14 display the computational time required by each time-step
52
until the steady state is reached for various meshes and Reynolds numbers. The first
point that draws attention is that the CITT-ST clearly requires the highest CPU time
overall. However, when the filter scheme is utilized (CITT-ST-F), the computational
time drops dramatically. While CITT-ST behavior remains approximately constant
with time-step, CITT-ST-F requires computational time gradually decreases with time-
steps. This behavior was expected due to the CITT-ST-F algorithm being fed by the
pressure calculated at the previous time-step and so improving the CPU time required
at each time-step. For FVM, a similar behavior is seen, with the computational time
decreasing gradually with time-step. For very poorly refined meshes (imax = jmax = 20)
the performance from CITT-ST-F and FVM are similar. However, when the mesh is
refined (imax = jmax ≥ 40), CITT-ST-F increasingly overcomes FVM performance.
The increase in performance seen for CITT-ST-F with the mesh refinement can be
explained by the semi-discrete integrals of the source term (equations (4.66) to (4.68))
being computed more accurately in more refined meshes. Hence, less terms in the
summation are required to achieve the prescribed precision.
In figure 5.15 the previous observations are summarized. It presents the total com-
putational time required to achieve steady state versus mesh size. The behavior of the
three graphics are very similar, which shows that they have low dependence on Reynold
number. As already mentioned, CITT-ST requires more time for all meshes, FVM and
CITT-ST-F are similar for higher ∆x = ∆y but CITT-ST-F has a better performance
for refined meshes.
53
0.0 0.2 0.4 0.6 0.8 1.00.0
0.2
0.4
0.6
0.8
1.0
x
y
ReL=1; Δx=Δy=0.0125; imax= jmax=80
0.0 0.2 0.4 0.6 0.8 1.00.0
0.2
0.4
0.6
0.8
1.0
x
y
ReL=100; Δx=Δy=0.0125; imax= jmax=80
0.0 0.2 0.4 0.6 0.8 1.00.0
0.2
0.4
0.6
0.8
1.0
x
y
ReL=400; Δx=Δy=0.0125; imax= jmax=80
Fig. 5.9: Streamlines of the flow inside the lid-driven cavity simulated by CITTusing single transformation with filter scheme and with imax = jmax =80.
54
●
●●●●
●
●
●●●
●●
●●●●●
0.0 0.2 0.4 0.6 0.8 1.0
-0.2
0.0
0.2
0.4
0.6
0.8
1.0
y
u
ReL=100; Δx=Δy=0.0125; imax= jmax=80
● Ghia et al, 1982
Finite Volumes
Single Tranf.
Single Tranf. (Filter)
●
●●●●
●
●●
●
●●●
●●●●
●
0.0 0.2 0.4 0.6 0.8 1.0
-0.2
-0.1
0.0
0.1
x
v
ReL=100; Δx=Δy=0.0125; imax= jmax=80
● Ghia et al, 1982
Finite Volumes
Single Tranf.
Single Tranf. (Filter)
Fig. 5.10: Lid-Driven Cavity: Profile of streamwise velocity at the midplane ofthe cavity (x = 0.5L and y = 0.5L) for Re = 100: Comparison of thepresent results with the work of Ghia et al. [2].
55
●
●●●●
●
●
●
●●
●●
●●●●
●
0.0 0.2 0.4 0.6 0.8 1.0-0.4
-0.2
0.0
0.2
0.4
0.6
0.8
1.0
y
u
ReL=400; Δx=Δy=0.0125; imax= jmax=80
● Ghia et al, 1982
Finite Volumes
Single Tranf.
Single Tranf. (Filter)
●
●●●●
●
●
●
●●●
●●●●
●
0.0 0.2 0.4 0.6 0.8 1.0
-0.4
-0.2
0.0
0.2
x
v
ReL=400; Δx=Δy=0.0125; imax= jmax=80
● Ghia et al, 1982
Finite Volumes
Single Tranf.
Single Tranf. (Filter)
Fig. 5.11: Lid-Driven Cavity: Profile of streamwise velocity at the midplane ofthe cavity (x = 0.5L and y = 0.5L) for Re = 400: Comparison of thepresent results with the work of Ghia et al. [2].
56
■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■
■■
■■■■■■
■■
■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■
■
■
■
■■
■■
■■
■■■
■
■■■■
■
■■
■
■
■
■
■■■■■
■
■■■
■
■■
■
■
■
■■
■■
■
■
■
■
■
■■■■
■
■
■
■■■
■■
■
■
■■■■
■
■■■
■
■
■■■
■
■
■
■
■
■■■■■
■■
■■■■■■■■■■■■■■
■■
■■
■■
■■
■
■
■■■
■
■
■
■
■
■■■■■
■
■■■■
■
◇
◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
○
○
○
○
○
○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○
○
○
○
○○○○○○○○○○○○○○○
○
○
○
○
○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○
○
○○○○○○○
○
○○○
○
○○○
○
○○○○○○○○○○○○○○○○○○○
○
○○○
○
○○
○○
○○○○○○
○
○○○
○
○
○
○
○
○○○○
○
○
○○○○○
○
○○○○
○○
○○○
○
○○○○
○
○○
○
○○○○○
○
○
○○
○
○○
○
○
○○○
○○○
○
○
○
○○○
○
○○○
○
○
○
○○○○○○
○○○○○○○
○○○
○○○○○
○○○○
○○
○
○
○
○○○○
○
○○
○○
○○○○○○○○○
○
○○○
○
0.00 0.02 0.04 0.06 0.08 0.10 0.12 0.14
0.001
0.005
0.010
0.050
0.100
Time-Step (s)
CPUTime(s)
Δx=Δy=0.05; imax= jmax=20
■ Finite Volumes
◇ Single Tranf.
○ Single Tranf. (Filter)
■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
◇
◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
○
○
○
○○○○
○
○
○○
○
○○○○○○○○○○○○○○○○○○○○
○
○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○
○○
○
○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○
○○
○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○
○○
○
○
○
○○○○○○○
○○○
○○○○○○
○○○○
○
○○○○
○○○○○○○○○○○○○○
○
○○○○○○○
○
○○○○○○○○
○○
○○○○○
○
○
○○○
○
○
○
○○○○
○
○○○○○○○○○○○○○
○
○○
○
○○○○○○
○
○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○
○○
○○○○
○
○○○○○○○○○○○○○○○
○
○
○
○○○○○○○○○○
○○○○○
○○
○○○○○
○
○○○○○
○○○○○
○○○
○
○○○
○
○○
○○
○○○○○○○
○○○○○○○○○○○○○○○○○○○○
○○
○
○
○
○
○
○
○○○
○
○
○○
○
○
○○
○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○
○○
○○○○
○
○○○○○
○
○○○○○○○○○○○○
○
○○
○
○○
○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○
○○○○○○○○○○○○○○○○○○
○
○○○○○○○○
○○○
○○○○○○○○○○○○○○○
○
○○
○
○○
○
○
○○○○○
○
○○○
○○
○○○○○○○○
○○
○○○○
○○
○○○
○
○○
○
○
○○
○○○○○
○○○○○○○○○○
○○
○
○
○○
○○
○
○○○
○○○○○
○
○○○○○○○○
○○○○○○○○○○○○○○○○○○
○○○
○
○
○○○○○○○○○○
○
○○○○○
○
○○
○
○○○○○○
○
○○
○
○
○○○
○○○
○○○○○
○
○
○○
○
○
○○
○○
○○○○○○
○○
○
○
○
○○○○
○○
○○○
○
○
○○
○○○
○○
○
○○○○○○○
○○○○○○
○
○○
○○○
○
○
○○
○○○○○○○○
○○○
○○○○○○
○
○○○○○
○○
○○
○
○○
○○
○○○○
○
○○○○○○
○○○○
○○○○○○
○
○○○○○○○○
○
○
○○
○
○○○○○○○○○
○○
○○○○
○○○○
○
○○○○○
○○
○
○
○○○○
○○○○
○
○
○
○○○○○○○○
○
○○○
○
○○○○○○○○○○○○○
○
○○○○○
○○
○○
○○○○
○
○
○
○○
○○○○○○○○○○○○○○○○○○
○
○○○
○
○○○
○○○○
○○
○○○○○○
○○○○○○○○○○○○○○○○○○○○
○○
○○
○○
○
○○
○○○
○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○
○○○
○○○
○
○○○
○○
○○○○○○
○
○○○○○
○○○
○○○
○
0.00 0.02 0.04 0.06 0.08 0.10
0.02
0.05
0.10
0.20
0.50
Time-Step (s)
CPUTime(s)
Δx=Δy=0.025; imax= jmax=40
■ Finite Volumes
◇ Single Tranf.
○ Single Tranf. (Filter)
■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■
■■■■
■
■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
◇
◇◇
◇
◇◇
◇◇◇◇
◇◇◇◇◇◇
◇
◇◇◇◇◇
◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇
◇
◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇
◇
◇
◇
◇◇◇◇◇◇◇◇◇◇
◇
◇
◇
◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
○
○
○
○
○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○
○○
○○○○○○○
○
○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○
○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○
○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○
○○○○○○○○○○○○○○
○○○○○○○○○○○○○
○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○
○○○○○○○○
○○○○○○○○○○○○○
○○
○○○○○○○○
○
○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○
○
○○○○○
○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○
○○○○○○○○○○○○○○○○○○○
○○
○○○○○○○○○
○○
○○○
○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○
○○○○○
○○○○○○○○○○○○○○
○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○
○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
0.00 0.02 0.04 0.06 0.08
0.5
1
5
10
Time-Step (s)
CPUTime(s)
Δx=Δy=0.0125; imax= jmax=80
■ Finite Volumes
◇ Single Tranf.
○ Single Tranf. (Filter)
Fig. 5.12: Lid-Driven Cavity: Plots showing the CPU time consumed for eachtime-step until the steady state for Re = 1, different meshes andmethodologies.
57
■■
■■■■■■■■■■■
■■■■■
■
■■
■
■■■■■■■■■
■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■
■
■■■■■■■
■
■■■■■■
■
■
■■■■■■■■■■■■■
■
■■■■■
■■
■
■
■■
■
■
■■■
■
■
■■
■■■■■■
■
■■■■■■■■■■■■■■■■■■
■■
■
■■■■■■■■■■■■
■■
■■
■■■
■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇
◇◇◇◇◇◇◇◇◇◇◇
◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇
○
○
○○
○○
○
○○○
○
○○
○○
○
○
○
○○○
○
○
○
○○○○○○○
○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○
○○○
○
○○○○○
○
○
○
○
○○○○○○○
○
○○○○○○○○○○○○○
○○○○○
○
○
○○○○○○○○○○
○
○○○
○
○○○○○○○○○○
○
○○○○○○○○○
○○
○
○○
○
○
○
○
○○
○○
○
○○○
○
○○○○○○
○
○
○○
○○○○○○○○○○
○○
○○○○
○
○○○○○
○○
○○○○○○○○○○○○○○○
○○○○○○○○○○○○
○
○○○○○○○
○
○○○
○
○○○○
○
○
○○○
○
○○○
○○
○○
○○
○○○○○
○○○
○
○○
○
○○○
○
○
○
○○○
0 2 4 6 8 10 12 14
0.005
0.010
0.050
0.100
Time-Step (s)
CPUTime(s)
Δx=Δy=0.05; imax= jmax=20
■ Finite Volumes
◇ Single Tranf.
○ Single Tranf. (Filter)
■■■■■■■■■■■■
■■■■■■
■
■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■
■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■
■
■■■■
■
■■■
■
■■
■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■
■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
◇
◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇
◇
◇
◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
○
○
○
○○○○○○○○○○○○○○○○
○
○
○
○○○○
○
○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○
○○
○
○
○
○○○○○
○○
○○○
○
○
○○○
○○○○○○○
○
○○○○○○
○○○○○○○○○
○○
○
○
○
○○○○
○
○○○○○○○○○○○○
○○○○○○○
○
○○○○○○○
○○
○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○
○○○
○○○○○○○○○○
○○○○○○○○○
○○○○○○○○○○○○○○○○
○○○○○
○○○○○○○○○○○○○○○○○○
○
○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○
○
○○○○○○
○
○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○
○○○○○○
○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○
○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○
○
○○○○○○○○
○○○○○○○○○○○○○○○○○○○
○○
○○○○
○○○○○
○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○
○
○○○○
○
○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○
○○
○○
○○○
○○○○
○
○○○
○
○○○○○○○○○○○○○
○○
○○○○○
○○○○○○○○
○○○○
○
○○○○○○○○○○○
○○
○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○
○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○
○
○
○○○○○○○○
○○○○
○
○○○○○
○○○○○○
○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○
○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○
○○
○
○
○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○
○○○○○○○○○○
○○○○○
○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○
○○○○
○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○
○
○○○
0 2 4 6 8 10
0.05
0.10
0.50
1
Time-Step (s)
CPUTime(s)
Δx=Δy=0.025; imax= jmax=40
■ Finite Volumes
◇ Single Tranf.
○ Single Tranf. (Filter)
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■
■■■■■■■■■■■
■
■
■■■■■
■■■■■■■■■■■■■■■
■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■
■
■
■
■
■
■■■■■■■■
■■
■
■■■■■■■■■■■■■■■■■
■
■■
■
■■■■■■■
■■■
■■■
■
■■■■■■■■■■■■■■■■■■
■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■
■
■■
■
■■
■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■
■
■
■■
■
■
■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■
■
■
■■■■■■■■■■■■■■■■■■■■■■■
■
■■■
■■
■■■■■■■■■■■■
■■
■
■■■■
■■■■■■■■■■■■■■■■■■
■■■■■
■
■■■■■■■■■■■■■
■■■■
■
■■■■■■■■■■■■■
■
■■■■■
■
■■■■■
■■■
■
■
■■■■■■■
■■■■■
■■■■■
■
■
■
■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■
■
■■■■■
■■■
■■■■■■■■
■■■■■■■
■■
■■■■■■■■
■■■■■■■■■■■■
■
■■■■■
■■■■■
■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■
■■■
■■■■■■■■■
■■■■
■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■
■■
■■■
■■■■■
■
■■■■■
■■■
■■■
■■■■■■■■
■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■
■■
■■
■
■
■■■■■■■
■
■■■■■■
■■■
■
■■■■■■■■■■■
■■■
■
■■
■
■■■■■■■
■
■■■■■■
■■■■■■■■■■■■
■■■
■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■
■■■■■■■■■■■
■■■■■■
■■
■■■■■■■■■■■■■■■
■
■
■
■■■
■
■■■■■
■■■■■■■■■■■■■■■
■■
■■
■■■
■■■■■■
■
■■
■■
■
■■■
■■■■
■■■■■■■■■■■■■■■■■
■■■■■
■
■
■
■■■■■■■■■
■
■■■■■■
■
■■■
■■■■■■■■
■■
■■■
■
■■
■■■■■■■■■■■
■
■■■■■■■■■
■
■■
■■
■■■■■■■■
■■■■■■■■■■■■■■
■
■■■■
■
■■
■
■■■■■■■
■■■
■
■■■
■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■
■
■■■
■■■
■
■■■■■■■■■■■
■
■■■■■■■
■■■■■■■
■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■
■
■■■■■■■■■■
■■■■■■■■■■■■■■
■■■■■
■■■■■■■■■
■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■
■
■■■■■■■■
■■■■■■
■
■■
■■■■
■
■■■■■
■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■
■
■■■■■■■■
■■■■■■
■
■■■■
■
■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■
■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■
■
■■■■■■■■■■
■
■■■■
■
■■■■■■■■■■
■
■■■
■■■■■■■■■
■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■
■■■■
■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■
■
■
■■■■■■■■■■■■■■
■
■■■
■
■■■■■■■■■■■■■■
■
■■■■■■■■
■
■■■■■■■■■■■
■
■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■
■
■■■■■■■■■■■■■■■■■
■
■■■■■
■
■■■■■■■■■■■■■■■■■■
■
■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■
■
■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■
■■
■
■
■
■■
■
■
■
■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■
■
■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■
■
■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■
■
■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■
■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■
■
■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■
■■■■■■■■■■■
■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■
■
■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■
■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■
■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■
■
■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
◇
◇◇
◇
◇
◇◇◇◇
◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇
◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇
◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇
◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇
◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇
◇
◇
◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
○
○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
0 1 2 3 4 5 6 7
0.5
1
5
10
Time-Step (s)
CPUTime(s)
Δx=Δy=0.0125; imax= jmax=80
■ Finite Volumes
◇ Single Tranf.
○ Single Tranf. (Filter)
Fig. 5.13: Lid-Driven Cavity: Plots showing the CPU time consumed for eachtime-step until the steady state for Re = 100, different meshes andmethodologies.
58
■■■■■■■■■■
■■■■■■■■■■■■■■■■
■■
■
■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■
■
■■■■■
■■■■■■
■■■■■■■■■■■■
■■
■■■■■
■
■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■
■■■■
■■■
■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■
■■■■■■■■■■■■■
■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■
■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
◇
◇
◇◇◇◇◇
◇◇◇◇◇◇◇◇◇
◇
◇◇
◇
◇◇◇◇
◇
◇
◇
◇◇◇◇
◇
◇◇◇◇
◇
◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇
◇
◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇
◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇
◇◇◇◇◇◇
◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
○○
○○
○○○
○
○○○
○○○○○○○○○○
○
○○
○○○○
○
○
○
○○○○○○○○○○○
○
○○○○○○○
○○○○○○○○○○○○○○○
○
○○○
○
○○○○○○○○○○
○○○○○○○○○○○○○○○○
○
○○
○○○
○○○○○○○○○○○○○○○○○○○
○
○○○○
○
○○○○○○○○○○○○○○○○○○○○○○
○
○○
○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○
○○○○○○○○○○
○
○
○○○○
○
○○○○○○○○○○○○○○
○○○
○
○○○○○○○○○○○○○○○○
○○
○
○
○○
○
○
○
○
○○
○
○○○○○
○
○
○○
○○○○○○○○○○
○
○○○○○○○○○
○
○
○
○○○○○○○○○○
○○
○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○
○○○○
○○○○○
○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○
○
○○○
○○○
○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○
○○○○○○○○○○○○○
○
○○○○○○○○○○○○○
○○
○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○
○○○○○○○○○○○○○○○○○
○○○○
○○○○○○○○○○○○○○○
○○
○○
○○
○
○
○○○○○
○○○○○
○○
○○○○○
○
○
○○○
○○○○
○○○
○○○
○○○○
○
○○○
○○○○
○○
○
○
○
○
○○
○○○○○○○○○○○○○○○○○○○○○○○
○○
○○○○○○○○○○○○○○○○○○○○○○○○
○○
○
○○
○
○
○○○○
○
○○○○
○○
○○
○
○
○
○
○○○○
○
○
○
○
○○○○○
0 5 10 15 20 25 30
0.005
0.010
0.050
0.100
Time-Step (s)
CPUTime(s)
Δx=Δy=0.05; imax= jmax=20
■ Finite Volumes
◇ Single Tranf.
○ Single Tranf. (Filter)
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■
■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■
■
■
■
■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■
■
■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■
■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■
■
■■■■■■■■
■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■
■■■
■
■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■
■■■■■■■■■■■
■
■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
◇
◇◇
◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
○○
○○○○○
○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○
○○○○○
○○○○○
○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○
○○○○○○
○
○○○○
○
○
○○○○○○○○
○
○○○○○○○○○○○○○○
○○○
○
○○○○○○○○○○○○○○
○○○○
○
○○○
○
○○○○○
○
○○○○
○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○
○
○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○
○
○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○
○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○
○
○○○○○○○○○○○○○
○○○○○○○○○○○○
○
○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○
○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○
○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○
○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○
○○
○○○○
○○○○○
○○○○○○○○○○○○○○○○
○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○
○○○○○
○○○
○○○○○○○○○○○○○○○○○○○○
○
○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○
○○
○○○○○○○○○○○○○○○
○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○
○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○
○
○○○
○○○○○○○○○○○○○○○○
○○○
○
○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○
○
○○○○
○
○○○○○○○
○○○○○○○○
○○○○○○
○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○
○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○
○
○○○○○○○○○○○○○○
○○
○○○○○○○○○
○
○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○
○○○○○○○○
○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○
○○○○○○
○○○○○○○○○○
○
○○
○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○
○
○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○
○
○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○
○○
○○○
○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○
○
○○○○○○○○○○○○
○
○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○
○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○
○
○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○
○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○
○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○
○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○
0 5 10 15 20 25
0.05
0.10
0.50
1
5
Time-Step (s)
CPUTime(s)
Δx=Δy=0.025; imax= jmax=40
■ Finite Volumes
◇ Single Tranf.
○ Single Tranf. (Filter)
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■
■■■■■
■■■■■■■■■■■■■
■
■
■
■■■■■■■■■■■■■
■■■■
■
■■■■■■■■
■■
■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■
■■■■■■■■■■
■■■■■■
■■■■
■
■
■
■■■■■■■■■
■
■
■
■■■■■■■
■
■
■■■■
■
■■■■■
■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■
■
■■■
■■
■
■■■■■■■
■■■■■■■
■
■
■■■■■■
■■■■■■■
■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■
■■■■■■■■
■■■■■■■
■■■
■■■■■■■■■■■■■■■
■■■■
■
■■■
■
■■■■
■■■■
■■■■
■
■■■■■■■■■■■
■
■■■■■■■
■■■■■■
■■■■
■■■
■■■■■■■
■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■
■■■■■
■
■■
■
■■■■■■■■■■■■■■■■
■
■■■■■■■■
■■
■■
■
■■■■■■■■■■■■
■
■■■■■■■■
■■■■■■■
■■■■■
■
■■■■■■■■■■■■■
■
■■
■
■■■■■
■
■
■■■■■■■■■■
■■■■■■■
■■■
■
■■■■■■■
■■■■■
■
■■
■■
■■■
■■
■■■■■■■■■
■■■■■■■■
■■
■■■■■
■■■■■
■
■
■
■■■■■
■
■
■
■■■■■■■■■■■■
■
■■■■■■■
■■■■■■■■■
■
■■
■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■
■■
■■■■■■
■■■■■
■
■■■
■■■■■■■■■■■
■■■■■■■■■■■
■■■■■■■■■
■
■■■
■■■
■■■■■■■■
■■■
■■■■■■
■■
■■
■■■
■■■■■■
■■
■■■■■■■■■■
■
■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■
■
■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■
■■■■■■
■
■■■■■■■■■
■
■■■■■■■■■■■■
■
■■■■■■
■■■■
■■■■■
■■■
■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■
■■■■■■■■■■
■■■■■■■■■■■■■
■■■■■■
■■■■■■■
■■■■■■■■■■■■■■■■■■■■■
■■■
■■■■■■■■■■■■
■■■■■■■■■■■■■
■
■■■■■■■■■
■
■■■
■■
■
■■■■■■■■■■■
■
■
■
■
■
■■■
■
■■■■■■■
■■■
■■■■■■■■■
■■
■■■■
■
■■■■■■■■■■■■■
■■■■■■■■■
■■■■
■
■■
■■■■
■
■
■■■■■■
■■■■
■■■■■■■■■■■■■■■■■■
■■■
■■■■■
■
■■
■■■■■■■■■
■
■■
■■■■■■■■■■
■■■■■■
■
■■■■■■■■
■■■
■■■■■■■■■
■■■■■■■
■
■■
■
■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■
■■
■
■■■■■■■■■■■■■
■
■■■■■■■■
■■■■■■
■
■■
■
■■■■
■■■■■■■
■
■■■■■
■
■■■■■
■
■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■
■
■
■
■■■■■■
■■
■■■
■■■■■■■■■
■■■■
■■■■■■
■
■■■■■■
■■■■
■■■■■■■■■■■■■
■
■■■■■■
■
■■■
■
■■■■■■■
■
■■■■■■■■■■■
■■
■■■■
■■
■
■■
■■
■■■■■■■■■■■■■■
■■■■■■■■■■■■■
■
■■■■
■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■
■■
■■■■■■■
■
■■■■■■■
■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■
■■
■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■
■
■■■■■■■■
■■■■■■■■
■■■■
■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■
■
■■■■■■
■
■■
■■■■■■■■■■■■■■■
■■■■■■■■■■■■■
■
■■■■■■■■■
■■■■■■■■
■■■■■■■■■■■
■
■■
■■■■■■■■
■
■■■■■■■■■
■
■■■
■
■■■■■■■■■■■■■■■■■■■■
■
■■■■
■
■■■■■■
■■
■■
■■■■■■■
■■■■
■
■■
■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■
■
■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■
■
■■■■■■■■■■■■
■■■■■■■
■■■■■■
■■■
■
■■■■■■■■■■
■■■■■■■■■■■■■
■
■■■
■
■■■■■■■
■■■■■■■■
■
■■■■■■■■■■■■■■■
■■■■■
■■■■■■■■■■■■■■■
■■
■■
■
■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■
■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■
■
■
■
■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■
■
■■■■
■
■■■■
■
■■■■■■■■■■■■
■
■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■
■■■■
■
■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■
■
■■■
■
■■■■
■
■■■■■■
■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■
■
■■■■■■■■■■■■■■■■■■■■■■
■
■■■
■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■
■
■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■
■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■
■■
■
■■■■
■
■■■■■■
■
■■■■■■■
■■■■■■■■■■■■■■
■
■■■■■■■
■
■■■■■■
■
■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■
■
■■■■■■■
■■■■
■
■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■
■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■
■■■■
■■■■■■■■■■■■■■■■
■
■■■■■■■
■
■■■■■
■
■■■■■■■■■■■■■■■■■
■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■
■
■■■■
■
■■
■■■■■■
■■■■■■■
■
■■■■■■■■■■■■■■
■
■■■■■■■■■
■
■■
■■■■■
■
■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■
■■■■
■
■■■■■■■■■■■■■■■■■■■■■
■
■■
■■■■■■■■■■
■
■■■■■■■■■
■
■■
■
■■■■■■■■■
■■
■
■■■■■■■■■■■■
■
■■■
■
■■■■
■
■■■■■■■
■■■■
■
■■■
■■■■■
■
■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■
■
■■■■
■
■■■■
■■
■■■■■■■■■■■■
■
■■■■■■
■■■■■■■■
■
■■■
■
■■■■■■■■
■
■■■■■■■■■■
■
■■■■■■■■
■
■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■
■■■■■
■
■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■
■
■
■
■■■■■■■■■■■■
■■■■■■
■
■■
■
■
■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■
■
■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■
■
■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■
■
■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■
■■■■
■■■
■
■■■■■■
■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■
■
■■■■■■■■■■■■■■■■■■
■
■■■
■
■■■■■■■■
■
■■■
■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■
■
■
■
■■■■■
■
■■■
■
■■■■■■■■■■■■■■■
■■■■■
■
■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■
■■■■■■■■■
■■
■
■■■■■■■■■■■■■■■■■
■■■■■■■■
■
■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■
■■■■■
■
■■■
■
■■■■■■
■
■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■
■■■■■■■■■■
■■■■■
■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■
■■
■■■■■■■■■■■
■■■■■■■■■■■■■■■■
■
■
■
■■■■
■
■■■■■■■■■■■■
■
■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■
■■■■■■■■■■
■
■■■■■■■■■■
■■■■■
■
■■
■
■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■
■
■
■■■
■
■
■■■■■
■
■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■
■■■■■■
■■■■■■■■
■
■■■
■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■
■■■
■
■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■
■
■■■■■■■
■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■
■■■■
■
■■■■■■■■■
■
■■■■■■■■■■■■■■■■
■
■■■■■■■
■■■■■■■■■■■■■■■■■■■
■
■■■■■■
■
■■■
■
■■■■■
■
■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■
■■■■■■■■■■■■■■■■■■■■
■
■■■■
■■■
■
■■■
■■■
■
■■
■
■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■
■
■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■
■■
■
■■■
■■■■■■
■
■■■■■■■■■
■
■■■■■■■
■
■■■■■
■
■■
■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■
■
■■
■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■
■■■■■
■
■■■■■■■■
■
■■■■■■
■
■■■■■■■■■
■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■
■
■■■
■
■■■■■■■■■■■■■■■■■
■■■■■■■■
■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■
■
■■■■■■■■■
■
■■■■■■■■
■
■■■■■■■■
■
■■■■■■■■
■■
■■
■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■
■
■■■■■
■
■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■
■
■■■■■■■
■■■■■■■■■■■
■
■■■■■■■■■■
■
■■■■■■■■■■■
■
■
■■■■■
■■■■■■■■■■■■■■■■
■
■■■■■■
■■■■
■■
■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■
■■
■
■■
■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■
■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■
■
■■■■■■
■
■■■■■
■
■
■
■■■■■■■■■
■
■
■
■
■
■■■
■■■■■■
■
■■■■■■■■■■■■■■
■
■■■
■
■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■
■■■■■■■■■
■
■■■■■■■■■■
■
■■■■■■■■■■■■■
■
■■
■■■■■■■
■■■■■■■■■
■
■■
■
■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■
■■■■■
■■■■
■
■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■
■
■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■
■
■■■■■■
■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■
■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■
■■■■■■■■■
■
■■■■
■
■■■■■■
■
■
■■■■■■■■■■■■■■■
■■■■■■
■■■■■■■■■■■
■■■■■■■■■
■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■
■
■■■■■■
■
■
■■■■■■■■■■■■■■■
■
■■■■
■
■■■■■■■■
■
■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■
■■■■■■
■
■■■■■■■■■■■■■■■■
■■■■■■
■
■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■
■
■■■■■■■
■
■■■■■■■
■
■■■■■■■
■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■
■■■■■■
■
■■■■■■■■■■
■
■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■
■■■■■
■
■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■
■■■■■■
■
■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■
■
■■■■■■■■■■■
■■■■■■■
■
■■
■■■
■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■
■
■■■■■■
■
■■■■■■■■■
■■■■
■
■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■
■
■■■
■■■■■■■■■■■
■
■■■■■■■
■■■■■■■■■■■
■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■
■■■■■■■■■■
■
■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■
■■■■■■■■■■■■■■
■
■■■■■■■■■
■
■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■
■
■■■■
■
■■
■■■■■■■■■■■■■■■■
■■■■■■■
■
■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■
■
■■■■■■■■■
■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■
■
■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■
■
■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■
■
■■■
■
■■■
■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■
■
■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■
■■■■■■■■■■■■■■■■■
■
■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■
■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■
■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■
■
■■■■■■■■
■
■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■
■■■■■■■■■■■■■■■■■■
■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■
■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■
■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■
■■■■■■
■
■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■
■■■■■
■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■
■
■■■■
■
■■■■■■■■■■■
■
■■■■■
■■■■■■■■■■■■■■■■■
■
■
■
■■■■
■
■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■
■■■
■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■
■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■
■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■
■
■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■
■
■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■
■
■■■■■■■■■
■
■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■
■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
◇
◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇
◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇
◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○
○
○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
0 5 10 15
0.5
1
5
10
Time-Step (s)
CPUTime(s)
Δx=Δy=0.0125; imax= jmax=80
■ Finite Volumes
◇ Single Tranf.
○ Single Tranf. (Filter)
Fig. 5.14: Lid-Driven Cavity: Plots showing the CPU time consumed for eachtime-step until the steady state for Re = 400, different meshes andmethodologies.
59
■
■
■
■
◇
◇
◇
◇
○
○
○
○
0.02 0.03 0.04 0.051
10
100
1000
104
Δx = Δy
TotalCPUTime(s)
ReL = 1
■ Finite Volumes
◇ Single Tranf.
○ Single Tranf. (Filter)
■
■
■
■
◇
◇
◇
◇
○
○
○
○
0.02 0.03 0.04 0.051
10
100
1000
104
Δx = Δy
TotalCPUTime(s)
ReL = 100
■ Finite Volumes
◇ Single Tranf.
○ Single Tranf. (Filter)
■
■
■
■
◇
◇
◇
◇
○
○
○
○
0.02 0.03 0.04 0.051
10
100
1000
104
105
Δx = Δy
TotalCPUTime(s)
ReL = 400
■ Finite Volumes
◇ Single Tranf.
○ Single Tranf. (Filter)
Fig. 5.15: Lid-Driven Cavity: Total computational time consumed to achievesteady state.
60
5.2.2 Backward-Facing Step
The flow over a backward-facing step in a channel provides an excellent test case
for the accuracy of numerical method because of the dependence of the reattachment
length x1 on the Reynolds number. Excessive numerical smoothing in favor of stability
will result in failure to predict the correct reattachment length. Figure 5.16 shows
the geometry of this type of problem with its boundary conditions together with the
appropriate nomenclature. In this type of flow, there is an abrupt expansion in the form
of a step, the flow is considered to be fully developed in the inlet channel and also in
the outlet.
0; 0; p 0u v= = ∇ ⋅ =n
yH
( )inu
0u
x
∂=
∂2
6( )( )( )
( )
H y h yu y
H h
− − −=
−
x
y
h
x1
Fig. 5.16: Geometry of the backward-facing step flow [1].
The following boundary conditions for velocities are used:
u = 0 on walls (5.14)
v = 0 on walls (5.15)
u(0, y) =−6(H − y)(h− y)
(H − h)2uin for inlet (5.16)
v = 0 and∂v
∂x= 0 for inlet (5.17)
∂u
∂x= 0 for outlet (5.18)
∂v
∂x= 0 for outlet (5.19)
where two variations of the boundary conditions for the inlet y-component velocity v
are proposed: Dirichlet and Neumann.
61
The boundary conditions for pressure are:
∇p · n = 0 on walls (5.20)
∂p
∂x= − 12 uin µ
(H − h)2for inlet (5.21)
∂p
∂x= −12 uin µ(1− h/H)
H2for outlet (5.22)
where h is the step height, H is the channel height and uin is the mean inlet velocity.
The expansion ratio used in this work was H/h = 2 and the Reynolds number is
computed using the inlet channel hydraulic diameter DH as characteristic length and
using the mean inlet velocity uin:
ReDH=ρ uinDH
µ(5.23)
DH = 2(H − h) (5.24)
Figure 5.17 illustrates the test case showing the backward-facing step flow stream-
lines for Reynolds numbers 1, 10 and 50. Once again, No visual difference was observed
between the three methods, so only the case computed by CITT-ST-F is displayed.
As can be observed, the corner vortex strongly increases in size as Reynolds number
increases. As consequence, the corner vortex reaches up to the corner of the step at
Re ≈ 10 and covers the complete face of the step. Hence a change in the entire flow
structure is observed and a recirculation region can be noticed, which for Re ≥ 10
better reflects the flow structure. With increasing Reynolds number the size of the
recirculation region, represented by the reattachment length steadily increases.
Figure 5.18 shows a comparison of the present results with the work of Biswas et al.
[3]. The variation of the reattachment length with respect to the Reynolds number
for ∆x = ∆y = 0.025 is presented. As can be seen, all the methodologies computed
have not shown any visual difference among them. The work of Biswas et al. [3] used
a different inlet condition, simulating an inlet channel and also a different expansion
ratio H/h = 1.9423 whereas the present work used H/h = 2, hence, this can explain
the slight difference between current results and [3]. Furthermore, one can see that the
inlet condition vinlet = 0 shows a better agreement with the literature.
62
0.0 0.5 1.0 1.5 2.0 2.5 3.00.0
0.5
1.0
1.5
2.0
x
y
ReDH=1; Δx=Δy=0.025; jmax=80
0.0 0.5 1.0 1.5 2.0 2.5 3.00.0
0.5
1.0
1.5
2.0
x
y
ReDH=10; Δx=Δy=0.025; jmax=80
0.0 0.5 1.0 1.5 2.0 2.5 3.00.0
0.5
1.0
1.5
2.0
x
y
ReDH=50; Δx=Δy=0.025; jmax=80
Fig. 5.17: Streamlines of the flow inside the backward facing step geometry sim-ulated by CITT using single transformation with filter scheme, withjmax = 80 (∆x = ∆y) and for vinlet = 0.
63
□□
□
◇◇
◇
○○
○
■■
■
◆◆
◆
●●
●
0.5 1 5 10 50 1000.0
0.5
1.0
1.5
2.0
2.5
3.0
3.5
ReDH
x1
Δx=Δy=0.025; jmax=80
Biswas et al, 2004
□ FVM for vinlet=0
◇ CITT-ST for vinlet=0
○ CITT-ST-F for vinlet=0
■ FVM for (∂v/∂x)inlet=0
◆ CITT-ST for (∂v/∂x)inlet=0
● CITT-ST-F for (∂v/∂x)inlet=0
Fig. 5.18: Backward-Facing Step: Reattachment length as function of Reynoldsnumber: Comparison of the present results with the work of Biswaset al. [3].
Similarly to what was observed in the previous test case, figures 5.19 to 5.21 show
the computational time consumed for each time-step for various meshes and Reynolds
numbers. The same conclusions from the Lid-Driven Cavity case can be easily obtained
from the graphics for FVM, CITT-ST and CITT-ST-F with the exception that, for this
case, CITT-ST method had a better performance than FVM for the more refined mesh.
Again, figure 5.22 summarizes the previous graphics, showing the total computa-
tional time require to reach steady state versus the mesh. As already seen, CITT-ST
requires more time for all meshes, FVM and CITT-ST-F are similar for higher ∆x = ∆y
but CITT-ST-F has a better performance for refined meshes.
64
■
■
■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■
■■
■
■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■
■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■
■■■■■■■■■■
◇
◇
◇
◇◇◇◇◇◇◇◇
◇
◇◇
◇◇◇◇◇
◇
◇◇
◇◇◇◇
◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇
◇
◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇
◇
◇
◇
◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇
◇◇◇◇
◇◇◇◇◇◇
◇
◇◇◇◇◇
◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇
◇
◇
◇◇
◇
◇
◇◇◇◇◇◇◇◇◇
◇
◇◇◇
◇
◇◇◇◇
◇
◇◇
◇
◇◇◇◇
◇
◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
○
○
○○○○○○○○○
○○○○
○
○○
○
○○
○
○
○○○○
○
○○○○○○
○○
○
○○○
○
○○○○
○
○○
○○○
○○○○○○○○○
○○
○○○
○○○○○○○
○
○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○
○○
○○○○○○○○○○
○○○○
○
○○○○○○○○
○○○○○○○○○○
○○
○○
○
○○
○○○○○○
○
○
○○○○
○○○
○○
○○○
○
○○○○
○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○
○
○
○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○
○○
○○○○○○○○○○○○○
○○
○
○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○
○○○○○○○○○○○○○
○○○○○○○○
○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○
○○○○○
○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○
○
○○○○○○○○○○
○○○○○○○○○
○
○○○○
○
○○○○○○○○○○○○
0.00 0.05 0.10 0.15 0.200.005
0.010
0.050
0.100
Time-Step (s)
CPUTime(s)
Δx=Δy=0.1; jmax=20
■ Finite Volumes
◇ Single Tranf.
○ Single Tranf. (Filter)
■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■
■■■■■
■■
■■
■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■
■
■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■
■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■
■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
◇
◇
◇
◇◇◇
◇
◇◇◇◇
◇
◇
◇◇
◇
◇◇
◇
◇
◇◇◇◇◇◇
◇◇
◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇
◇◇◇◇◇◇
◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇
◇
◇
◇◇◇◇◇◇◇◇◇◇◇
◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇
◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇
◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
○
○
○○
○○○○○○
○○○○
○○○○○
○○○○○○○○○○
○
○
○
○○○○○○
○
○
○○
○
○○
○○○
○○○○○○○○○○○○
○○○○○
○
○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○
○
○
○○○○○○○○○○○○○○○○○
○○
○○○○
○○○○○○○○○○○○○○○○○○
○
○
○○○○○○○○○○○○
○○
○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○
○
○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○
○○○
○
○○○
○
○○
○
○○○
○○
○○
○
○
○
○○○○○○
○
○○○○○○○○○○○○○○○○○○
○
○
○
○
○
○○○○
○
○○○○○○
○
○
○
○○○○○○
○
○○
○
○○
○
○
○○○○
○
○○
○○
○○○○○○
○○○○○○○○
○
○○○○○
○
○
○
○
○○
○○
○○
○
○○
○
○○○
○
○
○
○
○○
○○○
○○○○○○○○○
○○○○
○○
○○○
○
○
○
○○○○
○
○
○○○○
○○○
○○○
○
○○○○○
○
○○○○
○○○○○○○○○○
○
○○○
○○○○○
○○○○○○○○○○○○
○
○○○○○○○○
○
○○○
○○○○○○○○○○○○
○○○○○○○○
○○○○○○
○
○○
○○○○
○
○
○
○
○
○○○
○
○○
○○
○
○
○
○○○
○
○
○○○○○
○
○
○○○
○
○○○○○
○
○
○○
○
○○○
○
○○○○
○
○
○
○○
○
○○○
○
○○○○○○○○○○○○○
○
○○○
○
○
○
○○○○○○○○○○○○
○○
○○
○
○
○
○○
○
○
○○○
○
○
○
○○○○○○○
○
○
○
○
○○
○○
○
○
○○
○
○○○○
○
○
○
○○○○
○
○○○○○○
○
○
○○
○
○○○○
○
○○
○
○○
○
○
○
○○
○
○
○
○○○○○○
○
○
○
○
○
○○
○
○○○○○
○
○○○○○
○
○
○
○
○
○○○○
○
○
○
○○
○
○○
○
○○
○
○
○
○
○○
○
○
○○○○○○
○
○○
○
○○
○○
○○
○
○
○
○
○
○○○
○
○
○
○○○
○○
○○
○○○
○
○
○
○○
○○
○
○
○○
○○
○○○○
0.00 0.05 0.10 0.15 0.20
0.05
0.10
0.50
1
Time-Step (s)
CPUTime(s)
Δx=Δy=0.05; jmax=40
■ Finite Volumes
◇ Single Tranf.
○ Single Tranf. (Filter)
■
■
■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■
■
■■■■■
■
■■■■■■■■■■■■■
■
■
■
■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■
■■
■■
■
■■
■■■■■■■
■
■■■■■■■■■■■■■
■
■■■
■■■■■■■
■■■■■■■■■
■■
■■
■
■■■
■■■■■■■■■
■■■■■■■■■
■
■■■■■■■■
■■■■■■■■
■■
■
■■
■
■
■■
■
■■■■■■■■■■■■■■■■■■
■
■
■■■■■■■■■■
■■■
■■■
■
■■■■■■■■■■■
■
■■■■■■■■
■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■
■
■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■
■■■■
■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■
■■
■■
■
■■■■■■■■■■■■■■
■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■
■
■■
■
■■■■
■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■
■■■
■
■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■
■
■■■■■■■■■■■■■■
■
■■■■■
■■■■■■■■■■■■■■■
■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■
■
■■
■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■
■■■
■■■
■■■■■■■■■■■
■■
■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■
■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■
■
■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■
◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇
◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
○
○
○○
○○○○○○○○○○
○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
0.00 0.05 0.10 0.150.5
1
5
10
Time-Step (s)
CPUTime(s)
Δx=Δy=0.025; jmax=80
■ Finite Volumes
◇ Single Tranf.
○ Single Tranf. (Filter)
Fig. 5.19: Backward-Facing Step: Plots showing the CPU time consumed foreach time-step until the steady state for Re = 1, different meshes andmethodologies.
65
■
■
■
■
■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■
■
■■■■■
■
■■■■■■
■
■
■■■■
■■
■■■■
■
■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■
■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
◇
◇
◇
◇◇◇
◇
◇
◇◇◇◇◇◇◇◇◇◇
◇◇
◇
◇◇◇◇◇◇◇
◇
◇◇◇◇◇
◇
◇
◇
◇
◇
◇
◇
◇
◇◇◇◇
◇◇◇
◇
◇◇◇◇
◇
◇◇◇◇
◇
◇
◇
◇◇
◇◇◇◇◇◇◇◇◇◇
◇◇
◇
◇
◇
◇
◇◇◇◇
◇◇◇
◇◇◇
◇
◇◇◇◇◇
◇◇◇
◇
◇
◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇
◇◇◇◇
◇
◇
◇
◇◇◇
◇
◇◇
◇◇
◇
◇◇◇◇
◇
◇◇◇
◇◇
◇◇
◇
◇◇◇
◇
◇
◇◇◇◇◇◇
◇
◇
◇
◇
◇◇
◇◇
◇
◇◇
◇
◇
◇
◇◇◇◇◇
◇◇
◇
◇
◇
◇◇◇
◇◇
◇◇◇◇◇
◇
◇◇
◇◇
◇◇◇◇◇
◇
◇
◇◇
◇◇
◇
◇◇◇
◇
◇◇
◇
◇
◇◇◇◇◇
◇
◇◇
◇◇◇
◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇
◇◇◇◇◇
◇
◇◇◇◇
◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇
◇
◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇
○
○
○○○○○
○○○
○
○○○○○
○○○○○○○○○○
○
○○○○○
○
○○○○○○○
○
○○○○
○
○○○
○○
○○
○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○
○
○○○○○○○○○○○○○○○○○
○○○○○○○○○○
○○○
○○○
○
○
○○○○
○
○○○○
○
○○○
○○
○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○
○○○○
○
○○○○○○○○○
○○
○○○○○○○○
○○○○○○○○
○
○○
○
○
○○○
○
○○○○○○○○
○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○
○
○○○○○○○
○
○○○○
○
○○○
○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○
0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.50.005
0.010
0.050
0.100
Time-Step (s)
CPUTime(s)
Δx=Δy=0.1; jmax=20
■ Finite Volumes
◇ Single Tranf.
○ Single Tranf. (Filter)
■
■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■
■■■
■■■■
■■■■■■■■■
■■■■■■■
■■■■■■■■■
■
■■■■■■■
■■■■■■■■■
■■■■■■
■■
■
■■■■
■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■
■■■■■■■■■■
■■■■■■■■■■
■■■■■■■
■
■
■
■■■■■
■
■■■■■■■
■■
■
■■■■■■■■
■■■■■■■
■
■■■■■■■■■
■■■■■■■■■■■■■■
■■■■■■■■■
■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■
■■■■■
■
■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■
■■■■■■
■
■■■■■■■■■
■
■■■■■■■■■■
■■■■■■■■■■■
■
■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
◇
◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇
◇
◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇
◇
◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇
◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
○
○
○○
○○○○○○○○○
○
○○○○○○○
○○○○○○○○
○○○○○○○○○○○○○○○○
○○○○○○○○
○
○○○○○○
○
○○
○○○○○○○○○
○○○○○○○○○
○
○○○○○○
○○○○○
○○
○
○○○○○○○○○○
○
○
○
○○○○○○
○
○○○
○
○○
○
○
○
○○
○
○
○
○
○○
○○○○○○○○○
○○
○
○
○
○○
○
○○
○○
○
○○○○○
○
○○○
○○
○
○
○○
○
○○○○
○
○○○○
○○
○○
○○○○○○○○○
○○○○○○○○○
○○○○○○○
○
○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○
○
○○○○○○○○○○○○
○○○○○○○○○○○○○○
○○○○
○
○○○○○○○○
○○○○○
○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○
○
○○○○○○○○○○○
○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○
○
○○○○○○○
○○○
○
○○○○
○
○○○○○○○
○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○
○
○○○○○○
○
○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○
○
○○○○○
○
○○○
○○○○○
○
○○○○○○○○○○○○○○○○○○○○○
○○
○○
○
○○○○○
○
○○○○○○○○○○
○
○○○○○○○○○
○○○○○○○○○○
○
○○○○
○
○○
○
○
○
○
○○○
○
○
○○
○
○
○
○
○○
○
○
○○○
○
○
○
○
○○○
○
○○○
○○○○
○
○
○○○○○
○○
○○○○○○
○○
○○
○○
○
○
○○○
○○
○○○○○
○○○
○
○○
○○○
○○
○○○○
○
○
○
○
○○○
○○
○○
○○○○
○
○○○○○○
○
○○○○
○
○○○
○
○○
○○○○○○
○○
○
○
○○
○
○
○
○
○
○
○○
○
○○
○
○
○
○
○○
○○
○○○
○○
○○○○
○○
○○○○
○○
○
○○
○○
○○
○
○○
○○○○○○
○○
○
○○
○○○○○○
○
○○
○○○○
○○○○○○
○
○○
○
○
○○○○○○○○○○
○○○
○○○○○
○
○○
○○○○○
○
○○○
○○
○○○○○○○○○○
○
○○
○
○○○○○○○○○○○○○○○○○○○○○○○○
○
○
○○○
○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○
○
○○○○
○
○○○○○
○
○○
○
○○
○
○○
○
○○
○
○
○
○○○○○○
○
○
○
○○
○
○
○
○○
○
○
○
○○
○
○○
○
○
○○
○
○
○
○○
○
○
○
○○
○○
○
○
○
○
○
○
○
○○○
○
○○
○○○
○
○
○
○
○○○
○○
○
○○○
○○
○○
○○
○○○
○○
○○○
○
○○○
○
○○○○○○○
○○○○○
○○
○○○○○○
○○○○○
○○
○○○○
○
○
○○○○○○○○○○○○○○○○○○○○○
○
○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
0.0 0.5 1.0 1.5 2.0 2.5
0.05
0.10
0.50
1
Time-Step (s)
CPUTime(s)
Δx=Δy=0.05; jmax=40
■ Finite Volumes
◇ Single Tranf.
○ Single Tranf. (Filter)
■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■
■■
■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■
■
■
■
■■■■■■■■
■■■■■■
■
■
■
■
■■
■■
■
■
■
■
■■
■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■
■■
■■■■■■■■■■■■■
■
■■■■■■
■
■■■
■■
■■■■■■
■■■■■■■■■
■
■■■■
■
■■■■■■■
■
■■■■■■■■■■
■
■■■■■■■■■■■■
■
■■■■■■■
■■■■■■■■■■■■■■■■
■
■■■■■■
■
■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■
■■
■■
■
■■■
■
■
■■■■
■
■■■
■
■■■■■■■
■
■■
■
■■■■
■
■■■■
■■■
■■■■■■
■■
■■■
■■
■■
■■■■
■■■■■■■■
■■
■■■■
■■■■■■■
■
■■■
■
■
■■■■■■■■
■
■■■■■■■■■■■
■■■■■■■
■
■■■■■■
■
■■■■■■■■
■■■■
■
■■■■■■■
■■■■■
■■
■■■■
■
■■■■■■■■■■■■
■■
■■■■
■■■■■
■■■■■
■
■■
■■
■
■■■■■
■■
■■■■■
■■
■■■■■■■■
■
■
■
■■■■■■■
■
■
■■■
■■
■■■
■■■■■■■
■
■
■
■
■■■■■■■■■■■■
■
■■■■
■■
■
■■■■■■■■
■■■
■■■■■
■■
■■■■■■■■
■■■■■■
■■■■
■■■
■
■■■■■■■■■■■■■■■■
■■■■■
■■■
■■■
■
■■■
■
■■
■■■
■
■■■■
■
■
■■■■■■■■■■■■■■■■■■■■■■
■
■
■■■■■■■
■
■■■■■
■■
■
■■■■■■■■■■■■■
■■■■■■
■
■
■■■
■■■■■■■■■■
■■
■
■■■■■■■■■
■
■■■■■
■
■■■■■■■■
■■■
■■■■■■■■■■
■■■■■
■■■
■
■■■■■■■■
■
■■■■
■
■■■■■■■■
■■■
■■■■■
■
■■■■■■■
■
■
■■■
■
■
■
■■■■
■■
■■■■■■■■■■
■
■■■■
■■
■■
■■■■■■■■■■
■
■■■■
■
■■■
■
■■■■
■
■■■■
■
■■
■■■■■
■
■
■
■■■■■■■■■■
■■■
■■■
■■■
■■■■■■
■
■■■■■■■■■■■■
■■■■■■■■■
■■■■■■■
■■■■■■■■■■■■■
■
■■■■■■■■
■
■■■■■■■■
■
■■■■
■
■■■■■
■
■■
■■■■■
■
■
■■■
■
■
■
■■■■■
■
■■
■■
■■■
■
■■■■■■■■■■■■■■■
■■■■■■■
■
■■■
■■■■■■■■■
■■
■■■
■■
■■■■■■■
■■■■
■■■■■■■■■
■■■■■■■■
■■■■■■
■■
■
■
■
■
■■■
■■
■■
■■
■■■
■
■■
■■■■
■■■■
■■■
■
■■■■■
■
■
■■■■■■■■■■■
■■■
■■
■
■■■
■
■■■■■■■
■■■■
■■
■■
■■■■■■■
■■■■■■■■
■■■■■
■■■■■■■■■■
■■■■■■■■
■■■
■■■■■■
■
■■
■■
■■■■
■
■■■■■■■
■
■■■■■■■■■■■■■■■■
■
■■■
■
■■■■
■
■
■■■■■■
■■■■■■■■■■
■
■
■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■
■■
■■■■■■■■■■■■■■■■
■
■■■■
■■■■■■■
■
■■■■■■■■■
■
■
■■■■■■■■■■■■■■■■■
■■■
■
■■■■
■■■■■■■■■■■■■■■■■■■■■■■
■■
■■■■■■■■■■■■■
■■■■■■■■
■■■■■■■■■■
■■■■■■■■■■■■■■■■■■
■■
■■■■■
■
■■■■
■
■■
■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■
■
■■■■
■
■■■■■■■■■
■
■■■■■■■■■■
■■■■■■■■■
■
■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■
■■
■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■
■
■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■
■
■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■
◇
◇
◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇
◇
◇
◇
◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇
◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇
◇◇◇◇◇◇
◇◇◇
◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇
◇
◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
○
○
○
○
○
○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○
○○○○○
○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○
○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○
○
○○○○○○○○○○○○○○
○
○○○
○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○
○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○
○
○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
0.0 0.5 1.0 1.5 2.0
1
2
5
10
Time-Step (s)
CPUTime(s)
Δx=Δy=0.025; jmax=80
■ Finite Volumes
◇ Single Tranf.
○ Single Tranf. (Filter)
Fig. 5.20: Backward-Facing Step: Plots showing the CPU time consumed foreach time-step until the steady state for Re = 10, different meshes andmethodologies.
66
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■
■■■■■
■■■■■■■■■■■■■■■
■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■
■
■■
■
■■
■
■
■
■■
■
■
■■
■■
■
■
■
■
■■
■
■
■■
■
■
■
■
■
■
■■
■
■
■■■
■
■■
■
■
■■
■
■
■
■■
■
■
■
■
■
■■■
■
■
■
■
■
■■
■
■
■
■
■
■■
■
■■
■
◇
◇
◇
◇
◇◇
◇
◇
◇
◇◇
◇
◇◇◇◇◇◇
◇◇
◇
◇
◇
◇
◇
◇◇◇
◇◇◇◇
◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇
◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇
◇
○
○
○○○○
○○○○○○○○○○○○○
○
○
○○○○○○○○○○○○○○○○○○○
○
○○○○○○
○
○
○○○○○○○
○○○○○○○○○○
○
○○○○○○○
○
○
○
○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○
○○○○○○○○
○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○
○
○○○○
○
○○
○
○○○
○
○
○
○○○○○○○○○○○○○○○○○○○
○○
○○○○
○○○○○○
○○
○○○
0 2 4 6 8 10 120.005
0.010
0.050
0.100
0.500
1
Time-Step (s)
CPUTime(s)
Δx=Δy=0.1; jmax=20
■ Finite Volumes
◇ Single Tranf.
○ Single Tranf. (Filter)
■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■
■
■■
■
■■■
■■
■■■■■■■■
■■■
■■
■■■■■■■■■■
■■■■■■■
■■
■■■■■■■■■■
■
■■■■■■■■■■■■■■
■
■■
■■■■■■■■■■■■■■■
■
■■■■■■■■■
■■■■■
■■■■■■■■■
■
■■■■■■
■■■■■■■■■
■■■■■■
■
■■■■■■■
■■■
■■■■■
■■
■■■■
■
■■■■■■■■
■
■
■
■
■■
■■■■■■
■
■
■
■■■■■■■■■■■■
■■
■■■■■■■
■■■
■■■■
■■■■■■
■
■■
■■■■■■■■
■
■■■
■■■■■■■■■■■■■■■■■■■■■■
■
■■
■
■■■■■■■■■■■■■
■
■■■■
■■■■■■■■■■■■
■■
■■■■
■■■■■■■■■
■■■
■
■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■
■■■
■
■■■■■■■
■
■■■■■■■■■■■
■■
■■■■■■■■■■■■■■■■
■
■
■
■■■■
■■■■■■■■■■■■■■■■■■
■
■■■■
■■■■
■■■■
■■■■■■■
■
■
■■
■
■■■■
■■■■■■■
■
■■■■
■
■■
■■■■■■■■■
■
■■■■■■■■■■■■
■
■■
■
■■■■■■
■
■
■
■■■■
■
■■■■■■■■■■■
■
■■■■■
■
■■■■■■■■
■
■■■■■■■■■■■■■■■■
■■■■■■■■■■
■
■■■■
■■■■■■■■■■■■■■■■■■■■
■
■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
◇
◇
◇
◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇
◇◇◇
◇
◇◇◇
◇◇◇◇◇◇
◇◇
◇◇◇◇◇◇◇◇◇
◇
◇◇
◇◇◇◇◇◇◇◇
◇◇◇◇◇◇
◇
◇◇◇◇◇◇
◇
◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇
◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇
◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇
◇
◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
○
○
○
○
○
○○○○
○
○○○○
○
○○○○○○○○○○○○○○○○○○○○○○
○
○○○○
○○
○○
○○
○○○○○
○○
○
○○○○○○○○○
○
○○
○
○
○
○○
○○
○○
○○
○○
○
○○○
○○○○○○○○○○○○○
○○○○○○○○
○
○○○
○○○○○
○○○○○○○○○○○○
○
○○○○
○○○○○○○○○○○○○○
○○
○○○
○
○○○○○
○
○○○○○○○○○
○
○○○○○○○○○○○○○○○
○
○○○○○○
○○○○○○○○○○○○○○○○○○○○
○
○
○
○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○
○○○○○○○○○○○
○○
○
○○○○
○
○○
○
○○○○○○
○
○
○○○○○○○
○
○
○○○○○○○○○○○○○○○
○○○○○○○○
○○○○○○○○○○○○○○○○○
○○○○○
○
○
○○○○○○○○○○○○○○○○
○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○
○
○○○○○○○○
○
○○
○
○
○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○
○○
○○○○○○○○
○
○○○○○○○○○○○○○○○
○
○
○○○○○○○○○
○○○○○○
○○○○○○
○○○○○○○○○○○○
○○○
○
○○○○○○○○○
○○
○
○○
○○
○○○
○○○
○○
○○○○○○○○○
○○○
○○
○
○○○
○○
○○○○○○
○
○○○○○○○○○○○
○
○
○
○○
○○
○○
○
○○○
○
○○○
○○○
○○
○
○
○○○
○○
○
○○
○○○
○○○
○○○○○○○○○
○
○○○○○○○○○○
○
○
○
○
○
○
○
○○○○○○○
○
○
○
○
○
○○
○
○○○
○
○
○
○○
○
○○○○○○○○○○○○○○○○
○
○○
○
○
○
○○○
○○
○○
○
○
○
○
○
○
○
○
○
○
○
○○○
○
○○○○○
○○
○○
○
○
○
○
○
○
○
○○○
○○○○○○○
○
○○○○○○○○○
○○
○
○
○
○○○○○○○○○○○○○○
○
○○○
○
○
○
○○
○
○○○○○
○
○
○
○
○
○○
○
○
○
○
○
○
○
○
○
○
○
○○○○
○
○○
○
○○○
○
○
○
○○○
○
○
○
○
○
○
○
○
○
○○○○
○
○
○○
○
○
○
○
○
○
○
○
○
○
○○
○○○
○
○
○○
○○○
○○
○
○
○
0 2 4 6 8
0.05
0.10
0.50
1
Time-Step (s)
CPUTime(s)
Δx=Δy=0.05; jmax=40
■ Finite Volumes
◇ Single Tranf.
○ Single Tranf. (Filter)
■■
■
■■■■■■■
■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■
■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■
■■■■
■■
■■■
■■
■■
■
■■
■■■■
■■
■
■
■■■
■
■■■
■
■■■■■
■
■■■■■■■■■
■■■■■■■
■
■■■■
■■■■■■■■■■■■■■■■
■
■
■■■■
■
■■■■■■■■
■
■
■
■■■■
■
■■■
■
■■■
■■
■■■
■
■■■
■
■■■■■■
■
■■■■■
■■■■■
■
■
■■■■
■
■■■
■
■■■■
■■■■■
■■■■■■
■■■■
■
■■■■■■■■■■■■■■■
■■
■■■
■■■■
■■■■
■■■■■
■■■■■■
■■■■■■■■■■■■■■■
■
■■■■■■■■■■■
■
■
■■■■
■■■■
■
■■
■
■■■■
■■
■■■
■■
■■■■
■
■
■
■■■■■■
■■■
■■■■■■■■
■■■■■■■■
■■■■■■■■
■
■■■■■■■■
■■■
■
■■■
■
■■■■■■■■■■■■■■■■■■
■■■■■
■■■■■
■
■■■■■
■
■■■
■
■■■■■■■■■■■
■
■■
■■■■■
■
■■■
■■
■■■■
■
■
■■■■■
■■■■■■■
■■■■■
■■■■■■
■■
■■■■■■■■■■■■■
■■■■■■■■■■■■
■■
■
■
■■
■■■■■■■■■■■
■■■■■■■■
■■■■■■
■■■■■■■■■■
■
■■
■■
■
■■■■■■■■■
■
■■■■■■■■■
■
■■■
■■■■
■■■
■■■■■■■
■■■■
■
■■■■■■■■■■■■■
■
■■■
■
■■■■■■■■■■
■
■■■
■
■■■■■■■
■■■■■■
■■■■■■■■■■■■
■■■
■
■■■■■■■
■■■■■
■
■
■
■
■■■■
■■
■
■■
■
■■■■■■■■
■
■
■■■■■■■■■■■■
■■
■■■■■■■■
■■■■■■■■■■■■
■
■■
■■■■■■■■■
■■■■■■
■
■■■■■■■
■
■■■■■■■■■■■■
■■■■■
■
■
■■■■■■
■■■■■■■
■
■■■■■
■
■■■
■■■■■
■■
■■■■■
■■
■■■■■■■
■■■■■■■■
■■■■
■
■■
■
■
■■■
■
■■
■■■■■
■■■■■■■
■■■
■
■■
■
■■■
■■■■■■■■■■■■
■■■■■
■■■■■■■■■■■■■
■■■■■■■■
■■■
■
■■
■
■■■
■
■■■■■■■■■■■
■■■
■
■■
■
■■■■■■■■■■■■
■■■
■■■■■■■■■■■■■■■■
■
■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■
■■■■■■■■
■■■■■■■■■■■■
■■■
■■■■■■■■■
■
■■■■■■
■
■■■■■
■
■■
■■■■■■■■■■■■■■■■■■■
■
■
■
■■■■■■
■
■■
■■■■■■■
■■■
■■■■■■■■■■■■■■
■■
■
■■■■■■■■■■■■
■■
■
■■
■
■■■■■■■■■■■■■
■
■
■
■■■
■
■■
■■■
■
■
■
■
■
■■■■■■■■■■■■
■■■■■
■
■■■■■
■
■
■
■■■■■
■■■■
■
■■
■■■
■■■■■■■■■■■■■
■■
■■■■■
■
■
■
■
■■■■
■■■■
■■
■
■■
■■
■
■
■■■■
■■■
■■■
■
■■■■■■■■■■
■■■
■
■
■
■
■■
■■
■■
■
■
■■■
■
■
■
■
■■
■
■■
■
■■■■■■
■■■■■
■■■■■■■■■■■■
■
■■■■■■■■
■
■
■
■■■
■■■
■
■■■■■■■■
■■■■■
■
■
■■■■■■■■■■■■■■■■■
■
■
■■■
■■■■
■■
■
■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■
■■
■■■■■■■■■■■■■
■■■■■■■■■■■■
■■■
■■
■
■
■
■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■
■■■■■
■
■■■■■■
■
■
■
■■■■■■■■■■
■
■■
■
■■■
■■■■■■■■
■
■■■■■■■■
■■
■■■■
■■
■■■■
■
■■■■■■
■
■■■■■■■■■■
■
■■■■■■■■■
■■
■■■
■
■■■
■■■■■■
■
■■■
■■■■■■■
■■■■■■■■■■■■■
■
■■
■
■■
■■■■■■
■
■■■
■
■■■■
■■■■■■■
■■■■■■■■■■■■■■■■
■■
■
■■■■
■■■■■■■■■■■■
■
■■
■
■■
■■■■■■■■■■■■■■■
■
■■■■■■■■■■
■■■■■■■■■
■■■■■■■■
■
■
■
■■■■■■
■
■■■■
■■■■■
■■■■■
■
■
■
■■■
■
■■■■■
■
■■■■
■■
■■■■■■
■■■■■
■■■■■■■■■■■■■■
■
■■■
■
■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■
■
■■■■■■■
■
■■
■■■■■■■■
■■■■
■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■
■■
■■■
■■■■■■■
■■
■
■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■
■■■■■■■
■
■■■■■■■■■■■■
■
■■■■■
■
■■■■■■■■■
■
■■■■■■
■
■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■
■■■■■■■■■
■
■■■■■■■■■■
■
■■■■
■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■
■
■■■■■■■■
■
■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■
■■■■■
■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■
■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
◇
◇
◇
◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇
◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇
◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇
◇
◇◇
◇◇
◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
◇
◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇
○
○
○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○
○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○
○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
○
○○○○○○○○
0 1 2 3 4 5 6 7
0.5
1
5
10
Time-Step (s)
CPUTime(s)
Δx=Δy=0.025; jmax=80
■ Finite Volumes
◇ Single Tranf.
○ Single Tranf. (Filter)
Fig. 5.21: Backward-Facing Step: Plots showing the CPU time consumed foreach time-step until the steady state for Re = 50, different meshes andmethodologies.
67
■
■
■
■
◇
◇
◇
◇
○
○
○
○
0.04 0.06 0.08 0.10
10
100
1000
104
Δx = Δy
TotalCPUTime(s)
ReDH = 1
■ Finite Volumes
◇ Single Tranf.
○ Single Tranf. (Filter)
■
■
■
■
◇
◇
◇
◇
○
○
○
○
0.04 0.06 0.08 0.10
10
100
1000
104
Δx = Δy
TotalCPUTime(s)
ReDH = 10
■ Finite Volumes
◇ Single Tranf.
○ Single Tranf. (Filter)
■
■
■
■
◇
◇
◇
◇
○
○
○
○
0.04 0.06 0.08 0.10
10
100
1000
104
Δx = Δy
TotalCPUTime(s)
ReDH = 50
■ Finite Volumes
◇ Single Tranf.
○ Single Tranf. (Filter)
Fig. 5.22: Backward-Facing Step: Total computational time consumed to achievesteady state.
68
5.3 Mass Conservation Analysis
During the test cases simulations, the velocity divergence was also calculated for
each case. In order to compute the mass conservation inside the domain, an integration
of the continuity equation was done:
∫V
∇ · v dV = 0 (5.25)
The discrete form of this equation is shown bellow:
imax∑i=1
jmax∑j=1
(ui+1,j − ui,j
∆x+vi,j+1 − vi,j
∆y
)∆x∆y = δ (5.26)
where δ is the deviation from the divergence free velocity due to the discretization. One
should note that the mass conservation is achieved when δ is as close to zero as possible.
No computed δ was larger that 10−17 and 10−4 for the lid-driven cavity and backward-
facing step test cases respectively. With these values, it can be concluded that the
formulation was efficient in conserving the velocity field as divergence free as possible.
69
Chapter 6
Summary and Conclusions
The present work developed a numerical method for solving the unsteady incom-
pressible Navier-Stokes equations with primitive variables in two dimensions, although it
can be easily extended to tree dimensions. The novel methodology is based on Projection
Methods schemes using a mixed approach through the Integral Transform Technique.
Knowing that the main bottleneck of the classical pressure-correction approach is the
solution of the Poisson equation for the pressure, this work proposed a new approach
to overcome this constraint.
In this work the classic Projection Method [13] was used to advance in time the
Navier-Stokes equations and the Classical Integral Transform Technique [10] was used
for the purpose of solving the filtered Poisson equation (4.7) to find the pressure depen-
dence on the discrete velocity field in a semi-analytical fashion, eliminating the need for
an iterative solver. In order to establish the transformation pair, the pressure field is
written as function of orthogonal eigenfunctions obtained from an auxiliary eigenvalue
problem known as the Helmholtz classic problem [10]. Two variations of the method
were proposed for the two dimensional formulation: Single Transformation (CITT-ST)
and Double Transformation (CITT-DT).
Initially the solution of the Poisson equation using the semi-analytical proposed
approach was accomplished. The error convergence rate was shown and it was possible
to see that the spatial approximation order matched the expected value of 2 in both
x and y directions. It was also observed that the Integral Transform Technique had a
70
very high performance, converging with very low truncation orders nmax.
The following analysis was the computational time for both approaches CITT-ST
and CITT-DT. It was seen that for every simulated case, CITT-ST was the fastest
method revealing that the CITT-DT had the poorest performance. As a conclusion of
this analysis, one could see that CITT-DT was not the best choice for this propose due
to poor computational performance.
Two classic test cases: Lid-Driven Cavity and Backward-Facing Step flows, were ana-
lyzed next. In these sections, three methods were computed and compared: CITT using
single transformation with filtering scheme (CITT-ST-F), CITT using single transfor-
mation without filtering scheme (CITT-ST) and Finite Volumes Methods with Gauss-
Seidel solver (FVM). The obtained results were compared with the literature showing
a very good agreement for both test cases. Results from both test cases showed a
very similar qualitative behavior. One could see that for very poorly refined meshes
CITT-ST-F and FVM had similar performances. However for more refined meshes,
CITT-ST-F had a dramatically better performance and CITT-ST (without filter) had
the worst performance overall.
The results showed that, although more investigations are needed, CITT-ST-F has
a great potential of being a good substitute for the methodologies currently used to
solve the pressure Poisson equation.
For future investigations, one could suggest the following:
• Solve an unsteady test-case, which will provide a more thorough investigation of
the formulation behavior varying with time.
• Compare the proposed methodology with a FVM using multigrid.
• Implement the formulation for the solution of Navier-Stokes together with the
energy equation. The next step is the solution of a convective heat transfer
problem using GITT for the solution of the energy equation.
• Use different time marching schemes, as implicit or even variations of the Projec-
tion Method to better evaluate performance.
• Implementation of an upwind approximation scheme for the convective terms.
This approach it will provide more stability for higher Reynolds numbers.
71
• Implementation of the formulation for curvilinear coordinates. This approach is
very similar to the presented in this work varying only the coordinate system.
• Implementation the three dimensional formulation. For this approach, it will not
be possible to implement the single transformation formulation, making reorder-
ing scheme necessary. However, the double transformation tends to be better
then a triple transformation through observations of the current results.
• Implementation for irregular geometries. For this formulation the work of Sphaier
and Cotta [82] can be used as reference to implement GITT in irregular geome-
tries.
72
References
[1] J. Kim and P. Moin. Application of a Fractional-Step Method to Incompressible
Method to Equations. Journal of Computational Physics, 59:308–323, 1985.
[2] U. Ghia, K. N. Ghia, and C. T. Shin. High-Re solutions for incompressible flow us-
ing the Navier-Stokes equations and a multigrid method. Journal of Computational
Physics, 48(3):387–411, December 1982.
[3] G. Biswas, M. Breuer, and F. Durst. Backward-Facing Step Flows for Various
Expansion Ratios at Low and Moderate Reynolds Numbers. Journal of Fluids
Engineering, 126(3):362–374, July 2004.
[4] J. L. Guermond, P. Minev, and J. Shen. An overview of projection methods for
incompressible flows. Comput. Methods Appl. Mech. Engrg., 195:6011–6045, 2006.
[5] M. Thomadakis and M. Leschziner. A pressure-correction method for the solution
of incompressible viscous flows on unstructured grids. International Journal for
Numerical Methods in Fluids, 22(7):581–601, April 1996.
[6] J. L. Guermond and J. Shen. Velocity-correction projection methods for incom-
pressible flows. SIAM Journal on Numerical Analysis, 41(1):112–134, 2003.
[7] G. E. Karniadakis, M. Israeli, and S. A. Orszag. High-order splitting methods for
the incompressible navier-stokes equations. Journal of Computational Physics, 97
(2):414–443, December 1991.
[8] C. D. Munz, S. Roller, R. Klein, and K. J. Geratz. The extension of incompressible
flow solvers to the weakly compressible regime. Computers & Fluids, 32(2):173–196,
February 2003.
[9] H. K. Versteeg and W. Malalasekera. An Introduction to Computational Fluid
Dynamics, The Finite Volume Method. Pearson Prentice Hall, Harlow, England;
New York, 2nd edition, 2007.
[10] M. D. Mikhailov and M. N. Özişik. Unified Analysis and Solutions of Heat and
Mass Diffusion. John Wiley $&$ Sons, New York, 1984.
73
[11] S. Wolfram. The Mathematica Book. Wolfram Media/Cambridge University Press,
New York/Champaign, IL, 5th edition, 2003.
[12] N. N. Janenko. The method of fractional steps. Springer Verlag, 1971.
[13] A. J. Chorin. Numerical solution of the Navier-Stokes equations. Mathematics of
Computation, 22:745–762, 1968.
[14] C. W. Hirt and J. L. Cook. Calculating three-dimensional flows around structures
and over rough terrain. Journal of Computational Physics, 10(2):324–340, 1972.
[15] F. H. Harlow and J. E. Welch. Numerical Calculation of Time-Dependent Viscous
Incompressible Flow of Fluid with Free Surface. Physics of Fluids, 8(12):2182–2189,
1965.
[16] R. Temam. Sur l’approximation de la solution des équations de Navier-Stokes
par la méthode des pas fractionnaires (II). Archive for Rational Mechanics and
Analysis, 33(5):377–385, 1969.
[17] W. Soh and J. W. Goodrich. Unsteady solution of incompressible Navier-Stokes
equations. Journal of Computational Physics, 79:113–134, 1988.
[18] J. Donea, S. Giuliani, H. Laval, and L. Quartapelle. Finite element solution of the
unsteady Navier-Stokes equations by a fractional step method. Computer Methods
in Applied Mechanics and Engineering, 30(1):53–73, 1982.
[19] B. Ramaswamy, T. C. Jue, and J. E. Akin. Semi-implicit and explicit finite element
schemes for coupled fluid/thermal problems. International Journal for Numerical
Methods in Engineering, 34(2):675–696, 1992.
[20] S. V. K. C. Karkari and S. V. Patankar. Pressure based calculation procedure for
viscous flows at all speeds in arbitrary configurations. AIAA Journal, 27:1167–
1174, 1989.
[21] S. V. Patankar and D. B. Spalding. A calculation procedure for heat, mass and
momentum transfer in three-dimensional parabolic flows. International Journal of
Heat and Mass Transfer, 15:1787–1806, 1972.
74
[22] L. S. Caretto, A. D. Gosman, S. V. Patankar, and D. B. Spalding. Two calculation
procedures for steady, three-dimensional flows with recirculation. In H. Cabannes
and R. Temam, editors, Proceedings of the Third International Conference on Nu-
merical Methods in Fluid Mechanics, number 19 in Lecture Notes in Physics, pages
60–68. Springer Berlin Heidelberg, 1973.
[23] S. V. Patankar. Numerical Heat Transfer and Fluid Flow. Hemisphere, 1980.
[24] I. Mary, P. Sagaut, and M. Deville. An algorithm for low Mach number unsteady
flows. Computers & Fluids, 29(2):119–147, February 2000.
[25] S. Roller and C.-D. Munz. A low Mach number scheme based on multi-scale
asymptotics. Computing and Visualization in Science, 3(1-2):85–91, May 2000.
[26] J. V. Kan. A second-order accurate pressure-correction scheme for viscous incom-
pressible flow. SIAM Journal on Scientific and Statistical Computing, 7(3):870–891,
1986.
[27] L. Quartapelle. Numerical Solution of the Incompressible Navier-Stokes Equations.
Springer, 1993.
[28] A. Chekhlov, S. A. Orszag, S. Sukoriansky, B. Galperin, and I. Staroselsky. The
effect of small-scale forcing on large-scale structures in two-dimensional flows. Phys-
ica D: Nonlinear Phenomena, 98(2-4):321–334, November 1996.
[29] M. Fortin, R. Peyret, and R. Temam. Résolution numérique des équations de
Navier-Stokes pour un fluide incompressible. J. Mécanique, 10:357–390, 1971.
[30] J. B. Perot. An Analysis of the Fractional Step Method. Journal of Computational
Physics, 108(1):51–58, 1993.
[31] L. S. d. B. Alves. Review of numerical methods for the compressible flow equations
at low Mach numbers. In XII Computational Modelling Meeting, 2009.
[32] I. J. Keshtiban, F. Belblidia, and M. F. Webster. Compressible flow solvers for low
Mach number flows - A review. Technical report, 2004.
75
[33] M. F. Pelegrini. Aplicação técnica da transformada integral para a solução de
problemas difusivos transientes com propriedades termofísicas variáveis. Tese de
Doutorado, Universidade Estadual Paulista, Ilha Solteira, SP, 2005.
[34] R. M. Cotta. The integral transform method in thermal and fluids sciences and
engineering. Begel House, Inc., New York, 1998.
[35] N. S. Koshlyakov. Note on some infinite integrals. Comp. Rend. (Doklady) Acad.
Sci. URSS, 1936.
[36] G. A. Grimnberg. Selected problems of mathematical theory of electrical and mag-
netic effects. Nauk, 1948.
[37] M. N. Ozisik. Boundary value problems of heat conduction. Scranton, 1968.
[38] C. J. Tranter. Integral transform in mathematical physics. John Wiley & Sons,
New York, 1962.
[39] M. N. Özişik and R. L. Murray. On the Solution of Linear Diffusion Problems with
Variable Boundary Condition Parameters. Journal of Heat Transfer, 96c:48–51,
1974.
[40] M. D. Mikhailov. General Solutions of the Heat Equation in Finite Regions. In-
ternational Journal of Engineering Science, 7:577–591, 1972.
[41] M. D. Mikhailov. On the solution of the heat equation with time dependent coef-
ficient. International Journal Heat and Mass Transfer, 18:344–345, 1975.
[42] R. M. Cotta. Integral Transforms in Computational Heat and Fluid Flow. CRC
Press, Boca Raton, FL, 1993.
[43] R. M. Cotta and M. N. Özişik. Laminar forced convection inside ducts with periodic
variation of inlet temperature. International Journal of Heat and Mass Transfer,
29(10):1495–1501, October 1986.
[44] R. M. Cotta. Hybrid numerical/analytical approach to nonlinear diffusion prob-
lems. Numerical Heat Transfer, Part B: Fundamentals, 17(2):217–226, 1990.
76
[45] R. Serfaty and R. M. Cotta. Hybrid analysis of transient non-linear convection-
diffusion problems. International Journal of Numerical Methods for Heat & Fluid
Flow, 2:55–62, 1992.
[46] R. M. Cotta. Benchmark results in computational heat and fluid flow: The integral
transform method. International Journal of Heat and Mass Transfer, 37:381–393,
March 1994.
[47] R. M. Cotta and M. D. Mikhailov. Heat conduction: Lumped analysis, integral
transforms, symbolic computation. John Wiley & Sons, England, 1997.
[48] R. M. Cotta and M. D. Mikhailov. Hybrid Methods and Symbolic Computations.
In W. J. Minkowycz, E. M. Sparrow, and J. Y. Murthy, editors, Handbook of
Numerical Heat Transfer. John Wiley & Sons, 2nd edition, 2006.
[49] F. H. Harlow and A. A. Amsteden. A numerical fluid dynamics calculation method
for all flow speeds. Journal of Computational Physics, 8:197–213, 1971.
[50] M. Rosenfeld, D. Kwak, and M. Vinokur. A fractional step solution method for
the unsteady incompressible Navier-Stokes equations in generalized coordinate sys-
tems. Journal of Computational Physics, 94:102–137, 1991.
[51] H. Langtangen, K. A. Mardal, and R. Winther. Numerical methods for incom-
pressible viscous flow. Advances in Water Resources, 25:1125–1146, 2002.
[52] X. Feng, Y. He, and D. Liu. Convergence analysis of an implicit fractional-step
method for the incompressible Navier–Stokes equations. Applied Mathematical
Modelling, 35(12):5856–5871, December 2011.
[53] N. V. Chemetov and F. Cipriano. Boundary layer problem: Navier–Stokes equa-
tions and Euler equations. Nonlinear Analysis: Real World Applications, 14(6):
2091–2104, December 2013.
[54] S. Sen. A new family of (5, 5) CC-4OC schemes applicable for unsteady
Navier–Stokes equations. Journal of Computational Physics, 251:251–271, Oc-
tober 2013.
77
[55] D. Viswanath and I. Tobasco. Navier–Stokes solver using Green’s functions I:
Channel flow and plane Couette flow. Journal of Computational Physics, 251:
414–431, October 2013.
[56] J. S. P. Guerrero and R. M. Cotta. Benchmark integral transform results for flow
over a backward-facing step. Computers & Fluids, 25(5):527–540, 1996.
[57] L. M. Pereira, J. S. Pérez-Guerrero, and R. M. Cotta. Integral transformation of
the navier-stokes equations in cylindrical geometry. Computational Mechanics, 21
(1):60–70, 1998.
[58] G. G. C. d. Lima, C. A. C. Santos, A. Haag, and R. M. Cotta. Integral transform
solution of internal flow problems based on navier-stokes equations and primitive
variables formulation. International Journal for Numerical Methods in Engineering,
69(3):544–561, 2007.
[59] R. O. C. Guedes and M. N. Ozisik. Hybrid approach for solving unsteady laminar
forced convection inside ducts with periodically varying inlet temperature. Int. J.
Heat and Fluid Flow, 15:116–121, 1994.
[60] R. O. C. Guedes and M. N. Ozisik. Transient heat transfer in simultaneously de-
veloping channel flow with step change in inlet temperature. International Journal
Heat and Mass Transfer, 37:2699–2706, 1994.
[61] R. M. Cotta and J. E. V. Gerk. Mixed finite-difference/integral transform approach
for parabolic-hyperbolic problems in transient forced convection. Numerical Heat
Transfer, Part B: Fundamentals, 25:433 – 448, 1994.
[62] D. J. M. N. Chalhub, L. A. Sphaier, and L. S. d. B. Alves. Integral Transform
Solution of Convective Heat Transfer Problems using Upwind Approximations.
Numerical Heat Transfer - Part B, 63:167–187, 2013.
[63] F. V. Castellões and R. M. Cotta. Analysis of transient and periodic convection in
microchannels via integral transforms. Progress in Computational Fluid Dynamics,
6:321–326, 2006.
78
[64] D. J. N. M. Chalhub, L. A. Sphaier, and L. S. d. B. Alves. Integral Transform
Analysis of Poisson Problems that Occur in Discrete Solutions of the Incompressible
Navier-Stokes Equations. Journal of Physics: Conference Series, 547(1):012040,
November 2014.
[65] P. K. Kundu. Fluid Mechanics. Academic Press, San Diego, CA, 1990.
[66] J. A. Carlson, A. Jaffe, A. Wiles, C. M. Institute, and A. M. Society. The Millen-
nium Prize Problems. American Mathematical Soc., January 2006.
[67] D. D. G. Shirokoff. I. A pressure Poisson method for the incompressible Navier-
Stokes equations : II. Long time behavior of the Klein-Gordon equations. Thesis,
Massachusetts Institute of Technology, 2011.
[68] P. M. Gresho and R. L. Sani. On pressure boundary conditions for the incom-
pressible Navier-Stokes equations. Journal for Numerical Methods in Fluids, 7:
1111–1145, 1987.
[69] Y. Pinchover and J. Rubinstein. An Introduction to Partial Differential Equations.
Cambridge University Press, May 2005.
[70] M. D. Greenberg. Advanced Engineering Mathematics. Prentice Hall, Upper Saddle
River, NJ, 2nd edition, 1998.
[71] S. Abdallah. Numerical solutions for the pressure Poisson equation with Neu-
mann boundary conditions using a non-staggered grid, I. Journal of computational
physics, 70(1):182–192, 1987.
[72] S. Abdallah. Numerical Solutions for the incompressibel Navier-Stokes equations in
primitive variables using non-staggered grid, II. Journal of computational physics,
70:193–202, 1987.
[73] P. Moin. Fundamentals of Engineering Numerical Analysis. Cambridge University
Press, New York, NY, 2001.
[74] P. M. Gresho and R. L. Sani. Incompressible Flow and the Finite Element Method.
John Wiley $&$ Sons, Baffins Lane, Chichester, West Sussex PO19 IUD, England,
1998.
79
[75] G. B. Arfken and H. J. Weber. Mathematical Methods for Phisicists. Elsevier
Academic Press, 6th edition edition, 2005.
[76] J. Z. Wu, H. Y. Ma, and M. D. Zhou. Vorticity and Vortex Dynamics. Springer
Science & Business Media, April 2007.
[77] E. N. Macêdo, R. M. Cotta, and H. R. B. Orlande. Local-instantaneous filtering
in the integral transform solution of nonlinear diffusion problems. Computational
Mechanics, 23(5):524–532, 1999.
[78] R. Gondim, E. Macedo, and R. Cotta. Hybrid solution for transient internal con-
vection with axial diffusion: Integral transforms and local instantaneous filtering.
International Journal of Numerical Methods for Heat & Fluid Flow, 17(4):405–417,
2007.
[79] I. I. Hirschman. Infinite Series. Dover Publications, New York, 2014.
[80] GFortran, Gnu compiler collection (gcc), Version 4.8.2, http://gcc.gnu.org .
[81] D. J. N. M. Chalhub, L. A. Sphaier, and L. S. de B. Alves. Semi-analytical method
for the solution of the poisson equation derived from the navier-stokes using inte-
gral transforms. In ASME 2014 12th International Conference on Nanochannels,
Microchannels, and Minichannels collocated with the ASME 2014 4th Joint US-
European Fluids Engineering Division Summer Meeting, Chicago, Illinois, USA,
2014.
[82] L. A. Sphaier and R. M. Cotta. Analytical and hybrid solutions of diffusion prob-
lems within arbitrarily shaped regions via integral transforms. Computational Me-
chanics, 29(3):265–276, 2002.
80