Chapter 11. COMPUTATIONAL DOMAIN DECOMPOSITION
| TABLE OF CONTENTS | CLOSE MANUAL |
DEFINITION OF COMPUTATIONAL DOMAIN RELATED TERMS :
The VULCAN code is based on a structured grid, cell centered, control volume methodology. However, before describing the VULCAN grid file format it is important to define the domain decomposition hierarchy and terms used by VULCAN.
| 1) | POINT or NODE | A location in Cartesian space where the grid coordinates are known. |
| 2) | CELL | A single control volume made up of 4 or 8 grid POINTS. a) Two-dimensional/axisymmetric -> quadrilateral (four grid points defining four cell faces) b) Three-dimensional -> hexahedron (eight grid points defining six cell faces) |
| 3) | BLOCK | A structured matrix of CELLS in logical (j,k,i) space. |
| 4) | REGION | A list or group of BLOCKS that share a common solution algorithm, and that are time or space marched together. Regions are solved sequentially in VULCAN and communication between blocks in different regions only takes place once during the solution process of each region. (there will be more discussion on this concept below) |
| 5) | COMPUTATIONAL DOMAIN | Sum of all grid POINTS, CELLS, BLOCKS, and REGIONS to be solved using the current VULCAN input file. |
NOTE : The two-dimensional (x,y) and axi-symmetric (x,r) grid POINTS are transformed by VULCAN to form CELLS in a three-dimensional Cartesian coordinate system (x, y and z). The CELLS are then solved in this three-dimensional space using a three-dimensional algorithm.
As mentioned above a BLOCK is a structured matrix of cells in logical space. The BLOCK is an geometric abstraction by which the physical geometry can be broken up into chunks (or BLOCKS) of structured body conformal curvilinear grid lines. The BLOCK concept is typically used to place grid lines onto geometry surfaces while minimizing grid cell skewness. A two-dimensional grid (shown below) serves to illustrate this concept. The computational domain is made up of two BLOCKS, BLOCK 1 (in red) and BLOCK 2 (in green).
Figure 4. Two BLOCK grid
Each of the blocks consists of 65 grid points in the i direction and 25 grid points in the j direction. Two BLOCKS were used due to the presence of the cowl surface. The computational domain could have been defined using a single BLOCK but doing so would have resulted in a grid containing badly sheared cells. The boundary conditions and block-to-block communications for BLOCK 1 would be defined as shown below.
Figure 5. BLOCK 1 boundary treatment
The block-to-block communication method should be a CUT because the grid points on the JMAX boundary of BLOCK 1 are C(0) continuous with the companion grid points on the JMIN boundary of BLOCK 2. The boundary conditions and block-to-block communications for BLOCK 2 would be defined as shown below.
Figure 6. BLOCK 2 boundary treatment
This arrangement of BLOCKS (or BLOCK topology), along with information about the free stream conditions can then be used to create a VULCAN input file either manually using the text editor of your choice, or using the VULCAN input file creation graphical user interface (vulcanig).
This particular computational problem is included as one of the sample cases in the VULCAN Sample_cases subdirectory supplied with the standard distribution of VULCAN. The input file is reproduced below (this example utilizes the old VULCAN input format):
| '$**************** Beginning of general control data ******************$' 0.0 |
The section of the input file that pertains to domain decomposition is contained in the input file after the line:
'$---------------- Boundary and Cut Control ---------------------------$' 0.0
The input file indicates that the grid contains 2 blocks, 8 boundary conditions, and 1 C(0) block-to-block communication. The 8 boundary conditions are defined in the 8 input lines following the boundary condition header line:
'BC NAME BLK FACE PLACE DIRECN BEGIN END DIRECN BEGIN END IN-ORDER BC TYPE'
while the C(0) block-to-block communication (CUT) is defined by the 2 input lines following the CUT header line:
'CUT NAME BLK FACE PLACE INDEX1 BEGIN END INDEX2 BEGIN END IN-ORDER'
The two blocks are assigned to a single region that is to be space marched by the input lines contained in the BLOCK CONFIG. input section:
|
'BLK I-STRESS J-STRESS K-STRESS TURB. REAC. PLOT SOLVER REGION' 1 'N' 'N' 'N' 'Y' 'M/A' 1 2 'N' 'N' 'N' 'Y' 'M/A' 1 |
GENERIC REGION RULES :
The input in the column under REGION given as 1 for both blocks in the file indicates that both blocks belong to region 1. The rules that govern how to group blocks into regions are as follows:
1) All blocks in a given region must have the same solver type and status (e.g. 'M/A' or 'E/I').
2) Any block that communicates with another block where the contravariant Mach no. at the communication boundary is predominantly subsonic MUST belong to the same REGION.
3) The flow that passes through an inter-region connection MUST be hyperbolic/parabolic (i.e. the boundary contravariant Mach no. should be predominantly supersonic and the flow must pass from a block of lower region number to a block of higher region number).
4) Any block boundary in one region that connects/communicates with a block boundary in another region must have:a) Either a REGOUT or REGOUT2 boundary condition andThe boundary conditions are used during the solution of the upstream REGION as outflow conditions and the block-to-block communication condition is used to obtain the inflow
b) either a CUT or a PATCH condition
conditions for the downstream REGION/BLOCK.
REGION RULES SPECIFIC TO ELLIPTIC SOLVER :
1) All blocks in an elliptic region must have the SOLVER type E and have the same status (e.g. all 'E/A' or all 'E/I').
2) Blocks can connect/communicate within REGIONS and across REGIONS in any pairing/combination of I, J, and K boundaries.
REGION RULES SPECIFIC TO SPACE MARCHING SOLVER :
The input in the column under SOLVER given as 'M/A' in the file indicates that the space marching solver is to be used to solve REGION 1. Applying the space marching solver to this grid as indicated will cause VULCAN to start and stop space marching over the I-cells given below the SM START,STOP line (in this case 1 and 64). Each I plane of cells will be iterated/solved in pseudo-time with the block-to-block communication coupling between the two blocks at the current I plane with each iteration. The rules that govern space marching are as follows:
1) All blocks in a space marched region must have the SOLVER type M and the same status(e.g. all 'M/A' or all 'M/I').
2) Space marching is only allowed in the I direction and the contravariant Mach no. of the flow in the I direction must be supersonic outside of any boundary layers present.
3) The blocks may have different numbers of I planes with the following constraints:a) The blocks must be C(0) continuous in the j direction on j boundaries (2-D, axi, and 3-D) and C(0) continuous in the k direction on k boundaries (3-D).4) Space marched blocks that connect/communicate with other blocks in the i direction must have different region numbers such that:
b) Any cell in a given block that communicates through a j or k boundary to another j or k cell in a different block must have the same I plane number.a) A block that connects through its IMIN boundary MUST belong to a higher numbered region than the block from which the data is obtained.
b) Either a REGOUT or REGOUT2 boundary condition must be included on the upstream side of ANY block boundary that connects/communicates with a block in a different region.
EXAMPLES OF DOMAIN DECOMPOSITION :
When the computational domain presented in figure 4 is solved using the domain decomposition described by the given input file, the flow can be post-processed and the pressure contours plotted. The static pressure contours are presented in figure 7 below.
An alternative domain composition could involve using an elliptic solver in one region with the same two block grid as in figure 4:
| '$---------------- Boundary and Cut Control ---------------------------$' 0.0 |
Partitioning the domain into 2 regions, where the elliptic solver is used in region 1 (containing blocks 1 and 3) and the space marching solver is used in region 2 (containing block 2) would require input that looked like the following:
| '$---------------- Boundary and Cut Control ---------------------------$' 0.0 |
3)Re-partitioning the domain in figure 7 into 2 regions but using the space marching solver in region 1 containing blocks 1 and 3 and the space marching solver in region 2 containing block 2 would require input that looked like :
| '$---------------- Boundary and Cut Control ---------------------------$' 0.0 |
| TABLE OF CONTENTS | CLOSE MANUAL |