Mesh Generation (- Last update on 08-Oct-2022 -)
A good mesh might not lead to the ideal solution, but a bad mesh will always lead to a bad solution - Patrick Baker (Pointwise)
Solid modeling (required to create 3D geometry) and mesh generation are at present separate steps, performed using different programs and software environment and a greater seamless integration is still in distant future. The first step of meshing is to ensure the "topological consistency" of the 3D geometry when the data is transferred from "Solid Modeling" environment such as ANSYS SpaceClaim, Creo, SolidWorks to "Mesh Generation" environment such as FLUENT Mesher, ANSA, Hypermesh. The topology refers to the way points, lines and surfaces connect to form a three-dimensional space.
Checklist of Volume Extartion and Mesh Generation before Exporting to Solver Format
|01||Has the mesh quality been checked for skewness and aspect ratios (for boundary layers and for freestream elements)?|
|02||Have sliver elements been collapsed? With minimum size ~ 0.05 [mm], elements having area < 0.002 [mm2] or volume 0.0001 [mm3] are unreasonable.|
|03||Have the fluid and solid zones named as per material type say by adding air, ss, al, pl, cr (ceramics)... as suffix?|
|04||Have appropriate prefixes been added to the boundary names as per boundary type: e.g. mf for mass-flow, vi for velocity inlets, po for pressure outlets...|
|05||Have the areas of the boundaries been checked and matched with the values used to estimate boundary condition parameters?|
|06||Have the walls been grouped into logical surface-groups easy to maintain during solution and post-processing?|
|07||Have the inlet and outlet planes of a porous domain been assigned to separate internal patches?|
This step involves division of the computational domain into small sub-divisions called a grid or mesh of cells/elements/control volumes. The 2D boundaries of this smaller (discretized) domains are called Faces, the 1D boundaries are called Edges and 0-D boundaries are called Nodes or Vertices. The solution of flow problems are defined at nodes or face centres of the cells. In general, the accuracy of CFD simulation is governed by cell size. Finer the mesh (lower the cell size), better is the result. However, hardware requirement (RAM, number of cores) increases with increase in no. of cells (elements) in the mesh. Hence, a trade-off is required.
Mesh by Extrusion
A wedge or prism element is normally created by slicing a tetrahedron parallel to its base. Since, this element is created by rule near the boundaries namely of type walls, they will appear triangles from one side and quadrilateral from other side.
The elements defining the flow domains other than boundaries are called interior elements. Note that the mesh topology used to specify simulation parameters may be different than the mesh topology internally created by the solver. For example, a solver may create a mesh around each node by connecting the centroids of all the elements associated with it. This is called a vertex-based scheme (e.g. CFX). In some cases, the mesh supplied to the solver will be used as provided such as FLUENT. This is known as cell-centred scheme.
Flow-Field Dependency: The effect of mesh quality (refinement and cell shape) on the accuracy and convergence of the solution process is dependent on the flow field being simulated. E.g. highly skewed or non-orthogonal cells can be tolerated in flow regions with no swirl or separation. On the other hand same mesh can be detrimental to simulation accuracy in regions with strong flow (pressure) gradients.
Since the locations of strong flow gradients generally cannot be determined a priori, user needs to guess the flow field based on his/her past experiences as well as using analogy between actual flow field and standard flow conditions namely "flow over a cylinder", flow over a flat plate, "flow inside a duct" and flow between parallel plates.
A mesh consisting of more than 1 element types such as tetrahedrons and hexahedrons are called hybrid. They may or may not be conformal. In case a hybrid mesh consisting of tetrahedrons and hexahedrons are conformal, pyramid elements need to be used to transition from tetra to hexa elements.A non-conformal mesh has grid nodes which do not match up along an interface. This type of mesh is useful for design study where parts can be replaced without regeneration of the entire mesh. Sometimes, this type of mesh becomes a necessity for meshing complex geometries. Recommended approach to have number of nodes / elements in the ratio 2:1 or less on the two sides of a non-conformal interface.
Mesh Generation Methods / Algorithms: the two broadest categories of mesh are (a)structured mesh and (b)unstructured mesh. As the names suggest, structured mesh has a unique, predictable and repeatable topology whereas unstructured mesh is a pseudo-random distribution of element in space. Strcuctured meshes are composed of either quadrilaterals or hexahedrals. Unstrctured mesh can be a combination of all types of elements. Yet, a mesh consisting of only hexahedrals can also be unstructured mesh.
There are various mesh generation algorithms available in industry: OCTREE (QUADTREE), Delaunay, Advancing Front, Directed Meshing (Swept Meshing), Cut-Cell or Cartesion or snappyHexMesh, Paving, Multi-zone, Hexa-core ... to name few. Directed meshing techniques work on extrudable geometry: this refers to shapes which can be generated by linear (translational) and rotational or combination of both operation on a lower dimension geometry to get a higher dimension geometry. For example, a frustum is a linear extrusion of circular disk in radial as well as tangential direction, a cylinder is a uniform extrusion of circular disk, a circular disk is rotational extrusion of a line about one of its ends. The extrusion process is also known as sweeping or lofting operation.
Swept meshing algorithm works on the basis of source and target faces. Few criteria required to generate swept meshing are:
Recommendation from ANSYS FLUENT: For any other software, it is recommended to check the rating scale. For example, ICEM CFD considers skewness of 1.0 as perfect and scale is exactly opposite to that of FLUENT.
|Skewness||0||0 ~ 0.25||0.25 ~ 0.50||0.50 ~ 0.75||0.75 ~ 0.95||0.95 ~ 1.00||1.00|
Verbatim copy form ANSYS FLUENT 12.0/12.1 Documentation: Skewness is defined as the difference between the shape of the cell and the shape of an equilateral cell of equivalent volume. Highly skewed cells can decrease accuracy and destabilize the solution. For example, optimal quadrilateral meshes will have vertex angles close to 90°, while triangular meshes should preferably have angles of close to 60° and have all angles less than 90°.
Verbatim copy form ANSYS FLUENT 12.0/12.1 Documentation: Aspect ratio is a measure of the stretching of the cell. For highly anisotropic flows, extreme aspect ratios may yield accurate results with fewer cells.
Hanging nodes are considered crack in FE solvers for structural simulations. However, hanging nodes are acceptable in most of of the CFD solvers and FLUENT even has a method of mesh adaption based on handing nodes creation. Hanging nodes are very common in cut-cell or snappyHexMeh.
a non-manifold geometry or 3D shape cannot be unfolded into a 2D surface with all its normals pointing the same direction. In other words, a 3D model can be represented digitally but there is no geometry which can physically support it in the real world. In the following picture, a hexahedral element has internal tetrahedral element which is not necessary at all.
Reference - STAR-CCM+ user manual:
Similarly, if a vertex is attached to the interior of a surface or if surrounded by a volume but not connected with any of the edges defining that volume, it is called a non-manifold vertex.
For complex geometries such as engine under-hood thermal management, structured mesh quad/hex meshes are neither possible nor show any numerical advantage, thus one can save meshing effort by using a mesh consisting of tri/tetra elements.
The quality of mesh is a collective summary of quality of individual elements. Aspect ratio, skewness, orthogonality, determinant and Jacobian are some of the methods used to designate the quality of elements. One of the key quality metrics for mesh used in CFD simulations is skewness.
Mesh skewness reduces the accuracy of face integrals (calculation of face flux) since the interpolated face value does not lie in the center of the face F, but instead lies at the intersection of vector joining cell centres and the common face, denoted by R above.
Warp: It applies only to quadrilateral elements and is defined as the variation of normals between the two triangular faces that can be constructed from the quadrilateral face. Warp value is the maximum of the two possible ways triangles can be created in a quadrilateral/rectangular face.Various checks required to ensure the geometrical and topological consistency of a mesh is completely described by the options available in ANSYS ICEM CFD as shown below. Similar checks is possible in any other software such as ANSA, ANSYS Meshing, Pointwise and GridPro.
For a tetrahedron mesh, the maximum skewness shall not be better than the maximum face skewness because the skewness of boundary cells (tetrahedrons) is limited by the skewness of boundary faces (triangles).
As per CD-Adapco STAR-CCM+ User Guide Version 9.06, 2015: STAR-CCM+ polyhedral elements have an average of 14 faces and five times less polyhedral elements are needed for a given volume compared to tetrahedral elements.
Tetrahedrons: Their advantage is the ease of its generation even in case of very complex geometry. On the other hand tetrahedrons cannot be stretched excessively without decreasing the mesh quality factor, so a significantly larger number of cells has to be used in comparison to hexahedral mesh in order to achieve a reasonable accuracy. Moreover the numerical diffusion of tetrahedral elements is significantly higher.
Polyhedral cells:Combine the advantages of hexahedrons (low numerical diffusion resulting in accurate solution) and tetrahedrons (rapid semi-automatic generation) as well as to overcome the disadvantages of both the above mentioned mesh types. The major benefit of polyhedral mesh is that each individual cell has many (> 4) neighbours, so gradients can be well approximated than is the case with tetrahedral cells. Polyhedrons are also less sensitive to stretching than tetrahedrons which results in better mesh quality leading to improved numerical stability of the model. In addition, numerical diffusion is reduced due to mass exchange over numerous faces. This leads to a more accurate solution achieved with a lower cell count.Even along wall edges and at corners, a polyhedral cell is likely to have a couple of neighbors, thus allowing for a reasonable prediction of both gradients and local flow distribution. However, more neighbours means more storage and computing operations per cell than is the case with tetrahedral cells.
It is also recommened to align the model in such a way that the front view covers the maximum information and the alignment of front view is inline with that defined in pre-processor. For exmaple, front view in FLUENT mesher is defined as XY plane with Z-axis point outward from the screen, the left view is YZ plane with Z-axis pointing into the plane of the screen and top view is the ZX plane with Y-axis pointing outward from the screen. This definition is not universal and some program use YZ as front view.
Another challenge and aften leading to confusion is the "Jargons" used in CAD and Meshing softwares to represent geometry (solid, surfaces and assemblies). CAD entities are designated as 'Components' and 'Bodies'. Components refer to 'Assembly', 'Sub-assembly' and 'Part'. 'Bodies' are basic entities in a CAD assembly tree which inclue CAD zones. This list gets compounded when one adds the terms "Geometry Objects", "Mesh Objects", "Face Zone Labels", regions, boundaries, continuum / continua, PID, collectors...In design and manufacturing field, 'part', 'component' and 'body' are used interchangeably. They refer to a physical object which cannot be broken down further. E.g. a sheet metal bracket, a bolt or a nut is a 'component'. Similarly, impeller or shaft is a 'component' but the water pump is an 'assembly'. The water pump in an engine is a 'sub-assembly' and 'engine' itself is an 'assembly'.
The pre-processing activities require geometry simplifications (defeaturing) and ANSYS SpaceClaim has some powerful non-parametric features. One of them is the 'Pull' option (short-cut 'p') which is equivalent to 'sweep' or 'extrude' operation. By default, pull direction is tangent to the selected edge or perpendicular to the selected face. A direction can be chosen or pulled (sweep) along a curve. Selection: all holes equal to selected radius, all holes of same radius in same face, all holes of radius equal or smaller than select radius. Blend (b): create surface by two lines (it is equivalent to 'loft' operation in some CAD programs). Fill (f): create surface from a closed loop of curves. Move (m): the 'origin' option is to select the reference point on the source object.
The steps (as well as tips and tricks) described here is based on simplifications features available in ANSYS Spaceclaim though it applies to any pre-processing tool. This acts as a checklist before geometry is transferred to pre-processor (mesh generation environment). For cases where ANSA and STAR-CCM+ are used, ANSA is equivalent to SpaceClaim and STAR-CCM+ is equivalent to FLUENT Mesher. Blender is another (fully) open-source program to clean geometry and convert the CAD model into STL type (water-tight) surface mesh. FreeCAD and gradCAD are few of the open-source CAD tools that can be used to create and modify geometries.A key concept one should always keep in mind that a 'volume' does not necessarily be represented as a 'solid' body. A volume can be just a 3D space bounded (preferably water-tight) by surfaces. However, one should not try to spend extra effort in extracting the fluid (empty) space. Instead, simplifying, merging and filling the gaps in the solid bodies shall help get the right simulation domain.
One recommended way to segregate the geometry into following groups - use the naming convention defined earlier or your own version:
☞ Tips for assemblies with uneven surfaces and gaps
Definition: gaps in the plane of a surface is called lateral (horizontal) gaps and gaps in the direction of area normal is called the transverse (vertical) gap. If you are dealing with large surfaces with small (transverse) gaps (say < 1% of the biggest geometry or say 1~5 [mm] which you can neglect), follow these steps:
Step-2:Re-group and rename the data - the geometry in CAD environment is created keeping in mind the physical construction and assembly sequences. This is not important in mesh generation. It is better to re-group the geometrical (CAD) entities in terms of expected boundry definition. This makes it easy to operate on a smaller section of the entire domain. The selection, hide/unhide and operations such as imprint / interference become faster.
Step-3:Further segregate the geometry into 'Solids' and 'Surfaces'. This helps chose operations appropriate for the respective category such as fillet removal, split, booleans and extrude (pull) is easy on solids. When the geometry comprise of mix of solid and surface bodies, it is better to convert everything into solid, combine the solids as a water-tight geometry and then extract the volume. Extraction of fluid volume by deleting the exterior walls (surfaces) is a tedious time-consuming process and requires too many repetitive manual operations. This segregation shall further help in diagnostics of free edges. Components expected to have free edges should be named with prefix free_ or srf_ or any other convention one is comfortable with.
Step-4:Convert the solids with thin wall thickness into solids with no internal walls and void space. For example, a beam with fillets and internal wall. If the geometry contains many thin sheets who act as flow obstructions, sometimes it is better to thicken the sheets instead of using zero thickness sheets (the shells).
Step-5:Before removing the wall thicknesss, use the operations appropriate for solids such as Booleans like unite, intersect... to make sure that once converted to surface no further operations such as extend / intersect are needed to remove the gaps / connect the surfaces. Note that this method is not recommended for FEA simulation. In CFD the blockage of flow is important where as in FEA the location of centroid is important.
Step-6:ANSYS Spaceclaim is a CAD-type pre-processor and works better on solids. CFD volume extraction is analogous to 'negative' of visible solid volumes. Instead of deleting the unwanted surfaces one-by-one, it is recommended and worth trying to create a "bounding box" enclosing the geometry and use a boolean to subtract the solids from the 'bounding' box. The resultant negative volume of fluid domain is easy to operate and remove the protrusions generated due to gaps in original (input) geometry.
Optionally, re-orient the model so that "Front View" is aligned as per the coordinate system for Front View defined in pre-processor. There is no unique defintion of Fron View. Some programs define XY-plane as front view, some as YZ-plane.
SpaceClaim OperationsSpaceClaim is a non-parametric CAD program. That means, it does not maintain any hisotry of operations and neither get constraints by one operation from another (except geometrical sanity). ANSYS is adding meshing capabilities also into it and various features can be turned ON or OFF by options shown below:
File ↠ SpaceClaim Options ↠ Customize ↠ Ribbon Tabs
In many pre-processors such as Spaceclaim and ANSA, a box select from left-to-right and right-to-help have different result. The left-to-right box selects only the components which are fully enclosed inside the box. However, the right-to-left box selects every components (solid / surface / curve) whose smallest fraction fall inside the box. SCDM calls is a power selection and a combination of options can be used to select similar features in one go. E.g. All equal radius cylinder, Faces with same area, Holes equal to or smaller than...
Boolean Selection in COMSOL
COMSOL has feature to select entities based on Booleans such as Union, Difference, Intersection and Complement. There is also an option of "Adjacent Selection" to select Exterior and Interior Boundaries.
Selection in SCDM
In ANSYS Spaceclaim, holes, protrusions or fillets can be deleted either by 'Delete' key or 'fill (f)' operation.
In ANSYS Spaceclaim, almost every command has additional functionality or features under 'Options' tab. For example, 'Fill' operation has 'Multi-patch' functionality under 'Options' for 'Fill' tool.
Similarly, 'Selection' tab generates multiple options such as "All holes having radius < selected hole", "All surfaces having area < selected surface", "All solid bodies".... SCDM and FLUENT Mesher allow selection of curved surfaces of similar radius, smaller than the selected radius, surfaces having similar or lesser areas.... This is specially useful to remove small fillets in one go. The selection operations only on visible bodies. Switch on "Search All Bodies" to apply the selection to all visible bodies.
All the booleans such as Unite, Subtract, Add and Intersection are built into 'Combine' operations with settings in 'Options'. By default, 'Combine' is a cut operation which may sound counter-intuitive.
To split a body by a non-planar face or a sheet metal body, create the surface which extends beyond the body to be split. If you are not able to pull a surface or pull the edge to make it bigger, copy the surface and then pull that surface into a solid (set option Add for pull operation). This will fill any gap creating pull operation to fail as well as can be used to remove fillets.
Fill operation in SCDM requires a closed volume, that is if the selected surfaces should form a closed volume. This operation replaces the selected surfaces with neighbouring surfaces by extending them as required. Hence, sometimes a surface which is part of the volume to be removed / filled needs to be split appropriately. A subset of fill is "Remove ➔ Rounds" under prepare tab. Only round surfaces get selected when this option is ON". The "Remove ➔ Rounds" can be used to split the fillets and then delete them segments easily.When you are not able to fill two adjacent surfaces, very likely there is a sliver surface step looking like an (extra) edge on the surface.
Error in SCDM Geometry Import into FM: Check overlap (there might be intersecting geometry that are not corrected by Imprint or Overlap operations), Right click on the body and use "Check Geometry".
Blend operation need not be between two lines only. It can be used to create a volume by selecting two surfaces.
Sometimes, a fill or blend operation may not work when few surfaces are missing to convert a volume into 'solid' body. One option is to use "Missing Faces" which has options to create a patch with "Multiple Faces". Most often than not, this is a better option than manually filling the missing surfaces.
When features do not get filled or removed from a solid body (such as non-manifold surfaces), the only option is to manaully delete thoses surfaces and then stitch them again. Note that the moment any surface is deleted, the solid body will transform into a surface body.
It is recommened to use Split Edges under 'Fix' tab to merge edges. Note that it is "Fix Split Edges" and not "Split Edges". Also, the features to remove small edges and small faces should be used before importing it to pre-processor such as FLUENT Mesher.
Read the help text carefully. E.g. the Volume Extract operation prompts user to select the 'Bounding' faces and hence one should never select a surface which is expected to be one of the surfaces of the extracted volume.
When the geometry consists of mix of 'Transparent' and 'Opaque' bodies, select all and pressing 'Opaque' icon will not make any change in the appearance. Press the 'Opaque' icon twice to make everything appear 'Opaque'.
The second operation is to merge the nodes within some threshold. If you have imported the surface mesh with minimum size set to 1.0 [mm], all the nodes within 0.25 [mm] or even 0.50 [mm] can be merged. This happens when the surfaces do not share common edge such as when there is a gap.
However, in case mesh for thin sheets, merging nodes with relative tolerance may lead to non-manifold vertices - the nodes on one face of the sheet may merge with nodes on the other face of the sheet. E.g. the thickness of sheet is 2 [mm] and surface mesh size is 5 [mm], the "Node Merge" operation with relative tolerance of 50% may lead to merging of node separated by 2.5 [mm].
ToolbarsOut of all the icons, the 'Set' (icon of a circle with 5 dots) and 'Position' (Cartesion coordinate system icon) are used in conjunction with other operations such as 'Project', 'Move To'...
Note: In FLUENT Mesher all the keyboard shortcuts are case-sensitive i.e. ^j (collapse) ≠ ^J (mark cells). Similarly, ^s and ^S have varying usages. Most pre-processors features customizable Ribbon Tabs, Quick Access Toolbars and Context Based Menu. Out of this, Context Base Menu is important as the features are dynamically displayed and appear based on selection of entities (nodes, edges, faces) and remain hidden otherwise. For example, only when two nodes are selected, the "Collapse" option will appear.
In ANSYS FLUENT Mesher, the keyboard short-cuts works in pair / sequence. That is, one key operation will lead to many other operations - e.g. ^C = colour selection mode. This activates other options namely ^z for "Colour by zone", ^o for "Colour by object", ^p to "Toggle colour pallette and ^r to "Randomize colour". From my experience, I find it worth only those short-cuts which can be operated with left hand alone. Since one's right hand is always on mouse, short cuts requiring both hands are not ergonomic. This makes only 12 characters (4 x 3 rows) easy to operate along with control and control + shift keys combinations.
Steps are as follows: select the target plane (horizontal plane in this case), press 'Set' icon or ^s (note small 's'), select the edges (or nodes) to be projected (horizontal edge of vertical plane), use shortcut key ^p (note small p) or Boundary ➔ Modify ➔ Project.
To make this operation easy to execute, one need to create suitable Face Zone Labels so that only required face zones are displanyed on the screen. Use 'Split' operation and rename the default labels generated by this operation.For 'Intersect' operations, keep the 'Separate' options ON. It will create separate zones for unwanted faces.
Feature Angle specifies the minimum angle between the feature edges that should be preserved during retriangulation. All the edges in the zone having feature angle greater than the specified Feature Angle are retained. This option is useful for preserving the shape of the intersecting boundary zones. Default value = 40°, a value in the range of 10~50° is recommended. Higher values may distort the shape of the intersecting boundary zones.
Join, Intersect and Stitch operations are collectively called 'connect' operations.
The 'stitch' option in FLUENT Mesher is used to connect two tri boundary zones along their free edges. It cannot be used to connect the surfaces at a location other than the free edges in the mesh. Gaps within the given tolerance are closed using closest point projection.Use TUI /boundary/check-duplicate-geom to delete duplicate face zones.
Remove Gaps between FacesFLUENT Mesher has option to remove the small gaps between surface, both planar and curved faces. The standard approach to remove gap is to delete surface on the one side and then project the edges of that side on the adjacent surface.
Method to remove gaps between 'Mesh Objects' and not between Face Zones: This method is applicable for removal of gap between two "Mesh Objects". Following steps are needed, note that this operation cannot be undone and hence one need to save the model before this.
Step-1: Set 'Priority' of the neighbouring "Mesh Objects" using "Change Zone Properties" option - the pencil icon.
Step-2: Right click on the "Mesh Object" ❯ Remove Gap ❯ Set 'Parameters' ❯ Gap Type ❯ Order (Priority)
Step-3: Click on 'Mark': no change in graphics window (display of mesh) will occur. Click 'Draw' to show up 'Marked' faces.
Step-4: Click 'Remove'. Click on 'Draw' again to view the modified topology. Use 'Intersect' or 'Join' as deemed appropriate.
Method to remove gaps within 'objects' - between Face Zones: This method is equivalent to Booundary ❯ Zone ❯ Project, note that this operation cannot be undone and hence one need to save the model before this. This is applicable to face zone within a mesh object and can be used on planar as well as non-planar surfaces.
There are 3 projection methods: Normal, (Specified) Direction and Closest. For thin gaps, 'Normal' and 'Closest' are likely to produce similar results.
Hints on Volume Mesh Size
There is no CAD Kernel and Fluent Meshing (FM) is a fully faceted meshing tool. If CAD is imported it is tessellated on import. ANSA, Hypermesh, COMSOL, STAR-CCM+ have CAD Kernels and they can import geometry as CAD objects and export geometry to neutral CAD formats such as STEP and IGES. Face Zone Labels must start with an alphabet else FLUENT Mesher shall add prefix 'zone'.
Import Mesh or CAD Geometry:
Curvature and proximity based refinement are two key methods available to desselate the geometry during import. Curvature based refinement is controlled by "curvature normal angle" which is the maximum allowable angle that one element edge is allowed to span. For example a value of 8 implies that a 75° arc will be divided into approximately 9 segments.
It is easier to generate mesh and improve quality on the smaller geometries. Hence, it is recommended to generate the surface mesh of independent sections of the computational domain and merge/combine later. The mesh quality and number of cells can be easily operated and managed on smaller domains than the entire domain. Note:
TUI commands on importing CAD geometry
A 'gap' is defined in one of two ways: area between two opposing boundary edges of a face and the internal volumetric region between two faces. The proximity size function sets the minimum number of element layers created in regions that constitute 'gaps'. Gap is not just the two walls defining a narrow fuid zone but also two surfaces defining a thin baffle or plate. Proximity - ON/OFF Surface Orientation - if "Ignore orientation" is ON, surface mesh is not refined along the groove length, where groove is the gap between the adjacent (close) surfaces.
Closing gaps using zone projection: Change to zone filter (Ctrl+z) ➔ Select (generally) the bigger zone and set as the target (Ctrl+s) ➔ Select the smaller zone and project to target (Ctrl+p) . This will close the gap. Additionally one can use Ctrl+k hot key to open the remove gaps panel.
Global vs. Local Join and Intersect OperationGlobal Join operations: Change Operation to Join ➔ Select all Face Zone Labels ➔ Click on "Find Pairs" to see that there is a reasonable number of pairs ➔ Click on Join.
Global Intersect operations: Change Operation to Intersect ➔ Select all Face Zone Labels ➔ Click on "Find Pairs" to see that there is a reasonable number of pairs ➔ Click on Intersect.
Remeshing Boundary Zones: To regenerate surface mesh on particular face zones, follow the operation Boundary ❱ Mesh ❱ Remesh ... Surface Triangulation. This operation is required to refine or coarsen few boundary patches only. Follow the following steps:
Another option (inline with the algorithm used in Wrapping process) is to use "Split and Compute Volume" method. For example, the domain can be split into 4 quadrant and 4 material points defined for each quadrant. If is likely that the leakage is found in all 4 qudrants with the probability is low unless the geometry has not be checked and reviewed before importing into the pre-processor. The process can be repeated though the split can be into just two halves after initial split into 4 qudrants.
One may even start with just two halves and continue the process till the region having hole(s) is identified.
Import solids only: another approach to minimize likelyhood of leakage is to import only solid volumes (note the attribute 'solid' here denotes a closed water-tight 3D volume) into FLUENT mesher one by one and intersect / join later.
Once mesh is generated, one case use following recursive TUI commands thorough a journal file to automatically improve the suface mesh globally. Note wildcard character * can be used to include all objects. Since it refers to a list, it has to be used inside parentheses i.e. (*). If one wants to include objects starting only with 'srf', use (srf*) instead of (*). Here, 40 refers to the feature angle, 30 is the number of iterations and 'yes' instructs to preserve boundaries.
|diagnostics quality general-improve objects (*) skewness 0.95 40 30 yes|
|diagnostics quality general-improve objects (*) skewness 0.90 40 30 yes|
|diagnostics quality general-improve objects (*) skewness 0.85 40 30 yes|
|diagnostics quality general-improve objects (*) skewness 0.80 40 30 yes|
When general-improve does not work, the elements can be collapsed using following TUI commands resursively using a journal file. However, before collapsing these skewed elements, one should check that it will not cause distortion in geometry. Face quality in FM refers to skewness and one should not collapse the faces with skewness ≤ 0.7 - this may distort the geometry. If collapse operation creates significant change in shape of the geometry, only option left is to re-mesh those regions.
|diagnostics quality collapse objects (*) skewness 0.990 40 30 no|
|diagnostics quality collapse objects (*) skewness 0.985 40 30 no|
|diagnostics quality collapse objects (*) skewness 0.980 40 30 no|
|diagnostics quality collapse objects (*) skewness 0.975 40 30 no|
Other face connectivity improvement options are:
|diagnostics face-connectivity fix-free-faces face-zones (list 'front 'rear 'top 'bottom) stitch 0.01 1|
|diagnostics face-connectivity fix-self-intersections face-zones (list 'front 'rear 'top 'bottom)|
|diagnostics face-connectivity fix-duplicate-faces face-zones (list 'front 'rear 'top 'bottom)|
|diagnostics face-connectivity fix-spikes face-zones (list 'front 'rear 'top 'bottom) 100|
|diagnostics face-connectivity fix-islands face-zones (list 'front 'rear 'top 'bottom) 10|
|diagnostics face-connectivity fix-slivers face-zones (list 'front 'rear 'top 'bottom) 0 0.75|
|diagnostics face-connectivity fix-point-contacts face-zones (list 'front 'rear 'top 'bottom)|
|diagnostics face-connectivity fix-invalid-normals face-zones (list 'front 'rear 'top 'bottom)|
|diagnostics face-connectivity fix-multi-faces face-zones (list 'front 'rear 'top 'bottom) all-above 5 20 20|
Display ➔ Plot ➔ Cell Distribution: Plot or print distribution of cells in a given range of quality (Skewness, Aspect Ratio...). Mesh ➔ Tools ➔ Cell Modify ➔ Click on 'Skew': Display cells (faces and nodes of a tetrahedron) with worst quality
Recursive Local Remeshing Script: Following scheme loops mark and remesh faces and neighbours with skewness ≥ 0.5 and is applied to all face zones inside objects containing wildcard *wrap.
(define-new- marked-count 0) (ti-mark-bad-quality-faces) ([*wrap) 0.5 0 (set! new-marked-count ( ti-count-marked-faces)) ([*wrap) (if (> new-marked-count 0) (ti-menu-load-string "( ti local-remesh-marked-faces) ([*wrap) geo 3 20")) (ti mark-bad-quality-faces) ([*wrap) 0.5 0 (set! new-marked-count ( ti count-marked-faces)) ([*wrap) (if (> new-marked-count 0) (ti menu-load-string "( ti local-remesh-marked-faces) ([*wrap) geo 3 20")) (ti mark-bad-quality-faces) ([*wrap) 0.5 0 (set! new-marked-count ( ti count-marked-faces)) ([*wrap) (if (> new-marked-count 0) (ti menu-load-string "( ti local-remesh-marked-faces) ([*wrap) geo 3 20"))
The object priority controls the inclusion of the mesh entities. In case of overlapping objects, the entities in the overlapped region will be included with the object having a higher priority value. Multiple objects having the same priority assigned will be merged into a single cell zone, irrespective of cell zone type.
Import of geometry as "CAD Faceting" is recommended for large model and for geometries intended to be wrapped. 'Tolerance' of CAD faceting is the minium facet size which should be ~ 1/10 of minnimum CFD surface mesh size.Wrapping process in FLUENT Mesher is described below.
The dimensions of the geometry discontinuity such as holes, gaps in the input geometry should be smaller than that of the size of the Cartesian cells created by the wrapper. If there are larger distortion in the input geometry, repair it to the extent that the distortion becomes smaller in size.
Large holes, if present in the initial geometry, should be filled else such holes will be ignored in the wrapping process. Gaps in the geometry larger than the local element size are called "Fully Resolved Gaps".
The Pan Regions dialog box allows you to observe and analyze the region (to be wrapped) created during the Cartesian grid initialization. When the plane passes through the Cartesian grid the interior of the Cartesian grid is displayed at every position on the plane. If at any position of the plane the color of the region is seen inside the geometry, there may be a leak or hole in the Cartesian grid. The Pan Regions dialog box only allows to know whether or not there is a leak or hole in the geometry and it does not tell the exact location of the leak.One may not get the best wrapping in first step. Once an initial wrapping is obtained, inspect the mesh object thoroughly and identify areas where feature capture is poor (these are typicallly areas where geometry features are smaller than minimum size specified to wrapper). A re-wrap with proximity detection and minimum size appropriate for geometry feature would help solve the issue.
As no two face zones (or boundaries) and volumes can have same names, during Automesh step FLUENT adds some (psuedo)-random number after the volume names. For example, the names of face zones defining a volume are w-htr-x, w-htr-y, w-htr-up and w-htr-dn. Consider the case when the name of face zone label containing these 4 zones is w-htr-x. Now, there is a wall-type zone having name 'w-htr-x' and a volume (or material point) with same name that is 'w-htr-x' [this will get generated after Compute Volume]. Hence, when the mesh is read into FLUENT Pre-Post, the volume 'w-htr-x' shall be renamed 'w-htr-x:235'.
Auto-naming of interface zones in FLUENT: The boundary between two volumes (material points) having names 'solid-ss-htr' and 'solid-ss-brkt' is named as 'solid-ss-htr:solid-ss-brkt' and 'solid-ss-htr:solid-ss-brkt-shadow' or 'solid-ss-brkt:solid-ss-htr' and 'solid-ss-brkt:solid-ss-htr-shadow'. Hence, it is recommnded to rename the interface zone by adding appropriate suffix such as iface-
TUI commands to List Zones and Rename Zones: /repot/mesh-statistics mesh-stat.txt - this prints zone name, ID, type and cell count in the txt file specified by user (mesh-stat.txt here). This information is useful to check the active zone type for each zone especially zone types wall and internal. Many a time zones which are expected to be of type 'internal' are defined as type 'wall' and vice versa. Please note that the prism layers are generated perpendicular to the zones of type 'wall' and hence prism layers shall grow also on internal planes in case they are defined as type 'wall'.
/mesh/modify-zones/list-zone - this prints the zone names and ID in the console, use transcript to save the output in a text file, /boundary/manage list is similar to /mesh/mo-zo/li-zo. /mesh/modify-zones/zone-name old new. Zone renaming will fail without error or warning message if the new zone name already exists. "/boundary/manage name oldZoneName newZoneName" is similar to "mesh manage name oldZoneName newZoneName" or /mesh/mo-zo/zo-na oldZoneName newZoneName. The SCHEME script can be create easily using Excel file where the zone name such solid-ss-htr:345 can be split into solid-ss-htr and 345. The suffix -vol or -mp (material point) can be added to generate a new zone name solid-ss-htr-vol or solid-ss-htr-mp.
The zone renaming is a MUST step if you want to use multiple geometries with minor changes and read settings from one case to another. Since the suffix (:345 here) added by FLUENT is not under user's control, the zone name for same material point will vary from one mesh to another. Hence write-settings and read-setting options will not yield desired result if zone names in the existing case and new mesh are not the same.
Clean-up operations are performed after the volume mesh has been generated. Operations such as deletion of dead zones and geometry/wrap objects, deletion of edge zones, removal of face/cell zone name prefixes and/or suffixes, deletion of unused faces and nodes are performed. mesh zone-names-clean-up yes. Hexa-core Meshing require two additional parameters: Buffer Layer and Peel Layer. P.L. = 0 implies hexa-core mesh will contain maximum number of Cartersion cells possible for set parameters. P.L. = 2 implies two tetrahedral layers before transition to the Cartersion mesh starts. Buffer layers specify the number of additional layers of hex cells to subdivide before growing to the next level. By default set to 1 but we recommend using 2 or 3 for a slower growth rate.Prism Controls have two options:
Volumetric (watertight) Regions must be computed before volume meshing. 'Update' recomputes regions but retains any changes to types or names. 'Validate' is a check to verify the regions are closed if modifications have occurred such as zone separation. This will automatically happen at volume mesh stage anyway.
In Automesh panel, 'Compute' Max Cell Volume will calculate based on max edge length in the mesh using perfect tetrahedron formula: volume = √2 /12 × a2 where 'a' is the side length.
If boundary zones are renamed, merged... after volume mesh has been created, deleting the volume mesh prompts to "Restore Boundary Zones". Press 'No' else all the boundary zones shall be changed to type/status before volume mesh was generated. Right click on "Volumetric Regions" and then use the "Info" option: this will print material point name, type, volume, face-zones.... Hex-core Cartesian: "Max Cell Length" is used to generate initial Cartesian cells, Hex-core OCTREE: Hex-core mesh size is used to define mesh size.
|mesh tet improve collapse-slivers||Collapses the nodes of a skewed sliver cell on any one of its neighbors.|
|mesh tet improve refine-boundary-slivers||Increases the volume* of boundary slivers to create a valid tetrahedral cell.|
|mesh tet improve refine-slivers||Removes** the sliver by placing a node at or near the centroid of the sliver cell.|
|mesh tet improve sliver-boundary-swap||Removes boundary slivers by moving the boundary to exclude the cells from the zone.|
|mesh tet improve smooth-boundary-sliver||Smooths*** nodes on sliver cells having all four nodes on the boundary until the skewness value is less than the specified value.|
|mesh tet improve smooth-interior-sliver||Smooths non-boundary nodes on sliver cells having skewness > specified threshold value. Default value = 0.985.|
** Swapping and smoothing are then performed to improve the skewness. You can also specify whether boundary cells are to be refined. Refining the boundary cells may allow you to carry out further improvement options such as smoothing, swapping, and collapsing slivers.*** Default values for the skewness threshold = 0.985, minimum dihedral angle between boundary faces = 10° and feature angle = 30°
Adjust feature angle gradually where 0° implies all nodes are protected and 180° refers that no nodes are protected.
TUI command can be used recursively for auto-node movement: Here 120, 150 ... are the dihedral angles, 50 is the number of iterations. Please note that the values 0.99, 0.98, 0.97... are skewness. Hence, the default quality reporting methods MUST be skewness. In some versions of FLUENT Mesher, default quality parameter is Orthogonality and hence this operation may fail. Use TUI "report quality-method skewness angle" before running the following scripts.
|mesh modify auto-node-move (*) (*) 0.99 50 120 yes 10|
|mesh modify auto-node-move (*) (*) 0.99 50 150 yes 10|
|mesh modify auto-node-move (*) (*) 0.98 50 120 yes 10|
|mesh modify auto-node-move (*) (*) 0.98 50 150 yes 10|
|mesh modify auto-node-move (*) (*) 0.97 50 120 yes 10|
|mesh tet improve smooth-interior-sliver (*) () 0.975 50 0.05 where 0.05 is the relaxation factor.|
Mesh ❯ Tools ❯ Tet Improve: remove highly skewed cells with "two boundary faces"
Skewness based smmothing: Mesh Tools Tet Improve General - options are Smooth Nodes, Improve and Swap Faces. The 'Improve' method requires "Minimum Improvement Required" which is value which is use to stop the smoothing iterations when change is cell skewness is achieved. There is an internal check to prevent a node from being moved if the node movement causes skewness to increase.
Other smoothing operations in FM are Laplacian Smoothing and Variational Smoothing for Tetras. Laplacian smoothing tend to pull the node away from boundaries and reduce clustering of nodes. Variations smoothing is complement to Laplacian smoothing where new node position is weighted-average of circumcentre of the cells connected to the node.
Bad quality and sliver cells can be displayed and manually split (each cell shall be split into 4 by plaing a node at the centroid) / merged to improve the quality usign the feature Mesh Tools Cell Modify Quality. However, before using these operations, display the poor quality cells using Display Grid Cells Quality. Tick the 'All' checkbox under Nodes, Edges and Faces tabs.Once mesh quality improvement operations are complete, untick the 'Quality' options under Mesh Tools Cell Modify Quality. The TUI path to collapse slivers in volume mesh is mesh / tet / improve / collapse-slivers (*) () 0.985.
TUI: report verbosity-level specifies how much information should be displayed during mesh initialization and refinement and other operations. Changing the value to 2 from the default value of 1 will result in more messages while changing it to 0 will disable all messages.
Prism Layer SplittingAfter prism layers are generated, prism layer splitting also supported with options to change growth rate based on total height.
Mesh Exchange across ApplicationsIf mesh generated in FM has unit of [mm] and it is scaled to [m] in ANSA, when the mesh is re-exported to NASTRAN format, it will maintain the length unit [mm]. When the NASTRAN mesh is imported into COMSOL, it will use [mm] as length unit and hence the length unit need to be changed appropriately. Since most of the solvers work on SI unit internally irrespective of the units used to set-up the case, it is better to scale the mesh in source (e.g. FLUENT Mesher: Mesh ❱ Manage ❱ Scale. Do not use Boundary ❱ Manage ❱ Scale operation).
Common issues with meshWarning: 3 cell(s) have only wall faces... this means volume mesh is topologically not correct. The mesh needs to be separated using TUI in FM:
mesh separate separate-cell-by-region fluidwhere 'fluid' is the name of the volume mesh.
In FLUENT Pre-Post, the TUI option is: mesh modify-zones sep-cell-zone-region. The TUI mesh mesh-info 0 (here 0 is the grid level^) or GUI path Mesh Info Zones can be used to find out the new redundant cell zone (it will have few cells only, 3 in this example). Thereafter, the inconsistent zone can be deleted.
^ - For density-based coupled explicit solver, the mesh information is printed for each grid level. The grid levels result from creating coarse grid levels for the Full-Approximation Storage (FAS) multigrid convergence acceleration.
Mesh Exchange between Various ProgramsMost pre-processors have option to save the mesh information in binary and ASCII formats. Pre-processors like ANSA can read the FLUENT mesh (both surface and volume meshes in *.msh and *.cas formats) directly. However, the mesh information (the file) needs to be saved in ASCII format.
Mouse Button Setting:
Modules of ANSA:
The concept of Feature Area, which is defined according to the feature angle, is widely used in many functions in ANSA. The Feature Area is defined as the area of shell elements between whom the angle that is formed at their common edge is < the given feature angle. This is equivalent to "fill up to an angle" in ICEM CFD. Similarly for edges "Feature Line" selection tool uses the concept of "Corner Angle" which is defined as the angle formed by two consecutive element edges.ANSA Geometry Check Options:
SETs: for management of SET groups of ANSA entities like elements, properties, Faces, ... The CONS (Curves ON Surfaces) are the boundaries of the Faces. According to their connectivity, they are colored in Red (single edge), Yellow (double connectivity), Cyan (triple of more connectivity), orange when a double CONS has been joined. The Hot Points are the end points of CONS. A more handy way to deal with Faces is to use the Crosshatches. These appear as green dashed lines and represent the isoparametrics of the Surface on which the Face lays. A Face can be selected by its Crosshatch. In case that a Face is “frozen” (by the Freeze function), its crosshatch is colored in blue.
Use the function CHECK > GEOMETRY to identify and fix automatically some problems. Watertight preparation: Having extracted the outer surfaces, you must create the watertight model by sealing all gaps and eliminating the overlaps. If these gaps are small (close to the Tolerances), they can be closed by TOPO or PASTE functions. If they exceed (by far) the tolerances, then new Faces must be created (usually with SURFs>COONS) to close them.
Checking for intersections and proximities at Geometry level: You should make some checks for intersection and proximity while constructing your model. First of all, use the CHECKs > PENETRATION [Intersections] to locate intersecting areas (wrong topology, misplaced parts etc). Fix these areas using TOPO functions (like FACEs>INTERSECT). Use the ISOLATE > FLANGES [Proximity] function to isolate Faces within a certain distance apart. This will indicate you all the proximity problem areas that may cause problems in volume meshing. Then use the FACEs>FUSE function to close these narrow proximity passages, where possible.
If you activate Shadow and Double flags, there may be Faces that fail the Shadow operation. These Unchecked Faces are reported on the Screen Using the Context Menu (right click menu) of the unchecked faces, these can be isolated on the screen in order to be corrected. Such Faces usually are thin needle shaped Faces or Faces that have bad Surface description. ANSA Meshing Parameters Setting:
Before switching to MESH, activate SHADOW and FOCUS>UNCHECKED. If ANSA leaves any Faces visible, it means that they cannot be shaded and you should fix them also.ANSA Volume Meshing Parameters Setting:
ANSA Mesh Quality Checks:
Method-1: Isolate > Skin functionStep-1:Selects whether to isolate exterior or interior geometry.
↓Step-2: Specify excluded volumes, that is positions in space where ANSA should not find a path from the exterior.
↓Step-3: Select from the screen point position to extract their CoG and confirm. More than one seed points can be specified.
↓Step-4: Based on the user specified value of leak size if ANSA finds a path from the exterior to the seed points then it will create a 3D curve indicating the leak patch through the opening.
Method-2: Elements > Wrap [Variable length] functionThe function provides an integrated leak check tool with an additional advantage with respect to the previous method, the fact that it uses a variable length octree that adapts to the local length.
ANSA wrap algorithm will run and if there is a leak will stop and create several 3D Curves. This allows the user to trace and locate multiple leak areas in one step.
Method-3: Elements > Short Path [Leaks] functionThis method can only be used on good quality mesh (not STL mesh with intersections and other problems) if there is a suspicion that there is a leak which is not easy to locate in a complex model, and the automatic Volume detection algorithm fails.
Step-1: Specify one outer point (green) and one (or more) inner ones (red).
↓Step-2: Points must NOT lie on the surface mesh but inside or outside the volumes in question. To select easily a point that lies inside the volume and not on the surface, select more than one points and ANSA displays the CoG of them and highlights it.
↓Step-3: Then proceed with the next source point, select many nodes on the surface, ANSA displays the CoG. Finally confirm all selections with middle mouse and ANSA will calculate a curve of the Leak Path, if such a path exists.
↓Step-4: The leak can be found by tracing this path.
|Faces Resolution||Different models require different discretization length. Assign a suitable element length on your model from Mesh > Perimeters > Length or Spacing [Auto CFD]. This will allow you to better display the model details.|
|Faces Orientation||Activate Visibility > Shadow mode. All Faces should be uniformly oriented. Gray is the positive side and yellow the negative. Use Faces > Orient to assign uniform or invert the orientation.|
|Unnecessary Hot Points||Perform a Hot Points > Delete with box selection to remove any unnecessary Hot Points.|
|Check> > Check Manager > Geometry Checks||The user can use the Checks>Checks Manager functionality to identify several common problems in one click.Use the template Geometry Checks to find all the problems. ANSA will report all the problems. Double clicking on each category will allow the user to right click and isolate or automatically fix the problems (if possible).
Triple CONS may exist in a CFD model on purpose. Single CONS should only exist if the model has zero-thickness walls (baffles). If any penetrations are identified, the user should use the function Faces>Intersect to fix any intersecting parts.
|Isolate > Flanges > Proximity||This check will identify parts that are very close together (although not actually intersecting). The absolute distance value is left to the user to decide. Very often such geometries also need to be topologically connected, using Topo functions like CONS>Project and Faces>Topo.|
|Perimeters > Length or Perimeters > Spacing [Auto CFD]||Ensure that you assign to all Perimeters the desired Element Length. For uniform element length mesh, use Perimeters > Length, while for variable, curvature dependent surface mesh use Perimeters > Spacing [Auto CFD].|
|Unmeshed Macros||After using the various meshing algorithms (Adv. Front, CFD...) the user should check for Unmeshed Macros in the legend on the left. Use right click for Show Only and then use alternative algorithms or cut them into smaller macros, or check the underlying geometry.|
|Visibility > Hidden OFF elements||Switching to Hidden mode allows you to check if there are violating elements, reported in the legend as OFF. Use Shell Mesh > Reshape [Advanced] to fix them automatically (perform twice if needed). If there are any remaining OFF elements, then use right click Show Only on the legend OFF to identify and examine these areas. You may have to use Shell Mesh > Fix Quality or even change the geometry or the element length to better resolve such areas. Do not proceed to layers or volume meshing if you still have OFF elements on the surface.|
|Surface mesh orientation||If layers are to be generated ensure that the orientation is uniform and correct for the whole of the model. Use Macros > Orient.|
|Checks > Checks Manager > Surface Mesh Checks|| Use the Surface Mesh Checks template of the Checks Manager to identify all the problems of the surface mesh. Unmeshed Macros and Intersections Sharp edges: This check will identify very sharp angles in the surface mesh. These may be due to flipped elements on the surface or to the actual nature of the geometry. Such areas may cause problems, especially for layers generation, so you should treat them
Trias on Corner: identifies triangles at three edge corners and swaps them if needed so that layers with better quality can be generated afterwards.
Duplicate and Triple Bounds: will identify duplicate elements or triple connectivity edges. Check for proximities that may lead to problems in layers of volume meshing. The check distance can be an absolute value, but it is better to specify an element length factor (< 1). This implies that the check distance will be equal to the factor multiplied by the local element length.
Activate also the options to check proximities among areas with the same PID (self-proximity) and provided that you have oriented your shell mesh (Macros > Orient) correctly, check only the positive side (gray one) for proximities.
|Volumes > List||After layers generation, ensure you have the whole model visible and use the function Volumes>Define [Auto Detect] to automatically identify all volumes. Mesh them with Volumes > Mesh Volume. Open the Volumes > List and check that all volumes are marked as Meshed. Check also that they have correct Property Name (Use Volumes > Set PID if needed). Select a Volume and press Info to get quality information.|
|Visibility > Hidden||Switching to Hidden mode allows you to check if there are violating elements, reported in the legend as OFF. You can optionally press right click Show Only on the OFF legend to isolate them. To fix them, press Focus > ALL, ensure that the visibility of Macros, FE-mod and Volumes are all active and then use Volumes > Improve > FixQual [Visible]. You may have to press the function again in order to fix any remaining elements.|
STAR-CCM+ Volume Mesh Import:
STAR-CCM+ 3D to 2D Mesh Conversion:
COMSOL is a Finite Element Method (FEM) based solver in contrast to other programs which are Finite Volume Method (FVM) solver.
COMSOL has a built-in CAD creation capabilities as well as options to import geometries created in other CAD programs. However, there is no options to use neutral file formats such as STEP or IGES in its standard release. The CAD capability import options (both for nuetral file format and native CAD geometries) require a separate CAD Import license. In its most stripped down version, COMSOL provides ability to import only mesh created from other programs and that too in limited formats such as STL and NASTRAN (including bulk data file *.bdf format). In case of NASTRAN, the COMSOL Multiphysics software supports the import of the mesh, selections and materials.
Some operations and key-board short-cuts:
By default, COMSOL maitains SI system of unit for solved variables. To plot temperature in [°C] unit, create a new express Tc = T - 273.14 using operation Definitions ❱ Variable. Similarly to specify simulation input such as reference temperature, use expression Tref = 25 [degC].
In order to import STL into COMSOL, make sure that it is well-defined: no intersections, no holes, all triangles attached to each other (overlap). COMSOL applies a "Boundary partitioning" algorithm when importing STL meshes. This algorithm fits smooth, curved surfaces through the STL triangles, reducing the number of boundaries in the geometry. Using a Minimal boundary partitioning creates as few faces as possible — sometimes only one. The Minimal setting is usually a good choice when the source is a 3D scan. The default Automatic boundary partitioning is best suited for cases where the imported mesh has a natural face partitioning (i.e. when the mesh is from a CAD file). There is also an option to manually set the parameters by choosing Detect faces.
It is better to omit this step. In the Import node, select "Detect faces" for the option "Boundary partitioning". Then, set "Maximum boundary naighbour angle" to 0 and disable "Detect planar faces". COMSOL mesher is then bounded to preserve the triangle edges, which could results in a mesh that is finer than necessary and possibly in worse element qualities. Therefore, STL mesh can be generated as coarse as deemed apprropriate before importing it into COMSOL.
When the Active button is OFF, the selection for the current node is highlighted in yellow.When the selection is active, add or subtract it from the selection list by observing how the colors cycle on and off.
Domain 2 is removed from the Selection on the Settings window for Linear Elastic Material. When you hover over it, it is highlighted in red in the Graphics window to indicate where it is on the geometry.
Click to add Domain 2 back to the selection and Hover over a geometric entity in the Graphics window and it displays in green.
When you hover over a geometric entity in the Graphics window it displays in red to indicate it has not been added to the selection list. Gray-colored domains are not selected or included.
Click the domain to add it to the selection list on the Settings window and it displays in blue to indicate it has successfully been added. Gray-colored domains are not selected or included.
It is only possible to import a mesh if the geometry sequence is empty. If the sequence already contains a mesh, the imported mesh is added to the existing mesh, forming an assembly.When a mesh is imported into COMSOL, the Import node automatically determines a partitioning of the mesh into domains, boundaries, edges, and points. If the automatically performed partitioning does not match the requirements, you can modify the face partitioning by manually adjusting the corresponding parameters.
To import additional meshes, add another Import node. Then COMSOL adds the elements and points of the newly imported mesh to the existing mesh. Meshes from different Import nodes form an assembly. The Finalize node ends a meshing sequence of imported type. It performs an associativity update for geometric entity numbers. You cannot delete, disable, or move the Finalize node. The software automatically builds all nodes in a meshing sequence, including the Finalize node, if you select a node in Model Builder outside the meshing sequence.
Using Several Meshing Sequences of Imported Mesh TypeYou can define several meshing sequences for the same geometry. If the geometry sequence is empty (a necessary condition for the Imported mesh sequence type), the first Mesh node under the Meshes node defines a topology and is referred to as the master sequence. All the other Mesh nodes should define a geometry topologically similar to the one defined by the master sequence. Two geometries are considered to be similar if they have the same number of geometric entities and their points have the same coordinates. Imported mesh can be remeshed to create a new mesh more suited to solving the problem at hand.
It is possible to import externally generated mesh data using a COMSOL mesh file. The file format contains a section with mesh points coordinates, followed by sections with mesh element information, divided into separate subsections for each mesh element type.
Importing a mesh clears the geometry defined in the corresponding geometry sequence. In order to use an imported mesh together with an existing geometry, import it in a separate component. Then use the Copy or geometry Import features to transfer the mesh to the geometry sequence.
STL ImportWhen a a STL (surface) mesh is to be imported into COMSOL, it should be imported as 'Geometry' object and not as 'Mesh' object or 'part' as it is called in COMSOL. This step automatically creates a 'Mesh' part under 'Model' tree on the left of the GUI workspace. In case mesh part is not created or gets deleted accidentally, use "Add Mesh" option under 'Mesh' menu and apply "Build All".
During the mesh import, the geometry can also be created with smooth edges and faces and even creates solid objects from surface meshes with a 'watertight' region. Though the surfaces are interpolated and hence are not exact. Due to this, surfaces of an STL sphere, for example, are not perfectly spherical. It is also difficult to combine these objects when they are expected to contain perfectly matching faces that are supposed to touch..
Note that mesh files do not contain information about the Length unit, so this must be set manually in the settings windows of the Mesh Part and the Geometry nodes.Once the surface mesh is imported, the water tight domain can be created using "Create Entities" options. When a volume mesh in NASTRAN format is imported, the volume (domain) gets created during import operation itself in case no error is reported by COMSOL. However, one need to adjust length unit of the imported mesh using operation Geometry ❱ Settings ❱ Length Units. Operation Options ❱ Preferences ❱ Modeling ❱ Units sets the unit for user input though the solver still maintains "Base Unit" as SI system internally. Please test out the effect of toggle option "Scale Value when Changing Units" while using operation Geometry ❱ Settings ❱ Length Units.
NASTRAN ImportWhen a NASTRAN bulk data file is imported into COMSOL Multiphysics, the software imports mesh and material information only. To import mesh and material data from a NASTRAN file select Mesh and materials in the Data to import list. In this case, COMSOL creates Material nodes corresponding to the data in any MAT1 and MAT10 entries in the file. Furthermore, the thickness data of any PSHELL entry in the file is stored in a Variables node as long as it is greater than zero. To simplify the use of this data in physics interfaces, such as the Shell interface, an Explicit Selection node, which contains all boundary faces associated with PSHELL entries, also appears automatically. If the material data is not required, select Only mesh to import the mesh only.
Mesh information is read from different NASTRAN entries, including those for mesh elements of lower dimension. When this information is not complete in the file, COMSOL enriches the imported mesh data with boundary elements, edge elements, and vertex elements such that a valid mesh object is formed. Each element in the imported mesh object receives a unique entity index.
Operations on Imported Meshes: The following mesh import operation nodes make it possible to define the partitioning of an imported mesh into domains, boundaries, edges, and points, with respect to the physics interface settings of the Component.
Importing Incomplete Mesh Data: A COMSOL mesh contains elements for all space dimension levels. For example, a tetrahedral mesh consists of domain (tetrahedra), boundary (triangles), edge, and vertex elements. Furthermore, each element has an index to the geometric entity it belongs to. If a mesh file is incomplete - for example, if it only contains tetrahedrons - the Import operation automatically generates the missing element data.
COMSOL can import volume mesh created in other pre-processor in NASTRAN format only. Surface meshes in STL, LPY, VRML and 3MF formats can also be imported. FLUENT Mesher cannot save mesh directly as NASTRAN format. One round-about process is to save FLUENT mesh *.msh as ASCII format ❱ Import the mesh in ANSA ❱ Export the mesh as NASTRAN format ❱ Import the mesh in COMSOL (ignoring the material).
In case surface meshes are imported, follow the steps mentioned below.
Reusing The Original Mesh: It is possible to use the original, imported mesh, or parts of it, in the new Component.
/BATCH /PREP7 /COM NODE DEFINITIONS
N,10,2.3,-1.7,-13.75 N,11,1.7,-3.0,-13.75 N,12,0.0,2.3,-13.75 N,13,0.5,1.6,-13.75 N,14,1.0,1.0,-13.75
/COM Material properties EX, 1, 2.068000E+08 NUXY, 1, 2.900000E-01 DENS, 1, 7.820000E-06 GXY, 1, 8.015504E+07 ALPX, 1, 1.170000E-05 KXX, 1, 4.500000E+04
R,1,,,,,, ET, 1, 45, 0, 0, 0, 0, 0, 0 TYPE, 1 $ REAL, 1 $ MAT,1 ESYS, 0
EN,10,29,31,53,45,30,32,54,46 EN,11,20,24,23,19,45,53,51,43 EN,12,45,53,51,43,46,54,52,44 EN,13,19,23,22,21,43,51,49,47 EN,14,43,51,49,47,44,52,50,48 EN,15,21,22,9,8,47,49,27,25
CSYS,0 /SOLUTION ANTYPE,0 /COM NODAL DISPLACEMENT RESTRAINTS D,1850,UX,0.,,,,UY,UZ,ROTX,ROTY,ROTZ /COM FACE PRESSURE LOADS SFCUM,PRES,ADD,1,1 ... SFE, 1496, 1, PRES, 0, 1.00000 SFE, 1497, 1, PRES, 0, 1.00000 SFE, 1498, 1, PRES, 0, 1.00000 SFE, 1499, 1, PRES, 0, 1.00000 ... KBC,0 TIME, 1.0000 AUTOTS,OFF NSUBST, 1 ... OUTPR,NSOL ,1 OUTPR,RSOL ,1 OUTPR,ESOL ,1 OUTPR,NLOAD ,1 OUTPR,VENG ,1 ... SOLVE FINISH
Example of mesh for a square block
Example of 2D mesh shown below can be located here. This file can be opened in ParaView by selecting "All File (*)" for "File of Type" field. Select "FLUENT Case Reader" when prompted. ParaView shall give following warnings - clic Apply to open the mesh.
Warning: In C:\bbd\ecd3383f\ build\ superbuild\ paraview\src\ VTK\IO\ Geometry\ vtkFLUENTReader.cxx, line 423 vtkFLUENTReader (0000021A2224D7E0): Unable to open dat file.
(10 (zone-id first-index last-index type ND)( x1 y1 z1 x2 y2 z2 . . xn yn zn ))If 'zone-id' = 0, it provides the total number of nodes in the grid. In such a case: 'first-index' = 1, 'last-index' = total number of nodes in hexadecimal, 'type' is meaningless, 'ND' = dimensionality of the grid. There will be no X-, Y-, Z-coordinates following the statement and the parentheses for the coordinates will be omitted. For example, (10 (0 1 2bd 99 2)). Note hexadecimal system has base value of 16 (analogous to base value of 10 in decimal system) and digits 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. In decimal systems 358 = 3x10x10 + 5x10 + 8. In hexadecimal system, 2bd = 2x16x16 + 11x16 + 13 = 701. In MS-Excel HEX2DEC function can be used to convert a hexadecimal number into any other base. e.g. HEX2DEC("2bd") = 701. Note, hexadecimal number is represented as string even though it represents a number, due to presence of text character.
(0 "Grid:") (0 "Dimensions:") (2 2) (12 (0 1 3 0) ) (13 (0 1 a 0) ) (10 (0 1 8 0 2) ) (12 (7 1 3 1 3) ) (13 (2 1 2 2 2) ( 1 2 1 2 3 4 2 3)) (13 (3 3 5 3 2) ( 5 1 1 0 1 3 2 0 3 6 3 0)) (13 (4 6 8 3 2) ( 7 4 3 0 4 2 2 0 2 8 1 0)) (13 (5 9 9 a 2) ( 8 5 1 0)) (13 (6 a a 24 2)( 6 7 3 0)) (10 (1 1 8 1 2) ( 1.0000e+00 0.0000e+00 1.0000e+00 1.0000e+00 2.0000e+00 0.0000e+00 2.0000e+00 1.0000e+00 0.0000e+00 0.0000e+00 3.0000e+00 0.0000e+00 3.0000e+00 1.0000e+00 0.0000e+00 1.0000e+00))
(0 "Faces:") This is a Header
(13 (0 1 1a 0)) ➔ (13: stands for faces (0, 1: First index of faces, 1a: last index of faces, 0))
(13 (3 1 a 3 0) ( 3 2 6 4 5 0 )(13 stands for faces (3: wall-boundary faces, 1: first index of boundary faces, a: last index of boundary faces, 3, 0))
(3: number of points consisting a face, 2: the first point index, 6: the second point index, 4: the third point index, 5: first volume that face belongs to, 0: second volume index, 0 stands for boundary)
(13 (5 b 1a 2 0)( 2 4 b 1 2 )
(13 stands for faces ( 5: interior faces, b: first index of interior faces, 1a: last index of interior faces, 2, 0))
(2: number of points consist a face, 4: the first point index, b: the second point index, 1: the first volume, 2: second volume)
The Cells Section: (0 "Cells:")In this section, the total number of cells of the domain are given. The following lines are seen:
(0 "Cells:") (12 (0 3 c 0)) (12 (2 5 c 1 2))The first line is a header. In the second line: 12: stands for cells, 3: First Index of Volumes, c: Second Index of Volumes
(0 "Zones:") Header
(45 (2 fluid air)()) ➔ (45 stands for boundary conditions or interior (2: interior, fluid:fluid or solid: in this example 'fluid', fluid: the name is air))
(45 (3 wall front)()) ➔ (45 stands for boundary conditions or interior (3: wall, wall: the name is 'front'))
(45 (5 interior default-interior)()) ➔ (45 stands for zones (5 is interior and describes the volumes)
(0 "Zone Sections") (39 (11 fluid FLUID)()) (39 (12 interior int_GEOM)()) (39 (13 interface INTERFACE_A1)()) (39 (14 interface INTERFACE_A2)()) (39 (15 velocity-inlet INLET)()) (39 (16 wall WALL_BLWR_CASING)()) (39 (17 outlet-vent OUTLET)())
It encodes the mesh information using a simple concept called 'tessellation'. The quality of STL mesh is controlled by Chord Height or Chord Tolerance and Angular Deviation or Angular Tolerance.
Angular tolerance: this the angle between the normals of adjacent triangles. Decreasing the tolerance (which can range to 0 to 1) improves feature capturing.
Chord height: it is the maximum distance from the surface of the original design and the STL mesh. A smaller value improves the facet representation of the actual surfaces.
solid part0 facet normal n1 n2 n3 outer loop vertex x1 y1 z1 vertex x2 y2 z2 vertex x3 y3 z3 endloop endfacet facet normal ... ... endsolid part0 solid part1 ...
The content on CFDyna.com is being constantly refined and improvised with on-the-job experience, testing, and training. Examples might be simplified to improve insight into the physics and basic understanding. Linked pages, articles, references, and examples are constantly reviewed to reduce errors, but we cannot warrant full correctness of all content.
Template by OS Templates