zone densify
command
Syntax
- zone densify keyword ... <range>
Primary keywords:
aspect-ratio edge-limit global gradient-limit local maximum-length segments repeat
Find all zones in the range and subdivide them into smaller zones that fill the same volume. This creates new zones, and in general creates new gridpoints. The new zones inherit the group assignments of the originals.
Note that this can create “hanging” gridpoints that are not perfectly connected to the surrounding grid. The
zone attach by-face
command should be used before cycling, to ensure continuous model behavior.See Densifying Grids for a discussion and examples of the use of zone densification, and Geometry-Based Densification: Octree Meshing for discussion and examples the process of creating an “octree” mesh based on geometric data (these are 3D examples; a similar approach can be used in 2D).
For FLAC3D: densification of meshes with degenerate zone types (wedges, tetra, pyramid, etc.) can be problematic. Densification of triangular faces will occur using a degenerate point where all lines converge. If that point is not the same on two zones connected across a triangular face the resulting geometry will not be well-behaved and will produce small artifacts in the solution even when attached. These geometries can also cause unexpected topological surfaces that could interact poorly with zone face separation. The command will attempt to detect that condition and warn the user.
- aspect-ratio f
This option currently works only on hexahedral (brick) type zones in 3D and quadrilateral zones in 2D. Attempting to use it on other types will cause an error.
If a zone is determined to have an aspect ratio above this limit, it is densified in that direction only using the multiplier value given for that degree-of-freedom. This can be used with the
repeat
keyword to divide zones systematically along the longest direction until the aspect ratio falls below the desired value.
- edge-limit f
If the maximum edge length of the zone falls above this value, then it will be densified using the
segments
multiplier in all three directions. If it falls below this value it will be ignored. This value may be used in combination withrepeat
to subdivide zones systematically until the maximum edge length is less than the limit.Note that this behavior is different than the
maximum-length
keyword, which will calculate the number of subdivisions dynamically. When therepeat
keyword is used the difference is only that themaximum-length
keyword allows different length limits in different directions.
- global
This specifies that the
segments
keyword applies to the zone edges (in 3D) or faces (in 2D) that most closely correspond to the global \(x\)-, \(y\)-, and \(z\)-axes (in 3D).For FLAC3D: This option currently works only on hexahedral (brick) type zones.
For FLAC2D: This is the default setting when neither
global
norlocal
keywords are provided.
- gradient-limit
Zones chosen for densification will be checked to attempt to ensure that adjacent zones differ by, at most, one level of densification. This may mean more zones will be densified than actually fall into the range.
- local
This is to set the zones to be densified in a local segment order.
For FLAC3D: This is the default setting when neither
global
norlocal
keywords are provided.The local segment order is along the edges of e1, e2 and e3, where e1, e2 and e3 are the edges of the first and second, first and third, and first and fourth gridpoints of this zone.
For FLAC2D: The local segment order is along the faces between the first and second and first and third gridpoints of this zone.
- maximum-length f1 <f2 <f3 >>
This specifies the maximum edge lengths to be densified, in order of local or global \(x\)-, \(y\)-, or \(z\)- direction. If f2 and f3 are not specified, they will be set to the same number as f1. The value f3 is used in 3D only.
The number of divisions (used instead of what can specified with the
segments
keyword) is calculated for each zone in order to bring the resulting edge length below the maximum. The divisions resulting are constrained to fall in powers of 2 (1,2,4,8,…).Note that this differs from the behavior of the
edge-limit
keyword, which will use the divisions specified in thesegments
keyword. When therepeat
keyword is used the difference is only that themaximum-length
keyword allows different length limits in different directions.
- segments i1 <i2 <i3 >>
This specifies the subdivision number of zones to be densified, in order. If i2 and i3 are not specified, they will be set to the same number as i1. The value i3 is used in 3D only.
Note that using non-uniform segment values is not recommended on very irregular starting meshes—in particular the kind resulting from mesh generation tools like Griddle. Adjacent zones may have very different local orientations. Use of the
global
keyword may mitigate these effects but it will not eliminate them.If using non-uniform segment values, choose choose numbers that are multiples of each other. For example 1,2,4 will tend to produce better meshes than 2,3,5.
- repeat <i >
Repeats the densification i times, causing a recursive application of the range and densification settings. This can, for example, be used to create an octree grid. Note that if no number is given, then FLAC will repeat until the
edge-limit
is reached, applying the division specified insegments
each time.
Was this helpful? ... | Itasca Software © 2024, Itasca | Updated: Sep 26, 2024 |