Next: Multiple QIACs
Up: Grid Alignment for QIACs
Previous: Grid Alignment for QIACs
Single QIAC
Consider the initial reference grid and the embedded quadrilateral
shown in Fig.
.
We will use this example to
illustrate the basic single QIAC algorithm:
- 1.
- Assign logical (grid) coordinates for the vertices and center of the
quadrilateral and identify the closest reference point for each vertex:
- Identify the grid point closest to each vertex of the quadrilateral
and assign its logical coordinates to the vertex. In
Fig.
if the grid lines are numbered from
0 to 10, then the grid index closest to the vertex V0
at (0.2,0.6) is (2,6), V1 is at (5,2),
V2 is at (8,4), and V3 is at (5,8).
Here we have ordered the four vertices in counterclockwise
in the logical (grid) coordinate system.
- Determine a starting vertex for the algorithm in a consistent
manner. We use an algorithm that identifies the vertex in the
lower left corner for the logical grid system.
The horizontal coordinate of this vertex is smaller than
the next vertex and the sum of absolute value for the
slopes of the two edges is less in the x-direction than in the
y-direction. For this example, only V0 and V1 satisfy the first
condition. For the sum of absolute value of the
logical slopes between V0 - V1 and V2 - V3, is
((6-2)/(5-2) + (8-4)/(8-5) = 8/3). This sum between V1 - V2 and
V0 - V3 is
((4-2)/(8-5) + (8-6)/(5-2) = 4/3). Therefore, we define
V1 to be the low left corner in logical coordinates.
- Define reference points in the logical coordinate system.
- Define the logical center of the quadrilateral as the
average of the logical coordinates of the four vertices. For this example
the logical center is at (5, 5).
- Define average logical length in the x-direction of the logical
coordinate as
(8-5+5-2)/2+1=4. The average logical length in
y direction is
(6-2+8-4)/2+1=5.
- Define the logical coordinates for the four vertices based on the
logical coordinates of the center and average length in each direction.
The logical coordinates for the low left corner V1 is
(5-4/2,5-5/2)=(3,3). The logical coordinates for other three vertices is
V2=(7,3), V3=(7,7), V0=(3,7).
- 2.
- Split the domain into nine parts by connecting the four vertices with
the domain boundaries by moving the closest reference point to each vertex.
as shown in Fig.
. For this example, the closest reference point
of each vertex and vertex itself are at the same location. For general grid,
this may not be true. Some parts may be degenerated into a line if one line
segment of the quadrilateral is on the domain boundary.
- 3.
- Using the inverse interpolation, compute the grid
locations for the line segments on
the quadrilateral, along the lines connecting these
segments to the domain boundaries and on the domain
boundaries as shown in Fig.
.
- First define the grid points on the lines connecting the
vertices with the domain boundaries. Note that to
prevent the grid from crossing each other on
a boundary, the locations on the domain boundaries and
the points nearest to the boundaries
are not changed by the inverse interpolation.
- Using the inverse interpolation, define the grid positions
on the domain boundary.
- Define the grid points between the vertices
on the QIAC.
- 4.
- If the domain boundary has kink point, move the reference grid point
closest to the kink point to the kink point,
as we did for aligning the grid with an SIAC. (Note, that there are
no kink points in the example shown in Fig.
). Because we modify the grid
point locations only on the four lines, where the edges of quadrilateral
lie, and the domain boundaries, the grid we generate after this step
is very irregular.
- 5.
- Using the same smoothing operator as for the SIAC,
generate the aligned grid while freezing the grid points on the QIAC and
domain boundary.
Figure:
The initial QIAC is embedded in a uniform
3#3
initial grid.
|
=3.75in
quainput1.eps
|
Figure:
The domain is split into nine subdomains by exending
the vertices to the domain boundaries.
|
=3.0in
quainput2.eps
|
Figure:
The reference grid points are defined for the
line segments on the QIAC, the lines connecting the vertices to
the domain boundaries and along the domain boundaries.
|
=3.0in
quainput5.eps
|
Figure:
The initial grid points nearest the IACs are moved to the
newly defined reference grid points.
|
=3.0in
quainput6.eps
|
Figure:
The grid is regularized by the smoothing iteration.
|
=3.0in
quainput7.eps
|
To avoid a singularity, the algorithm requires the reference grid to be sufficiently
fine so that in the first step different
vertices have different logical coordinates.
Even with this restriction, two vertices may have
the same nearest reference point, which could lead to the singularity of the
quadrilateral. This often happens for a thinner layer where two vertices are
very close. This can be avoided by using a finer
reference grid to find the reference point for each vertex. The minimum spacing
for the finer grid should be larger than the minimum distance between any two
vertices. Rather than have the algorithm fail when this occurs, we
define the reference vertices sequentially by
binding the vertex is closest to a reference point to that point and
eliminating it for consideration as a reference point for any other
vertices. This approach is robust, and can create a locally fine grid
near the quadrilateral.
Next: Multiple QIACs
Up: Grid Alignment for QIACs
Previous: Grid Alignment for QIACs
Shengtai Li
1998-10-13