1. Field of the Invention
The present invention pertains to a technology of CAE (Computer Aided Engineering) which aides in designing and developing a product through the use of a computer, and more particularly to an apparatus and a method for generating a numerical analysis mesh which are arranged to quickly generate the numerical analysis mesh.
2. Description of the Related Art
As an analysis simulation computer environment including such as a super computer or a PC (Personal Computer) cluster is becoming highly enhanced, analysis of an overall product and multi-physical analysis are being expected more and more. These sorts of analyses essentially need to generate tens to hundreds of millions of analysis meshes. Hence, the current purpose of this technology is the way of reducing a time taken in generating a large-scaled mesh.
As a method of automatically generating a three-dimensional numerical analysis mesh, there have well known the Delaunay method, the Advancing Front Method and the Oct-tree Type Method. (Refer to ISBN: 9781903398005 “Mesh Generation”.) Turning to the Delaunay method, at the first step, this method is executed to generate a parallelpiped enclosing an object to be analyzed and then to divide the parallelpiped by diagonals into five tetrahedrons.
Throughout the specification, in principle, the term “mesh” means the overall mesh pattern.
The method is further executed to generate nodes on the surface and inside of the tetrahedron and to select one of the nodes. Then, the Voronoi polygon having the selected node is created and the mesh of the Voronoi polygon is divided again. Likewise, one node is selected from each of the re-divided meshes, and the re-division is repeated. Lastly, a first dummy point is deleted.
Turning to the Advancing Front Type Method, this method is executed to sequentially generate elements by connecting the nodes separated from the base plane by an element dimension so as not to bring about interference with the generated element. Turning to the Oct-tree Type Method, this method is executed to divide a hexahedron enclosing an area into 8 hexahedrons. Each of the divided hexahedrons is divided into 8 hexahedrons. After that, only the hexahedrons with a boundary are repetitively re-divided.
The Voxel mesh, which is generated by dividing an object in a diced manner, is used for the analysis program dedicated thereto. Further, in order to remove a minute edge or plane appearing closer to the surface of geometry model in the Voxel mesh or the orthogonal mesh used in the Oct-tree Type Method, there has been proposed the method of moving the adjacent inner node to the surface of geometry model. (Refer to JP-A-7-334541.)
However, the foregoing conventional methods provide a capability of generating a large-scaled mesh but need a considerably long time in generating such a mesh. Those methods thus have difficulty in generating a large-scaled numerical analysis mesh.
Further, As in the technology disclosed in JP-A-7-334541, the generation of the Voxel mesh needs only a short time. The Voxel mesh also has difficulties of rugged surface and limited range of analysis.
Further, in the Voxel mesh or the orthogonal mesh used in the Oct-tree Type Method, there has been proposed the method of making the rugged surface smooth and moving the node along the boundary of geometry model. This method, however, may make the mesh near the surface of geometry model irregular.
It is therefore an object of the present invention to provide a method and an apparatus for generating a numerical analysis mesh which are capable of generating an excellent large-scaled mesh at fast speed.
In carrying out the object, according to an aspect of the invention, a numerical analysis mesh generating apparatus according to the invention is applied to generation of a numerical analysis mesh of a three-dimensional geometry model of an object to be analyzed as a preprocessing stage for analyzing the object through the use of a computer.
That is, a tetrahedral mesh with a regular structure is located in a first portion inside the three-dimensional geometry model of an object to be analyzed, except the portion closer to the surface of the model, through the use of a computer. In the second portion laid between the surface of the tetrahedral mesh with a regular structure and the surface of the three-dimensional geometry model, rather than the first portion, the tetrahedral mesh is sequentially generated also through the use of a computer.
According to the invention, the process is executed to locate a Voxel tetrahedral regular mesh inside a geometry model of an object to be analyzed and sequentially generate a mesh for a gap appearing between the surface of geometry model and the regular mesh. This process makes it possible to generate a large-scaled mesh at fast speed.
In the concrete process, at first, the surface of an object to be meshed is divided in a mesh pattern according to a target element dimension. As a result, a triangular mesh on the surface of geometry model is generated. Then, assuming that there exists a shaped parallelpiped enclosing the shape of the object to be meshed, the parallelpiped is divided in a mesh pattern by hexahedral elements in which the adjacent nodes are placed at the substantially same density as those of the surface triangular mesh. The resulting mesh is a regular mesh.
Then, the regular mesh located inside the triangular mesh on the surface of geometry model is divided in a tetrahedral mesh pattern. Further, by filling up the shell-like space between the inner tetrahedral mesh and the triangular mesh on the surface of geometry model with the tetrahedral mesh, the tetrahedral mesh is generated in the overall object to be meshed.
The mesh to be located inside the geometry model is not necessarily the regular mesh. That is, instead of the regular mesh, it is possible to fit the pre-created tetrahedral mesh in the triangular mesh on the surface of geometry model and then to use the result as the inner mesh. Moreover, by locating a space with a half of a target element dimension as a minimum between the boundary of geometry model and the inner mesh, it is possible to generate an excellent mesh in the portion closer to the surface.
According to the invention, since the mesh is sequentially generated, what is to be meshed is only the shell-like gap portion, so that the area to be meshed becomes quite small. This leads to noticeably reducing the meshing time. Concretely, it is grasped that the meshing time is reduced into one-fifth or less in some models.
Further, about the regular mesh portion, the data about only the surface of the mesh portion is stored in a memory. Hence, the memory capacity required when generating a mesh is made smaller.
Other objects, features and advantages of the invention will become apparent from the following description of the embodiments of the invention taken in conjunction with the accompanying drawings.
Hereafter, one embodiment of the present invention will be described with reference to
As shown in
Further, the large-scaled numerical analysis mesh generating program 102 is configured of a geometry model reading portion 103, a surface of geometry model triangular mesh generating portion 104, a regular mesh generating portion 105, a shell meshing area extracting portion 106, a shell mesh generating portion 107, a mesh refining portion 108, and a mesh output portion 109.
The geometry model reading portion 103 performs the process of reading a geometry model of an object to be analyzed, the model being created by a three-dimensional CAD (Computer Aided Design) technology or the like. The surface of geometry model triangular mesh generating portion 104 performs the process of dividing the surface of the geometry model of the object to be analyzed in a triangular meshed manner as a pre-stage of generating tetrahedral analysis meshes.
The regular mesh generating portion 105 performs the process of locating a regularly structured tetrahedral mesh pattern inside the triangular mesh pattern on the surface of geometry model. The shell meshing area extracting portion 106 performs the process of retrieving and picking up the triangle on the surface of the regular mesh and then extracting a space laid between the triangle on the regularly meshed surface and the triangular mesh on the surface of geometry model. The space extracted by the portion 106 is called the “shell” in this embodiment.
The shell mesh generating portion 107 performs the process of generating the tetrahedral mesh in the shell by means of the known tetrahedral mesh generating method (such as the Delaunay Method or the Advancing Front Method). The mesh refining portion 108 performs the process of modifying the mesh that is not fitted for analysis if any. The mesh output portion 19 performs the process of outputting the completed analysis mesh to the external storage unit. Hereafter, the process from the generation of the triangular mesh on the surface of geometry model to the generation of the shell mesh will be discussed in more detail.
In order to generate the tetrahedral mesh, the surface of the geometry model is divided by the triangular mesh. The method of generating the tetrahedral mesh may be the Delaunay Method or the Advancing Front Method like the generation of the tetrahedral mesh. The term “target element dimension” means an average distance (edge length of an element) between nodes in generating a mesh and is an important factor to affecting a mesh scale, that is, an analysis time and analysis accuracy.
In a step S205, a parallelpiped enclosing a shaped to be meshed is divided in a meshed manner so that the edge length of the hexahedral element is made equal to the edge length of the surface triangular element by using the computer 101. This meshing division results in generating a regular mesh. In preparation of this process, at first, in a step S203, a minimum hexahedron enclosing the triangular mesh of the surface of geometry model is assumed.
To assume the minimum hexahedron, the process is executed to check a minimal value Xmin and a maximum value Xmax of the X coordinate of the triangular mesh on the surface of geometry model, a minimal value Ymin and a maximum value Ymax of the Y coordinate thereof, and a minimal value Zmin and a maximum value of Zmax of the Z coordinate thereof. In light of these coordinate values, the eight vertexes of the hexahedron are defined below as indicated in the expression 1
Then, in a step S204, the process is executed to derive an average value of edge lengths of the triangular mesh on the surface, divide the lengthwise, the crosswise, and the height lengths of the hexahedron by the average value so as to define the number of divisions (rounded to the nearest whole number). The hexahedron is divided by this number of divisions so as to generate the regular mesh composed of the hexahedron elements.
In a step S212, the process is executed to divide the hexahedral regular mesh located inside the triangle on the surface of geometry model into the tetrahedral mesh. To execute this process, in a step S206, it is determined if the check for the inside and the outside of the surface triangle is finished with respect to all hexahedrons. If the check for the inside and the outside of the surface triangle is not finished with respect to all hexahedrons in the step S206, the process goes to a step S207.
Then, in a step S207, it is determined where on the triangle on the surface of geometry model a certain hexahedron element is located. That is, it is determined if the regular mesh is located inside or outside the triangular mesh on the surface of geometry model or crossed with the triangular mesh thereon through the effect of the computer 101.
The triangular mesh on the surface of geometry model is a closed space. Hence, if all eight nodes of the hexahedron elements are located inside the closed space, it is determined that the regular mesh is located “inside” the triangular mesh on the surface of geometry model. Conversely, if none of the eight nodes of the hexahedron elements are located inside the triangular mesh on the surface, it is determined that the regular mesh is located “outside” the triangular mesh.
If in the step S207 it is determined that the hexahedron element is located “inside”, going to a step S209, it is determined if the hexahedron element is located closer to the surface. On the other hand, if in the step S207 it is located “outside”, going to a step S208, it is determined that the hexahedron element being checked is located “outside”.
If in the step S209 it is determined that the hexahedron element is located closer to the surface, going to a steep S211, it is determined that the hexahedron element being checked is “crossed”. That is, if any of the eight nodes is located inside or on the triangular surface and the other nodes are located outside, it is determined that the hexahedron element is “crossed”. However, if in the step S209 it is determined that the hexahedron element is not located closer to the surface, going to a step S210, it is determined that the hexahedron element being checked is located “outside”.
As such, if the nodes of the hexahedron element are located far closer to the surface triangle in consideration of the quality of the mesh, the flat tetrahedron is inevitably generated. To determine that the hexahedron element is located “inside” in that case, therefore, it is necessary to preset a threshold value. For example, if the hexahedron element is located inner from the surface triangle by a half of a target element dimension, it is determined that the hexahedron element is located “inside”. This allows no inadequate narrow portion to appear between the surface triangle and the inside mesh, which leads to eliminating the factor of lowering the mesh quality.
After the element is determined “outside” in the step S208, “inside” in the step S210 or crossed in the step S211, the process goes back to the step S206.
Herein, the process of determining if the element is located “inside” will be described in more detail.
In order to determine if a certain node is located inside or outside the triangular mesh on the surface of geometry model, the following method is selected. In this method, at first, a semi-infinite straight line is assumed. This line has any of the eight nodes composing the hexahedron element as an initial point.
If the times of crossing this semi-infinite straight line with the surface triangular mesh is odd, it is determined that the target node is located inside the surface triangular mesh. On the other hand, if the times of crossing are 0 or even, it is determined that the target node is located outside the surface triangular mesh.
The remaining seven nodes are checked similarly. If it is determined that all nodes are located inside, it means that the hexahedron element is located inside the surface triangular mesh. Herein, the regular mesh provisionally determined to be located inside is further subject to the following determination.
At first, letting the three nodes composing a certain triangle be P1, P2 and P3, the coordinates of those nodes are assumed below as indicated in the expression 2.
The eight vertexes of a three-dimensional box enclosing this triangle are let to be S1, S2, S3, S4, S5, S6, S7, and S8 respectively. The coordinates of those vertexes are indicated in the expression 3.
Then, for example, if the element is located inner from the surface triangle by a half of a target element dimension or more, it is determined that the element is located “inside”. For this purpose, a new box is assumed on the three-dimensional box enclosing the foregoing triangle. Concretely, the new box is composed of eight nodes V1 to V8 indicated in the following expression 4, those eight nodes being larger that those of the three-dimensional box in the X-, the Y-, and the Z-directions by the target element dimension.
If even one of the eight nodes composing the regular mesh is located inside the new box, the regular mesh is determined to be “crossed”. Herein, the target element dimension is set as TS.
The node having been determined to be located inside or crossed ordinarily belongs to a plurality of regular meshes. Hence, the node having been determined even once is put in an internal memory of the computer 101. This storage makes it possible to eliminate the duplicate calculation about the regular meshes containing the nodes stored in this memory, thereby being able to enhance the calculating efficiency.
Further, the regular mesh generated in this process may be used for enhancing the speed of retrieving the node or the element in the later process of sequentially generating a tetrahedral mesh in the steps S213 to S220. For example, when a node located closer to a certain coordinate is retrieved, conventionally, it has been necessary to calculate the distance between that node and all the other nodes.
However, the use of the regular mesh containing the nodes stored in the memory makes the hexahedron element enclosing the coordinates of the nodes apparent. Accordingly, the other hexahedron elements adjacent to the hexahedron elements are also made apparent. This thus makes it possible to promptly define the nodes to be retrieved and thereby to speed up the calculations.
In the step S212, the hexahedral mesh is divided into six tetrahedrons. That is, in the determining step S207, the hexahedral regular mesh determined to be located inside the triangular mesh on the surface of geometry model is divided into a tetrahedral meshed manner through the effect of the computer 101. This makes it possible to generate the inside tetrahedral mesh with a regular structure.
This embodiment is characterized in that the tetrahedral mesh is generated. For this purpose, finally, it is necessary to divide the hexahedral regular mesh into a tetrahedral meshed manner. To generate the shell mesh, it is necessary to generate a triangular mesh on the surface of the regular mesh. Hence, the hexahedral regular mesh is divided into tetrahedrons.
In order to efficiently use the memory for this process, the following method may be selected. That is, the method is executed to divide the tetrahedrons on the surface of the hexahedral regular mesh in a triangular meshed manner and then to divide the triangular mesh on the surface into tetrahedrons.
In the step S213, the process is executed to extract a shell meshing area. That is, a shall-like space between the inside tetrahedral mesh and the triangular mesh on the surface of geometry model is extracted by the shell-like meshing area extracting portion 106. The space laid between the surface triangles of the regular mesh and the triangular mesh of the surface of geometry model is defined as a shell meshing area.
In the step S214, the process is executed to retrieve the surface triangles that do not belong to the tetrahedron or the inside triangles that do not belong to the two tetrahedrons. That is, in the shell meshing area, the inside triangles that can be used for generating the tetrahedron are retrieved.
In the step S215, it is determined if there exists a triangle that meets the retrieval condition of the step S214. If it is determined that the triangle exists in the step S215, the process goes to the determining step S216.
In the step S216, it is determined if an excellent tetrahedron can be generated by using the triangle retrieved in the step S215 and the existing nodes. If yes in the determining step S216, the process goes to the step S217. Then, in this step, such an excellent tetrahedron is generated by using the existing nodes.
If no in the determining step S216, the process goes to the step S218. In this step, such an excellent tetrahedron is generated by the above materials and a further node added thereto.
As described above, the process of the steps S217 and S218 concerns with the process of generating a tetrahedral mesh in the shell through the effect of the shell mesh generating portion 107. To generate the tetrahedral mesh, it is possible to use the known Delaunay Method or the known Advancing Front Method.
The Delaunay Method uses the Voronoi diagram in which the space is divided according to the area influenced by the node. By connecting a node belonging to one Voronoi polygon with another node belonging to the adjacent Voronoi polygon, one edge of a tetrahedron is created. Turning to the Advancing Front Method, as the nodes are sequentially generated from the boundary to the inside, the tetrahedron element is being generated. These mesh generating methods are not described in more detail.
In the step S217, the tetrahedron is generated by using the existing nodes. In the step S218, the tetrahedron is generated by the existing nodes and the additional node(s). Then, the process goes back to the determining step S215.
In the step S219, it is determined if there exists a tetrahedron of inferior quality. If yes in this determining step S219, going to the step S220, the tetrahedron mesh of inferior quality is modified.
That is, in the step S220, the refining of the mesh is carried out. In this step, the quality of the generated tetrahedron mesh is estimated in light of the quality indexes of the mesh such as a stretch and an aspect ratio. If there exists a mesh of inferior quality that is not fitted to the analysis, the mesh is improved. The method of calculating the stretch and the aspect ratio will be discussed later.
In order to improve the mesh of inferior quality, for example, it is possible to use the method of smoothing the distance between the nodes or selecting a group of elements having flat elements, recombining the connection of the nodes and removing the flat elements.
After the tetrahedral mesh of inferior quality is modified in the step S220, the process goes back to the determining step S219.
Lastly, in a step S221, the generated mesh is outputted and then the overall process is terminated.
Hereafter, the process shown in
For the convenience's sake, therefore, the two-dimensional model is shown in the figures. In
Concretely, the geometry model divided into the triangular mesh on the surface is covered with the regular mesh shown by 401 in
Herein, in order to execute the process of generating the surface triangles and the process of generating the tetrahedrons independently, the average value is used for an edge length of the surface triangle. Instead, it is possible to use a target element dimension value used in generating the surface triangles.
That is, as indicated in the step S207 of
The regular mesh closer to the boundary 301 of the geometry model shown in
As indicated in the step S212 of
The hexahedron can be divided into five or six tetrahedrons. Herein, to divide the hexahedron into tetrahedrons, at first, the hexahedron is divided into two triangular prisms. Then, each triangular prism is divided into three tetrahedrons.
That is, as indicated in the step S213 of
In the triangles 702 on the surface of the regular mesh, the surface of the regular mesh is composed of triangular planes. Hence, a similarly patterned triangular mesh is newly created on the triangular planes on the surface of the regular mesh.
As shown in
As indicated in the step S212 of
As indicated in the step S217 of
The stretch means a normalized ratio of a radius of an inscribed sphere of a tetrahedron to a maximum edge length of the tetrahedron (that is the length of the longest one of the edges composing the tetrahedron). The aspect ratio means a normalized ratio of the length of the shortest edge of a tetrahedron to the length of the longest edge of the tetrahedron.
If the mesh of inferior quality is generated by the existing nodes only, as indicated in the step S218 of
That is,
That is, as shown in
That is,
Further, by making a part of the shape shown in
Though the regular mesh is used in the inside mesh in this embodiment, instead, it is possible to pre-store the existing mesh rather than the regular mesh in the memory located in the computer 101 and to use it as the inner mesh. To execute this method, a plurality of tetrahedral meshes of high quality are generated as primitive shapes such as a sphere or a parallelpiped in advance and pre-stored in the memory.
Then, those tetrahedral meshes are expanded or shrunk to the target element dimension so that the resulting mesh may be inserted into the inside of the triangular mesh on the surface. Instead, the sufficiently expanded mesh is generated in advance and then is stored in the memory. Then, the inner mesh portion is extracted so as to involve the triangular mesh on the surface, and the extracted mesh portion is used.
This design makes it possible to reduce the area in which a mesh is to be newly generated. This is effective in reducing the time of generating the mesh as in the case of using the regular mesh.
It goes without saying that the present invention is not limited to the aforementioned embodiments and may be properly modified in various forms without departing from the spirit of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2007-100913 | Apr 2007 | JP | national |