Database Full Index
2. Tetra
[ top ] [ previous ] [ next ]
2.1. How do I create a tetra mesh?
ICEM CFD's Tetra mesher requires the following to obtain a legitimate tetra grid:
[ top ]
2.2. I run tetra and I do not see any mesh on all/some surfaces?
One of things could be happening.
- After your Tetra run, you may not have loaded your domain file
- Scroll up in the messages window to see if Mesh Editor has loaded the domain file. If you do not see this message, simply load the domain file (File > Open > Domain (mesh) File), and you should see your mesh. Turn on Tri_3 in the Display Menu to see the surface mesh.
- You may have leakage, and a valid domain file was never created
- While you are running Tetra if there is a leakage in your geometry, then it pops-up a window that "you have a leakage, do you want to repair it now?". At that time you might have pressed NO. If you press NO, then it loads the uncut domain of the tetra mesh into Mesh editor. Since there is a leak it could not find a closed volume around the material point, and thus could not create surface mesh at some places. There are several ways to close holes:
- The best way is to close the holes in the geometry, and re-run tetra. If it is difficult to find the holes in the model, the user can run tetra interactive to see where the holes are located, or run geometry repair on the model which also may indicate a hole, please see "How do I ensure a closed volume for Tetra"
- If there are holes a window pops up asking the user whether he wants to close holes during Tetra run. See I run tetra-interactive, and I have leakage (a squiggly line appears on the screen).
- You may have defined material points in the same family on both sides of a surface, thus the mesh disappears on that surface
[ top ]
2.3. I run Tetra - From CAD/Surface mesh and I have leakage.
Leakage will be indicated by a green jagged line in the display and a message that "Your geometry has a hole, do you want to repair it?". Also, in the Message Window you should see "Material point ORFN can see material point [volume family name, e.g. LIVE]".
- Select "Yes" indicating you want to repair the hole and then Surface repair options window will pop-up. Keep the defaults and press "Accept" in that window.
- Select single (yellow) edges that form a closed loop and hit the middle mouse button (complete function). Repeat procedure for any other closed loops.
- "Flood Fill" will start automatically. If successful you should be able to see your entire surface boundary mesh. If not successful try to close holes again, and re-run Flood Fill. If the hole is much larger than the element size (greater than 3 to 4 times the edge length of neighboring elements) it is most likely due to a gap in the geometry in which case you should re-check the geometry for missing surfaces and repair any gaps or holes.
- Save mesh by selecting "File > Save > Domain (mesh) file"
If you are unable to close the holes, please see I run Tetra-From CAD/Surface mesh, have leakage, but cannot close holes.
[ top ]
2.4. I run tetra, but my volume assignment seems wrong.
Check your Material Point location by turning on Materials in the Display menu. If the Material Point is not inside the volume you want to mesh, use Geometry, Material, Copy/Move, Selected Materials to move the material point inside the volume you want to mesh. After moving the Material Point, you need to re-run 'Tetra'.
[ top ]
2.5. I run tetra, but my mesh looks too coarse/fine.
There are two options to improve this situtaion.
- Decrease/increase the Reference Size under Geometry > Mesh Parameters > Model. All surface parameters are multiplied by the Reference size to obtain the surface parameter used during the Tetra process. Reducing/Increasing the Reference size will result in a finer/coarser mesh on all surfaces in the model.
- Decrease/increase the surface parameters on certain surfaces or families of surfaces in the model. This will create a finer/coarser mesh on these surfaces only and the remaining surfaces will not be affected.
After modifying the Reference size or Surface parameters Tetra needs to be re-run.
[ top ]
2.6. I run tetra, but I get Orientation Errors.
If you get orientation errors immediately after the tetra run, they could be because one part of the geometry passes through another and you do not have the necessary intersection curves. In these cases, you might also get non-manifold vertices in those locations.
[ top ]
2.7. I run Tetra-From CAD/Surface Mesh and I have leakage, but cannot close the holes.
If you are unable to close the holes using Repair mesh during the Tetra run, then there are two other options.
- The best option is to close the geometry holes in either ICEM CFD's Mesh Editor or in the Native CAD Package. After fixing the CAD data, Tetra needs to be re-run.
- If the surface data is of reasonable quality but Tetra is still indicating leakage, try increasing the Edge Criterion from the default value of 0.2 to 0.3 and re-run Tetra. The Edge Criterion value is set under Geometry > Mesh Parameters > Model.
[ top ]
2.8. Why do I need curves/points for tetra meshing?
ICEM CFD Tetra Requires curves at locations where the user is interested in capturing geometrical features. Curves in tetra tell the mesher that nodes need to be aligned along a feature. For instance, given the situations below:
Example 1 illustrates two flat surfaces, with a fillet surface going between the two. In Example 2, the two flat surfaces meet.
In Example 1 the tetra mesh will round along the filleted region. The mesh does not have to conform to the edges ofthe surfaces. In fact if the mesh did have to conform to the edges of the surface, the mesh could be over-constrained, since if the mesh size is large, the mesh could jump from one edge to the other edge, and neglect to model the fillet region. Thus, the curves at the top and bottom of the filleted surface shouldn't be included in the model.
In Example 2 the mesh will round the corner unless there is a curve where the vertical and horizontal surface meet. This said, it is important to include the curve in example 2, since it will force ICEM CFD Tetra to line nodes along this corner.
The illustrations above say the same for points in the corners of curves, if two curves come together at a sharp angle, and the user wants to capture this feature, they need a point in this corner.
Let's see another example. For the geometry on left picture, you _DO_ need curves and points at the kink areas as defined there. If you don't give them, you might end up with a mesh like the one on right top instead of the one on right bottom:
 |
