8.6 Finite Volume Methods
243
with an interface between two sides of the same block (i.e., A and B are the
same block, but the grids may not match).
Each interface cell face contributes to the source terms for the neighboring
CVs (explicit contributions to the convective and diffusive fluxes treated by
deferred correction), to the main diagonal coefficient (Ap) of these CVs, and
to two off-diagonal coefficients: AL for node R and AR for node L. The
problem of irregularity of data structure due to having three east neighbors is
thus overcome by regarding the contributions to the global coefficient matrix
as belonging to the interface cell faces (which always have two neighbor cells)
rather than to the CVs. It is then irrelevant how the blocks are ordered
relative to each other (the east side of one block can be connected to any side
of the other block): one has only to provide the indices of the neighbor CVs
to the interface cell faces.
The contributions from interface cell faces, namely AL and AR, make
the global coefficient matrix A irregular: neither the number of elements per
row nor the bandwidth is constant. However, this is easily dealt with. All
we need to do is to modify the iteration matrix M (see Chap. 5) so that it
does not contain the elements due to the faces on the block interfaces. We
shall describe a solution algorithm based on an ILU-type of solver; it is easily
adapted to other linear equation solvers.
1. Assemble the elements of matrix A and the source term Q in each block,
ignoring the contributions of the block interfaces.
2. Loop over the list of interface cell faces, updating Ap and Qp at nodes L
and R, and calculate the matrix elements stored at the cell face, AL and
AR.
3. Calculate elements of matrices L and U in each block disregarding neighbor blocks, i.e. as if they were on their own.
4. Calculate the residuals in each block using the regular part of the matrix
A (AE, Aw, AN, As, Ap, and Qp); the residuals for the CVs along block
interfaces are incomplete, since the coefficients that refer to neighbor
blocks are zero.
5. Loop over the list of interface cell faces and update the residuals at nodes
L and R by adding the products A R ~ R and A L 4 ~ ,
respectively; once all
faces have been visited, all the residuals are complete.
6. Compute the variable update at each node in each block and return to
step 1.
7. Repeat until the convergence criterion is met.
Since the matrix elements referring to nodes in neighbor blocks do not
contribute to the iteration matrix M , one expects that the number of iterations required to converge will be larger than it is in the single block case.
This effect can be studied by artificially splitting a structured grid into several sub-domains and treating each piece as a block. As already mentioned,
this is what is done when implicit methods are parallelized by using domain
decomposition in space (see Chap. 11); the degradation of convergence rate
243
with an interface between two sides of the same block (i.e., A and B are the
same block, but the grids may not match).
Each interface cell face contributes to the source terms for the neighboring
CVs (explicit contributions to the convective and diffusive fluxes treated by
deferred correction), to the main diagonal coefficient (Ap) of these CVs, and
to two off-diagonal coefficients: AL for node R and AR for node L. The
problem of irregularity of data structure due to having three east neighbors is
thus overcome by regarding the contributions to the global coefficient matrix
as belonging to the interface cell faces (which always have two neighbor cells)
rather than to the CVs. It is then irrelevant how the blocks are ordered
relative to each other (the east side of one block can be connected to any side
of the other block): one has only to provide the indices of the neighbor CVs
to the interface cell faces.
The contributions from interface cell faces, namely AL and AR, make
the global coefficient matrix A irregular: neither the number of elements per
row nor the bandwidth is constant. However, this is easily dealt with. All
we need to do is to modify the iteration matrix M (see Chap. 5) so that it
does not contain the elements due to the faces on the block interfaces. We
shall describe a solution algorithm based on an ILU-type of solver; it is easily
adapted to other linear equation solvers.
1. Assemble the elements of matrix A and the source term Q in each block,
ignoring the contributions of the block interfaces.
2. Loop over the list of interface cell faces, updating Ap and Qp at nodes L
and R, and calculate the matrix elements stored at the cell face, AL and
AR.
3. Calculate elements of matrices L and U in each block disregarding neighbor blocks, i.e. as if they were on their own.
4. Calculate the residuals in each block using the regular part of the matrix
A (AE, Aw, AN, As, Ap, and Qp); the residuals for the CVs along block
interfaces are incomplete, since the coefficients that refer to neighbor
blocks are zero.
5. Loop over the list of interface cell faces and update the residuals at nodes
L and R by adding the products A R ~ R and A L 4 ~ ,
respectively; once all
faces have been visited, all the residuals are complete.
6. Compute the variable update at each node in each block and return to
step 1.
7. Repeat until the convergence criterion is met.
Since the matrix elements referring to nodes in neighbor blocks do not
contribute to the iteration matrix M , one expects that the number of iterations required to converge will be larger than it is in the single block case.
This effect can be studied by artificially splitting a structured grid into several sub-domains and treating each piece as a block. As already mentioned,
this is what is done when implicit methods are parallelized by using domain
decomposition in space (see Chap. 11); the degradation of convergence rate
