Thư viện tri thức trực tuyến
Kho tài liệu với 50,000+ tài liệu học thuật
© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Applied Computational Fluid Dynamics Techniques - Wiley Episode 1 Part 5 ppsx
Nội dung xem thử
Mô tả chi tiết
86 APPLIED COMPUTATIONAL FLUID DYNAMICS TECHNIQUES
- Construct a quad/octree for the points;
- Order the elements according to decreasing volume (e.g. in a heap-list);
- Construct a linked list for all the elements surrounding each point;
- do: Loop over the elements, in descending volume, testing:
- if the element, denoted in the following by ielem, has not been marked for
deletion before:
- Obtain the minimum/maximum extent of the coordinates belonging to this element;
- Find from the quad/octree all points falling into this search region, storing them in a list
lclop(1:nclop);
- Find all the unmarked elements with smaller volume than ielem surrounding the
points stored in
lclop(1:nclop); this yields a list of close elements lcloe(1:ncloe);
- Loop over the elements stored in lcloe(1:ncloe):
- if the element crosses the faces of or is inside ielem
Mark ielem for deletion
endif
endif
enddo
The reason for looping over the elements according to descending volumes is that the
search region is obtained in a natural way (the extent of the element). Looping according
to ascending volumes would imply guessing search regions. As negative elements could lead
to a failure of this test, the overlap test is performed after the negative elements have been
identified and marked.
The test for overlapping elements can account for a large portion of the overall CPU
requirement. Therefore, several filtering and marking strategies have to be implemented to
speed up the procedure. The most important ones are as follows.
Column marking
The mesh crossing test is carried out after all the negative, badly shaped and large elements
have been removed. This leaves a series of prismatic columns, which go from the surface
triangle to the last element of the original column still kept. The idea is to test the overlap
of these prismatic columns, and mark all the elements in columns that pass the test as
not requiring any further crossing tests. In order to perform this test, we subdivide the
prismatic columns into three tetrahedra as before, and use the usual element crossing tests
for tetrahedra. Since a large portion of the elements does not require further testing (e.g.
convex surfaces that are far enough apart), this is a very effective test that leads to a drastic
reduction of CPU requirements.
Prism removal
Given that the elements in the semi-structured region were created from prisms, it is an easy
matter to identify for each element the triplet of elements stemming from the same prism. If
an element happens to be rejected, all three elements of the original prism are rejected. This
avoids subsequent testing of the elements from the same prism.
GRID GENERATION 87
Marking of surfaces
Typically, the elements of a surface segment or patch will not overlap. This is because, in most
instances, the number of faces created on each of these patches is relatively large, and/or the
patches themselves are relatively smooth surfaces. The main areas where overlap can occur
are corners or ‘coalescing fronts’. For both cases, in the majority of the cases encountered in
practice, the elements will originate from different surface patches. Should a patch definition
of the surface not be available, an alternative is to compute the surface smoothness and
concavity from the surface triangulation. Then discrete ‘patches’ can be associated with
the discretized surface using, e.g., a neighbour-to-neighbour marching algorithm. If the
assumption of surface patch smoothness and/or convexity can be made, then it is clear that
only the elements (and points) that originated from a surface patch other than the one that
gave rise to the element currently being examined need to be tested. In this way, a large
number of unnecessary tests can be avoided.
Rejection via close points
The idea of storing the patch from which an element emanated can also be applied to points.
If any given point from another patch that is surrounded by elements that are smaller than
the one currently being tested is too close, the element is marked for deletion. The proximity
test is carried out by computing the smallest distance between the close point and the four
vertices of the element being tested. If this distance is less than approximately the smallest
side length of the element, the element is marked for deletion. Evaluating four distances is
very inexpensive compared to a full crossing test.
Rejection if a point lies within an element
If one of the close points happens to fall within the element being tested, then obviously
a crossing situation occurs. Testing whether a point falls inside the element is considerably
cheaper (by more than an order of magnitude) than testing whether the elements surrounding
this point cross the element. Therefore, all the close points are subjected to this test before
proceeding.
Top element in prism test
The most likely candidate for element crossing of any given triplet of elements that form a
prism is the top one. This is because, in the case of ‘coalescing fronts’, the top elements will
be the first ones to collide. It is therefore prudent to subject only this element to the full (and
expensive) element crossing test. In fact, only the top face of this element needs to be tested.
This avoids a very large number of unnecessary tests, and has been found to work very well
in practice.
Avoidance of low layer testing
Grids suitable for RANS calculations are characterized by having extremely small grid
spacings close to wetted surfaces. It is highly unlikely – although of course not impossible
– that the layers closest to the body should cross or overlap. Therefore, one can, in most