Without Curves/points  |
With Curves/points |
|
[ top ]
2.9. Why does my mesh jump from one surface to another?
You probably have two surfaces coming very close to each other. You need to make sure that the tetra sizes (look at the tetra icons) small enough so that at least 1 or 2 tets would fit through the thickness there.
If you cannot ensure that then it is recommended that the user define a thin cut on these two surfaces. To define a thin cut, the two surfaces have to be in different families, and if converging, the curve at the intersection of the surfaces has to be in a third family.
If the mesh size is larger or approximately the same size as the gap, the surface mesh could have a tendency to jump the gap creating non-manifold vertices. This occurs in the Tetra process, because Tetra will automatically try
to close holes in a model.
[ top ]
2.10. How do I define periodicity?
Tetra models just need the periodicities to be defined inside MED. If you have not done yet, please do it
[ top ]
2.11. How do I create squeezed/stretched tetras to resolve my boundary layer?
Currently there is only one way you can do this.
Create your tetra mesh, create prisms on the boundary and convert all elements to tetras including pyramids if any. However, you need to put special attention towards following:
- How much is the stretch ratio that your solver can handle? Some solvers can take even 1:200 ratio of height/base of a tetra while some can even blow up with just 1:20. Theoretically, it should not matter much as towards the boudary, there are not big cross flow gradients
- Ideally there should not be any big cell jump between the last prism height and the immediate tetra. See "How do I ensure that there is a smooth volume transition from prism to tetras?" to follow this.
- Try to see if you can avoid pyramids coming in your prism mesh. Pyramids could sometimes be of extra-ordinary height as compared to their adjacent prisms.
Having a squeezed/stretched triangular surface mesh and then running "Tetra from surface mesh" is not a solution to this as it does not put any restriction towards the tetra height. Further, "Tetra from surface mesh" is pretty sensitive towards base triangle quality as well as adjacent cell size ratio. Thus, it may never create the tetra mesh for you.
If you are at the solution stage, then probably you can use OptiMesh to get the squeezed tetras at the steep solution gradients. However, OptiMesh is limited to a few solvers at this stage.
[ top ]
2.12. How do I run tetra from command-line?
Tetra needs a file called "tetra_params" which has the information about the geometry file and the "Domain (mesh) file" file to be saved. The tetra_params file should look like the following:
| SurfaceFile |
"project/tetinfile" |
| DomainOutputFile |
"project/tetra_mesh.uns" |
| CacheIntersections |
0 |
On command-line you should run:
$ICEM_ACN/icemcfd/tetra tetra_params
Please be aware that the paths for the tetin and domain (mesh) files in the "tetra_params" file are relative to the current location..
If you want to run parallel version of tetra (ICEMCFD version 4.2 onwards), you can run the command
$ICEM_ACN/icemcfd/tetra tetra_params -nproc {number of processors}
to tell how many processors you want to use. If you do not specify "nproc" then it will use all the processors.
[ top ]
2.13. Why does my tetra crashes with "suspect value in AddVertexToSet" message?
There could be two reasons to that:
- You did not define the global max size in the model
- There are no surfaces in the model
[ top ]
2.14. How do I ensure a closed volume for Tetra?
This can be done using the Geometry > Repair. The main objective in geometry repair is to detect and close gaps between two surfaces (faces) at an edge so that closed voulme is ensured. First, the user creates a topology, and then repairs any gaps or holes in this topology.
Typically, the procedure for geometry repair is as follows:
- Set a tolerance
- Create topology (build curves and points) - the curves will automatically take on the color of their association to adjacent surfaces.
- Select repair method.
- Either save the change, don't save or retry with a different repair method.
- Continue to next problem if same repair method is desired, simply select a new set of curves. If a different repair method is desired, go back to 3).
[ top ]
2.15. How do I define mesh sizes for tetra?
After finishing the geometry editing and separating the families according to the requirements of Tetra, user can define the mesh parameters for the geometry as follows:
- Select Geometry > Mesh Params > Model apply the meshing parameters that are applicable to the entire model. Here the user has to define the following parameters depending on the mesh constraints:
- Reference Size: A parameter that is referred to by other mesh parameters. This value will be multiplied by other parameters to give the actual value. For example, if the "Maximum size" of a given entity is 4, and the reference size is 3.5, the actual maximum size value to be meshed on that entity will be 4 x 3.5 = 14.0. The reference size allows the user to globally control the mesh size instead of changing the mesh size on each and every entity. User inputs any positive real number.
- Maximum size:A factor that is multiplied by the "Reference size" which value will be the largest possible element size in the model. User inputs a power of two.
- Natural size:When turned on, natural size will automatically subdivide to create elements that are smaller than the prescribed entity "Maximum size" in order to capture
finer features of the geometry. The value entered is a factor multiplied by the "Reference size" and is a lower limit for the automatic subdivision. Natural size is
used primarily to avoid setting up meshing parameters specifically for individual entities and allowing the geometry to determine the mesh size. In general, you
would have larger elements on flat, planar surfaces and linear curves, and smaller elements on entities with a high degree of curvature and within small gaps.
User inputs a power of two.
- Refinement: A parameter that works along with "Natural size". This option is only accessible when "Natural size" is toggled on. It defines the number of edges along a radius
of curvature if that radius were extended out to 360 degrees. This is generally used to avoid having too many elements along a given curve, if the natural size is
too small for that particular curve. User inputs any positive integer value.
- Define thin cuts as applicable.
- Finally press Accept.
- The user can also define mesh parameters locally on the families. To do this, select Geometry > Mesh params > Selected Families and can enter the values like size, Minimum size and maximum deviation etc,.
- The user can also define different sizes on different surfaces of the same family using Geometry > Surface > Entity params and select the appropriate surface and can give the size on that surface different from that of the family to which it belongs.
- After this the user can save the geometry file and can proceed for Tetra run, ofcourse it is assumed that user has already defined the material point.
[ top ]
2.16. What is a Material point?
Material point is actually a point within the computational domain. One would need a material point for every different fluid type within the model or for each volumetric region that is closed off by geometry. Material points are necessary for ICEM CFD Tetra and ICEM CFD Global.
[ top ]
2.17. How many licenses tetra would consume on a multi-processor machine?
Tetra (and prism, even smoother) would consume only one license on a multi-processor machine irrespective of how many processors you would use.
[ top ]
2.18. Why do I get error message "could not find opposite point in triangulate" while generating tetra mesh?
During mesh generation, Tetra tries to capture all the features of the
geometry (curves ,points..). The edges of triangular elements are set along
the curves. The nodes of triangular elements are assigned to points. The
size of these triangular elements are decided from the sizes set on surfaces
and curves. If in the geometry any two points or curves are closer to each
other compared with the sizes set on the surfaces and curves, tetra cannot
capture both the details due to size restrictions, so it captures
one of those details and displays warning message "could not find
opposite point in triangulate" for the detail which is not captured.
[ top ]
2.19. Why do I get the error "possible error in trim curve for surface" while tetra mesh generation?
If the order of B-spline curves and surfaces is greater than the order Tetra can handle, it displays warning message "possible error in trim curve for surface". This does not effect the mesh generated.
[ top ]
2.20. What is edge-criterion , how does it effect the tetra mesh?
Edge-criterion determines to what extent a tetra is cut to represent geometry.
The value specified is a factor of the tetra edge. After subdivision, if
a tetra edge intersects an entity(surface, curve), the tetra will be cut
if the subdivision of the edge from the intersection is more than
the prescribed value. This value is set as 0.2 by default and is adequate
for most of the cases.
Significance of Edge-criterion:
-
Consider two surfaces close to each other with the ends of the surface
at a distance of 0.05.
-
If the specified size on these surfaces is 1, the gap between the two surfaces
cannot be resolved by tetra of size 1.
-
To resolve this gap, set the edge-criterion to 0.05.
-
This would split the tetra of size 1 to capture the gap of 0.05 as shown
in the picture.
-
Because of lower value of edge criterion, stretched tetras of bad quality
are created ,which cannot be improved by smoothing.
-
The general rule is:
If the edge criterion is decreased from 0.2, more number of tetras are
created and stretched to
reslove the gap ,resulting in poor quality of mesh.
If we increase the edge criterion above the default value of 0.2,the
tetras created will be less in
number and will be of good quality.But this may not resolve the geometry features properly.So
the default value of 0.2 is adequate for most of the cases.
Tetra stretched to capture the gap of 0.05

Mesh with edge criterion set lower than 0.2

Mesh with edge criterion set to 0.2
