Detection of gaps between objects in CAD-defined geometries
The use of a Delaunay mesh to classify and fill gaps in CAD geometry addresses the inefficiencies of manual gap detection, improving CAD drawings for fluid flow simulations by enhancing accuracy and reducing manual processes.
Patent Information
- Application Number
- CN201910694275.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2018-07-30
- Filing Date
- 2019-07-30
- Publication Date
- 2024-12-13
- Estimated Expiration
- 2039-07-30
AI Technical Summary
Current CAD systems face challenges in accurately identifying and filling gaps in defined geometry, leading to inefficient and manual processes that often fail to produce proper gap filling, especially in fluid flow simulations.
A method using a Delaunay three-dimensional mesh to identify and classify gaps based on criteria such as length and angle, followed by filling significant gaps with user-defined shapes, enhancing CAD drawings for fluid flow simulations by applying a lattice structure represented as a collection of voxels.
This approach provides more accurate and efficient gap detection and filling, enabling improved CAD drawings for fluid flow simulations with reduced manual intervention and enhanced simulation accuracy.
Smart Images

Figure CN110852003B_ABST
Abstract
Description
[0001] Priority claim
[0002] This application claims priority under 35 USC §119(e) to U.S. Provisional Patent Application Serial No. 62 / 712,099, filed on July 30, 2018, entitled “Detection of Gapbetween CAD Geometries,” the entire contents of which are incorporated herein by reference. Background Art
[0003] The present disclosure relates to techniques for defining the geometry of an object.
[0004] Computer-aided design (CAD) is the use of computer systems to help create, modify, analyze, or optimize designs. Computer-aided design (CAD) has many applications. One application of CAD is that CAD drawings can serve as the basis for defining the geometry of objects for fluid flow simulations.
[0005] Computational fluid dynamics (CFD) is a branch of fluid mechanics that solves problems related to fluid flow. In some embodiments, a computer system performs the calculations required for the interaction of liquid and gas with a surface defined by boundary conditions. A type of computational flow simulation is the so-called lattice Boltzmann method (Lattice BoltzmannMethod). A part of the process of performing fluid simulation includes defining the geometry of objects associated with the simulation. Typically, computer-aided design (CAD) can be used to define the geometry. For example, a CAD system can be used to define the geometry of a physical object (such as a car, a wind turbine, an air duct, etc.) to be simulated.
[0006] A common problem when using CAD systems is the presence of unexpected gaps in the defined geometry. Traditional methods of solving this problem are mostly manual and very tedious.
[0007] One technique uses an octree-based interference detection code, which is a tree data structure in which each internal node has exactly eight child nodes. An octree can be used to partition a three-dimensional space by recursively subdividing the three-dimensional space into eight octants. This traditional solution may only provide a rough estimate of the location of the gap, but cannot provide a meaningful description of the gap. The rest of the traditional solution is manual, and once a set of faces are identified, the user applies the nearest point projection or extension of the boundary edge of the face to generate a set of new surfaces for filling the gap. The effectiveness of the solution depends on how well the boundary edge describes the contour of the new surface created to fill the gap. In some cases, when the CAD edges around the gap area cannot produce a suitable gap surface, the user manually "pulls" (one or more) lines on the participating surfaces to generate the set of contours, and then connects them to form the gap surface. Summary of the invention
[0008] According to one aspect, a computer-implemented method includes: selecting, by a computing system, a first set of points on a first entity in a drawing generated by a computer-aided design (CAD); identifying a second set of points on a second entity in the drawing generated by the CAD; identifying at least one gap between at least one point in the first set of points (a first point) and at least one point in the second set of points (a second point); and classifying the gap between the first point and the second point as a significant gap or a non-significant gap.
[0009] The following one or more features are some additional features that may be included in the above-described aspects.
[0010] Classifying the gap further includes: determining a set of criteria representing the gap; comparing the determined criteria to a threshold value for the criteria; and classifying the gap based on the comparison of the determined criteria to the threshold value. The criteria include: a length value corresponding to a physical distance between the first point and the second point, and an angle value representing an angle formed by the intersection of two rays perpendicular to a surface of each of the first and second entities at the respective first and second points.
[0011] Identifying at least one gap further includes determining the volume of at least one identified gap between the first entity and the second entity by applying a Delaunay three-dimensional mesh (Delaunay mesh) composed of tetrahedrons to the gap so that no point in the first set of points including the first point and the second set of points including the second point is located within the volume of a given tetrahedron of the tetrahedrons. The method further includes excluding at least one of the tetrahedrons of the Delaunay mesh from the volume based on the length of the edge that touches both the first entity and the second entity. The method further includes excluding at least one of the tetrahedrons of the Delaunay mesh from the volume based on the vertex angle of an isosceles triangle, wherein the base of the isosceles triangle is an edge of the tetrahedron and one edge of the isosceles triangle is perpendicular to the surface of the first entity. The method further includes excluding at least one of the tetrahedrons of the Delaunay mesh from the volume based on the vertex angle of the isosceles triangle, wherein the base of the isosceles triangle is an edge of the tetrahedron and one edge of the isosceles triangle is perpendicular to the surface of the first entity.
[0012] The method further includes filling at least gaps in the CAD-generated drawing that are classified as significant with fill shapes to provide a corrected CAD-generated drawing. A gap-filling process identifies a union of multiple entities that meet user-defined criteria for filling the gaps. The corrected CAD-generated drawing is a representation of a physical object, and the method further includes: generating a model of a simulation space from the corrected CAD-generated drawing, the model of the simulation space including a lattice structure represented as a collection of voxels, wherein the voxels have an appropriate resolution for accounting for the surface of the physical object; and simulating fluid flow in the simulation space by one or more computer systems.
[0013] According to an additional aspect, a system includes: one or more processing devices; a memory operably coupled to the one or more processor devices; and one or more storage devices storing operable instructions, which, when executed by the one or more processing devices, configure the system to perform the following operations: identifying a first set of points on a first entity in a drawing generated by a computer-aided design (CAD) of a physical object; identifying a second set of points on a second entity in the CAD design; and determining a volume of a gap between the first entity and the second entity by applying a Delaunay mesh of a tetrahedron of the first set of points and the second set of points to the gap.
[0014] The following one or more features are some additional features that may be included in the above-described aspects.
[0015] The system configured to determine the volume of the gap is further configured to: identify a tetrahedron of the Delaunay mesh, the tetrahedron having a corner that touches each of the first solid and the second solid. The system is further configured to: exclude at least one of the tetrahedrons of the Delaunay mesh from the volume based on the length of the side that touches both the first solid and the second solid. The system is further configured to: exclude at least one tetrahedron from the volume based on the vertex angle of an isosceles triangle, wherein the base of the isosceles triangle is a side of the tetrahedron and one side of the isosceles triangle is perpendicular to a surface of the first solid.
[0016] The system is further configured to fill at least gaps in the CAD-generated drawing that are classified as significant with a fill shape that is a union of multiple entities that meet user-defined criteria for filling the gaps to provide a corrected CAD-generated drawing. The corrected CAD-generated drawing is a representation of a physical object, wherein the system is further configured to generate a model of a simulation space from the corrected CAD-generated drawing, the model of the simulation space comprising a lattice structure represented as a collection of voxels, wherein the voxels have an appropriate resolution for accounting for the surface of the physical object; and simulate fluid flow in the simulation space.
[0017] According to an additional aspect, a computer program product tangibly stored on a non-temporary hardware storage device is used to identify a gap in a computer-aided design drawing, the computer program product including operable instructions that, when executed by a system, cause the system to perform the following operations: identify a first set of points on a first entity in the CAD design; identify a second set of points on a second entity in the CAD design; and determine the volume of the gap between the first entity and the second entity by applying a Delaunay three-dimensional tetrahedral mesh of the first set of points and the second set of points to the gap.
[0018] The following one or more features are some additional features that may be included in the above-described aspects.
[0019] The instructions for determining the volume of the gap also include instructions for identifying a tetrahedron of the Delaunay mesh, the tetrahedron having a corner that contacts each of the first solid and the second solid. The instructions for determining the volume of the gap also include instructions for excluding at least one tetrahedron from the volume based on the length of the side that contacts both the first solid and the second solid. The instructions for determining the volume of the gap also include instructions for excluding at least one tetrahedron from the volume based on the vertex angle of an isosceles triangle, wherein the base of the isosceles triangle is a side of the tetrahedron, and one side of the isosceles triangle is perpendicular to a surface of the first solid.
[0020] One or more of the above aspects may include one or more of the following advantages.
[0021] The above aspects can enable computer-aided design (CAD) drawings to be used better than current methods as a basis for defining object geometry (features) for fluid flow simulations, computer-aided manufacturing, etc. The methods discussed herein provide a method that can avoid the manual and cumbersome techniques currently used, thereby providing a more comprehensive and efficient process than current methods. The methods described herein provide more accurate estimates of gap locations and provide a meaningful description of gap ranges while avoiding solutions that are manual and require the user to manually fill in the identified gaps.
[0022] In some embodiments, the corrected CAD drawing(s) may be used to generate a simulation environment in a system that performs a fluid flow simulation. The fluid flow simulation involves the interaction of these fluids with surfaces defined by the boundary conditions of the objects represented by the corrected CAD drawing(s), wherein the geometry (physical features) of the objects relevant to the simulation are defined and there are no unexpected significant gaps in the defined geometry.
[0023] The details of one or more embodiments of the subject matter described in this specification are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the subject matter will become apparent from the description, drawings, and claims. BRIEF DESCRIPTION OF THE DRAWINGS
[0024] Figure 1 A system for simulating fluid flow is depicted.
[0025] Figure 2 A flow chart showing operations for formulating a lattice Boltzmann model simulation is depicted.
[0026] Figure 3 , Figure 4A , Figure 8is a flow chart illustrating aspects of gap handling of a gap between two CAD-generated entities.
[0027] Figure 4-Figure 7 is an illustration of an object with gaps that is used to understand various aspects of gap handling, including illustrations of tessellated surfaces and gap volume approximations for CAD solids.
[0028] 9 and 10 show the velocity components of two LBM models represented in Euclidean space (prior art).
[0029] Fig.11 is a flow chart of the process followed to simulate the system using the physical process of the calibrated CAD drawing.
[0030] FIG. 12 is a perspective view of a microblock (prior art).
[0031] Figures 13A-13B are Figure 1 Illustration of the lattice structure used in the system (prior art).
[0032] 14 and 15 illustrate variable resolution techniques (prior art).
[0033] Figure 16 shows the movement of particles (prior art).
[0034] FIG. 17 shows the area affected by bins of a surface (prior art).
[0035] FIG. 18 shows a flow chart of surface dynamics (prior art).
[0036] 19 is a flow chart of a process for performing surface dynamics (prior art). DETAILED DESCRIPTION
[0037] The problem with current gap detection / correction methods is that these methods are primarily or entirely manual processes that rely entirely on the CAD surface geometry alone and its boundary edges, which often fail to produce proper gap filling. The gap between two entities is a fundamental property of the two entities that does not rely on how the two entities are described individually piecewise (with respect to faces) for computer-aided design and / or manufacturing reasons.
[0038] refer to Figure 1, a system 10 for simulating fluid flow (e.g., near a representation of a physical object) is shown. The system 10 in this implementation is based on a client-server architecture and includes a server system 12 implemented as a massively parallel computing system 12 and a client system 14. The server system 12 includes a memory 18, a bus system 11, an interface 20 (e.g., a user interface / network interface / display or monitor interface, etc.), and a processing device 24. In the memory 18 are a grid preparation engine 32 and a simulation engine 34.
[0039] Although Figure 1 A grid preparation engine 32 is shown in memory 18, but the grid preparation engine may be a third-party application executing on a different system than the server 12. Regardless of whether the grid preparation engine 32 is executed in memory 18 or on a different system than the server 12, the grid preparation engine 32 receives a user-provided grid definition 30, and the grid preparation engine 32 prepares the grid and sends the prepared grid to a simulation engine 34. The simulation engine 34 includes a particle collision interaction module, a particle boundary modeling module, and an advection module that performs advection operations. The system 10 accesses a data repository 38 that stores 2D and / or 3D grids and libraries.
[0040] Before performing a simulation in a simulation engine, the simulation space is modeled as a collection of voxels. Typically, a computer-aided design (CAD) program is used to generate the simulation space. For example, a CAD program can be used to draw microdevices located in a wind tunnel. Thereafter, the data generated by the CAD program is processed to add a grid structure with appropriate resolution and to account for objects and surfaces within the simulation space. As described above, one of the challenges of using CAD drawings to generate simulation spaces includes the problem of identifying and appropriately filling gaps in the geometric shapes generated by the CAD.
[0041] Discussed below is a computer-aided design (CAD) correction process 40 for constructing a CAD drawing (or drawings) of suitable quality with few or no significant gaps for use with a mesh construction engine. In essence, the CAD correction process 40 (in Figure 3 ) enhances the CAD drawing(s) 31 for the mesh construction engine 32.
[0042] Reference now Figure 2, a process for simulating fluid flow near a representation of a physical object is shown. In the examples to be discussed herein, the physical object is an airfoil. However, the use of an airfoil is merely illustrative, as the physical object may be of any shape, and in particular may have (one or more) flat and / or curved surfaces. The process receives 34a a mesh for the physical object being simulated, for example from a client system 14 or by retrieval from a data repository 38. The mesh is based on a CAD correction process 40 ( Figure 3 ) provided by the user for use with the mesh construction engine, with few or no significant gaps. In other embodiments, an external system or server 12 based on user input generates a mesh for the physical object being simulated. The process precomputes 34b geometry based on the retrieved mesh and performs 34c a dynamic lattice Boltzmann model simulation using the precomputed geometry corresponding to the retrieved mesh. The lattice Boltzmann model simulation includes the evolution of the particle distribution and the particle to the next cell in the LBM mesh. Simulation of advection.
[0043] Reference now Figure 3 , shows a CAD design gap correction process 40 (CAD design process 40). In the CAD design process 40, the CAD design program is configured 42 with certain defined gap standard parameters. One set of defined parameters is a threshold value α for the vertex size. th , another parameter is the threshold d for the gap length th The CAD design process generates 44 CAD drawing(s) representing a geometry, e.g., a relatively complex geometry, from a defined description of a physical object to be simulated. After (or during) the generation of the CAD drawing(s), a gap detection process 46 is applied. For all significant gaps 47 detected, a gap filling process 48 is applied to generate 49 a modified set of CAD drawing(s) that cause the detected (significant) gaps to be filled according to user defined criteria.
[0044] The user-defined criteria are based on the expected usage aspects of the CAD drawing. For example, stricter criteria may be applied to a high Mach number flow simulation over an airfoil body than to a low Mach number simulation over a car's mirror. The user-defined criteria involve setting a threshold α th and d thAlthough the CAD design process 40 is applied below to gap correction for LBM simulations, this is only one example of how the CAD design process 40 may be used. For example, the CAD design process 40 may be used for gap correction in other computational flow dynamics problems, as well as other applications where CAD drawings are used to provide a design or simulation environment, etc.
[0045] Reference now Figure 4 , showing a portion of a solid object 52 and a portion of a solid object 54 having a significant gap and an insignificant gap. Given a point 56 (b') on the surface of a first solid (in this example on solid 52), a ray 58 (a line with a single endpoint and extending infinitely in one direction) is set perpendicular to the surface of solid 52 at point 56. For a point 62 (c') on ray 58, a point 60 (a') on the surface of solid 54 defines a line segment (unlabeled) of ray 58 that extends from point 56 to point 62 and is the same length as the line segment (unlabeled) from point 60 to point 62. Points 56, 60, and 62 form an isosceles triangle (two sides of equal length) with a vertex angle 64 (α'). The length (d') of the base 68 of the triangle and the size of the vertex angle 64 are parameters of the gap that are compared to the configured standard parameter d.
[0046] Figure 4 An example of a gap is also shown in FIG. 5 (a line segment ab having a length (d), an angle (α) detected between points a and b on surfaces 52 and 54 and point c on ray bc, and meeting the threshold criteria d for length d and angle α). th and α th The values are not significant).
[0047] Reference now Figure 4A , the gap detection process 46 is shown applied to Figure 4 4. In the CAD design process 40, the gap detection process 46 causes the system to identify 46a a point 56 on the surface of the solid object 52 and determine 46b a ray 58 perpendicular to the surface of the solid object 52 at the point 56. The system determines 46c a point 62 on the ray 58 and a point 60 on the surface of the solid object 54 such that two line segments from point 56 to point 62 and from point 60 to point 62 have the same length.
[0048] The system compares the length of the base 68 and the size of the vertex 64 of the triangle to the standard parameter values 46d. If the length of the base 68 is less than or equal to the threshold length and the size of the vertex 64 is greater than or equal to the threshold angle, it is determined that points 56 and 60 are significant and are part of the gap to be filled.
[0049] Reference now Figure 5, an illustration of two solid objects illustrates how the gap identification algorithm includes or excludes different points. In this example, the system identifies a gap between two solid objects (solid 100 and solid 70a). The system identifies point 72 on solid 70b. The system identifies point 74 as the closest point on solid 70a to point 72. The length (distance) of line 76 between these points is compared to a threshold distance d th The vertex angle 78 of the isosceles triangle (the isosceles triangle has line 76 as base and side 80 is formed by a line segment perpendicular to the surface of solid 70b at point 72) is equal to the threshold angle α th In this example, the distance between point 72 and point 74 is less than the threshold distance, but the vertex angle 78 is less than the threshold angle, so point 72 is excluded from the gap.
[0050] As another example, the system identifies point 82 on entity 70b. The system identifies point 84 as the closest point on entity 70a to point 82. The length (distance) of line 86 between these points is compared to a threshold distance d. th The vertex angle 88 of the isosceles triangle (the isosceles triangle has line 86 as its base and side 90 formed by a line segment perpendicular to the surface of solid body 70b at point 82) is equal to the threshold angle α th In this example, the distance between point 82 and point 84 is less than the threshold distance and the vertex angle 88 is greater than the threshold angle, so point 82 is included in the gap.
[0051] As a final example, the system identifies point 92 on entity 70b. The system identifies point 94 as the point on entity 70a that is closest to point 92. The length (distance) of line 96 between these points is compared to the threshold distance d. th The vertex angle 98 of the isosceles triangle (the isosceles triangle has line 96 as base and side 100 formed by line segments perpendicular to the surface of solid body 70b at 92) is equal to the threshold angle α th In this example, the distance between point 92 and point 94 is greater than the threshold distance and vertex angle 98 is less than the threshold angle, and because both criteria are not met, point 92 is excluded from the gap.
[0052] In practice, finding all point pairs (a, b) from a set of CAD entities is obviously a difficult task, since there is an infinite set of such point pairs that can satisfy the user-defined criteria. However, similar results can be obtained by applying approximations.
[0053] Reference now Figure 6, a pair of "tessellated" surfaces of CAD-generated solid objects 122 and solid 124. "Tessellation" refers to the covering of a gap (partially or entirely) by one or more types of congruent planar figures without gaps or overlaps. Once the approximate location of the gap is identified, the surface of solid 122 and the surface of solid 124 near the gap are tessellated to produce a set of points 132a that sample the surface area of solid 122 and a set of points 134 that sample the surface area of solid 124, as described above. It should be noted that CAD solids are represented as three-dimensional objects. For explanatory purposes, the figures presented herein are represented in two dimensions.
[0054] The sets of points 132 and 134 can be provided together as input to form a Delaunay tetrahedralization of a three-dimensional volume containing the set of points. In two-dimensional space, the Delaunay triangulation for a given set P of discrete points in a plane is a triangulation DT(P) such that no point in P is within the circumcircle of any triangle in DT(P). Delaunay triangulations maximize the minimum angle among all angles of the triangles in the triangulation; they tend to avoid using sliver triangles. In three-dimensional space (3D), the Delaunay tetrahedralization of a set of points generates tetrahedrons where the circumscribed sphere of each tetrahedron spanning four points is empty without all other points in the set.
[0055] The system identifies tetrahedrons that touch both A and B, referred to herein as "multi-solids" (e.g., multi-solid 136 and multi-solid 138). From the set of all identified multi-solids, the system selects tetrahedrons that meet a user-provided tolerance (d th , α th ) of multiple entities, where the distance threshold parameter (d th ) is used to eliminate the th The bottom 140 units, and the angle parameter (α th ) is used to eliminate such elements (i.e., the circumcenter of the element makes the solid angle 142 less than α th ), as described above.
[0056] Now also refer to Figure 7 , the union of multi-solids 136 and 138 (collectively 140) that meet this criterion gives an approximate volume of the gap between the two solids. Once the gap is defined, the gap can be filled by a shape composed of the union of multi-solids 136, 138. The system can use the union of multi-solids to fill the gap between solids.
[0057] Reference now Figure 8, an example process 150 for defining a gap in a CAD geometry is shown. The process 150 identifies 152 a first set of points on a first entity in a CAD design. For example, a tessellation algorithm may be used to identify the first set of points. The process 150 identifies 154 a second set of points on a second entity in a CAD design. For example, a tessellation algorithm may be used to identify the second set of points. The process determines 156 the volume of the gap between the first entity and the second entity based on a Delaunay mesh composed of tetrahedrons (tetrahedral shapes) such that none of the first set of points and the second set of points is within the volume of a given one of the tetrahedral shapes (not shown).
[0058] In some embodiments, the process 150 can determine a volume that defines a gap between the first entity and the second entity, for example, by identifying a tetrahedron having a corner that touches each of the first entity and the second entity. In some embodiments, the process 150 can exclude tetrahedrons from the volume based on the length of the side that touches both the first entity and the second entity. The process 150 can exclude tetrahedrons from the volume based on the vertex angle of an isosceles triangle, where the base of the isosceles triangle is the side of the tetrahedron, and one side of the isosceles triangle is perpendicular to the surface of the first entity. Once the gap in the CAD drawing is filled, the CAD drawing can be used to define a simulation volume for a fluid simulation.
[0059] After filling in the significant gaps in the CAD drawing(s), the CAD drawing(s) are used to define a simulation volume or mesh for the fluid flow simulation performed by the simulation engine 34. For example, as described in U.S. Patent Application No. 11 / 463,673, entitled COMPUTER SIMULATION OF PHYSICAL PROCESS (now issued as U.S. Patent No. 7,558,714), which is incorporated herein by reference in its entirety.
[0060] Below Fig.11 In the process discussed in, the simulation space is configured using a gap-corrected CAD drawing to describe the flow simulation process. In the following figures, such as FIG. 12, a perspective view of a microscopic block, FIG. 13A-13B illustrating a lattice structure, FIG. 14 and FIG. 15 illustrating variable resolution techniques, FIG. 16 illustrating particle motion, and FIG. 17 illustrating areas affected by surface bins, each of these FIGs. 12-17 is labeled as prior art because these figures appear in the patents cited above.
[0061] However, the drawings appearing in the above-referenced patent do not contemplate any modifications to the flow simulation using the gap-corrected CAD drawings to configure the simulation space, since the gap correction process described therein is not described in the above-referenced patent.
[0062] Modeling the Simulation Space
[0063] In the physical process simulation system based on LBM, the fluid flow can be represented by a set of discrete velocities c i The distribution function value f to be evaluated i The dynamics of the distribution function is governed by equation (I1), where f i (0) is known as the equilibrium distribution function, which is defined as:
[0064]
[0065] in
[0066] This equation describes the distribution function f i The well-known lattice Boltzmann equation for the time evolution of . The left-hand side shows the changes in the distribution due to the so-called "fluidization process". A fluidization process is when a piece of fluid starts at a grid location and moves along one of the velocity vectors to the next grid location. At that point, the "collision operator" is calculated, i.e., the influence of the nearby fluid pieces on the starting fluid piece. The fluid can only move to one other grid location, so an appropriate choice of the velocity vectors is necessary so that all components of all velocities are multiples of a common speed.
[0067] The right hand side of the first equation is the "collision operator" mentioned above, which represents the change in the distribution function due to collisions between fluid blocks. The specific form of the collision operator used here is due to Bhatnagar, Gross and Krook (BGK). It forces the distribution function to go to a prescribed value given by the second equation, which is in "equilibrium" form.
[0068] The BGK operator is based on the fact that (regardless of the details of the collision) the distribution function is approached by {f eq (x, v, t)} given by the physical point of view of a well-defined local equilibrium:
[0069]
[0070] where the parameter τ represents the characteristic relaxation time for reaching equilibrium via collisions. For particles (e.g., atoms or molecules), the relaxation time is usually taken as a constant.
[0071] From this simulation, conventional fluid variables, such as mass ρ and fluid velocity u, are obtained as simple summations in equation (I3).
[0072]
[0073] where ρ, u and T are the fluid density, velocity and temperature, respectively, and D is the dimension of the discretized velocity space (not necessarily equal to the physical space dimension).
[0074] Due to symmetry considerations, the set of velocity values is chosen in such a way that they form a certain lattice structure when spanned in the configuration space. The dynamics of this discrete system follows an LBE of the form:
[0075] f i (x+c i , t+1)-f i (x, t) = C i (x, t)
[0076] where the collision operator usually takes the BGK form as described above. By appropriate choice of the equilibrium distribution form, it can be shown theoretically that the lattice Boltzmann equation yields the correct fluid dynamics and thermo-fluid dynamics. That is, from f i The (x, t) derived hydrodynamic moments obey the Navier-Stokes equations in the macroscopic limit. These moments are described above in equation (I3).
[0077] c i and w i The LBM model can be efficiently implemented on scalable computer platforms and runs with maximum robustness for time-invariant flows and complex boundary conditions.
[0078] The standard technique for obtaining the macroscopic equations of motion for a fluid system from the Boltzmann equation is the Chapman-Enskog method, in which successive approximations of the full Boltzmann equation are taken. In a fluid system, small perturbations of density travel at the speed of sound. In gas systems, the speed of sound is generally determined by the temperature. The importance of the effect of compressibility in a fluid is measured by the ratio of the characteristic velocity to the speed of sound, which is called the Mach number.
[0079] The following provides a general discussion of LBM-based simulation systems that can be used in conjunction with the above-described gap-filling CAD process for fluid flow simulations. For further description of LBM-based physical process simulation systems, the reader is referred to the U.S. patents incorporated by reference above.
[0080] 9, the first model (2D-1) 200 is a two-dimensional model including 21 velocities. Among the 21 velocities, one velocity (205) represents a particle that does not move; three groups of four velocities represent particles that move at a normalized velocity (r) (210-213), twice the normalized velocity (2r) (220-223), or three times the normalized velocity (3r) (230-233) in the positive or negative direction along the x or y axis of the lattice; and two groups of four velocities represent particles that move at a normalized velocity (r) (240-243) or twice the normalized velocity (2r) (250-253) relative to both the x and y lattice axes.
[0081] Referring to Figure 10, a second model (3D-1) 260 is shown, which is a three-dimensional model including 39 velocities, each of which is represented by one of the arrows of Figure 10. Of the 39 velocities, one velocity represents a particle that does not move; three sets of six velocities represent particles that move at a normalized velocity (r), twice the normalized velocity (2r), or three times the normalized velocity (3r) in the positive or negative direction along the x, y, or z axis of the lattice; eight velocities represent particles that move at a normalized velocity (r) relative to all three of the x, y, and z lattice axes; and twelve velocities represent particles that move at twice the normalized velocity (2r) relative to two of the x, y, and z lattice axes.
[0082] More complex models can also be used, such as the 3D-2 model including 101 velocities and the 2D-2 model including 37 velocities. For the three-dimensional model 3D-2, among the 101 velocities, one velocity represents a particle that does not move (group 1); three groups of six velocities represent particles that move at a normalized velocity (r), twice the normalized velocity (2r), or three times the normalized velocity (3r) in the positive or negative direction along the x, y, or z axis of the lattice (groups 2, 4, and 7); three groups of eight velocities represent particles that move at a normalized velocity (r), twice the normalized velocity (2r), or three times the normalized velocity (3r) relative to all three lattice axes among the x, y, and z lattice axes (groups 3, 8, and 10); Twelve velocities represent particles moving at twice the normalized velocity (2r) relative to two of the x, y, z lattice axes (Group 6); twenty-four velocities represent particles moving at a normalized velocity (r) and twice the normalized velocity (2r) relative to two of the x, y, z lattice axes and not moving relative to the remaining axes (Group 5); and twenty-four velocities represent particles moving at a normalized velocity (r) relative to two of the x, y, z lattice axes and at three times the normalized velocity (3r) relative to the remaining axes (Group 9).
[0083] For the two-dimensional model 2D-2, among the 37 velocities, one velocity represents a particle that does not move (Group 1); three groups of four velocities represent particles that move at a normalized velocity (r), twice the normalized velocity (2r), or three times the normalized velocity (3r) in the positive or negative direction along the x or y axis of the lattice (Groups 2, 4, and 7); two groups of four velocities represent particles that move at a normalized velocity (r) or twice the normalized velocity (2r) relative to both the x lattice axis and the y lattice axis; eight velocities represent particles that move at a normalized velocity (r) relative to one of the x lattice axis and the y lattice axis and at twice the normalized velocity (2r) relative to the other axis; and eight velocities represent particles that move at a normalized velocity (r) relative to one of the x lattice axis and the y lattice axis and at three times the normalized velocity (3r) relative to the other axis.
[0084] The LBM models described above provide a specific class of efficient and robust discrete velocity dynamic models for numerical simulation of flows in two and three dimensions. This type of model includes a specific set of discrete velocities and weights associated with those velocities. These velocities correspond to grid points of Cartesian coordinates in velocity space, which facilitates accurate and efficient implementation of discrete velocity models, especially the class known as lattice Boltzmann models. Using such models, flows can be simulated with high fidelity.
[0085] refer to Fig.11 , the physical process simulation system operates according to process 270 to simulate a physical process such as fluid flow. Prior to flow simulation, the simulation space is modeled (step 272) as a collection of voxels using the corrected CAD drawing discussed above. The simulation space is generated using a computer-aided design (CAD) program and a gap correction process on the CAD-generated drawing. For example, the CAD program may be used to draw a microdevice located in a wind tunnel, and the gap correction process may identify significant gaps and fill those gaps without significant user intervention (other than setting the d th and α th This correction data generated by the CAD program is then processed to add the lattice structure with appropriate resolution and to take into account objects and surfaces within the simulation space.
[0086] The resolution of the lattice can be chosen based on the Reynolds number of the system being simulated. The Reynolds number is related to the viscosity of the flow (v), the characteristic length of objects in the flow (L), and the characteristic velocity of the flow (u):
[0087] Re=uL / v Equation (I4)
[0088] The characteristic length of an object represents a large-scale feature of the object. For example, if the flow around a microdevice is being simulated, the height of the microdevice can be considered the characteristic length. When the flow around a small area of an object (e.g., the side-view mirror of a car) is of interest, the resolution of the simulation can be increased, or a region of increased resolution can be employed around the area of interest. The dimensionality of the voxel decreases as the resolution of the lattice increases.
[0089] The state space is represented as f i (x, t), where f i represents the number of elements or particles per unit volume in state i at the lattice site represented by the three-dimensional vector x at time t (i.e., the density of particles in state i). For a known time increment, the number of particles is simply referred to as f i (x). The combination of all states of the lattice site is denoted f(x).
[0090] The number of states is determined by the number of possible velocity vectors within each energy level. The velocity vectors consist of integer linear rates in a space with three dimensions x, y, and z. For multi-genus simulations, the number of states increases.
[0091] Each state i represents a different velocity vector at a particular energy level (i.e., energy level zero, one, or two). The velocity c of each state i The "velocity" in each of the three dimensions is indicated as follows:
[0092] c i =(c ix , c iv , c iz ) Equation (I5)
[0093] The zero energy state represents a stationary particle that does not move in any dimension, i.e., c stopped =(0,0,0). The one state represents a particle with a velocity of ±1 in one of the three dimensions and zero velocity in the other two dimensions. The two state represents a particle with a velocity of ±1 in all three dimensions, or a velocity of ±2 in one of the three dimensions and zero velocity in the other two dimensions.
[0094] Generating all possible permutations of the three energy levels gives a total of 39 possible states (one energy zero state, 6 energy one states, 8 energy three states, 6 energy four states, 12 energy eight states, and 6 energy nine states).
[0095] Each voxel (i.e., each lattice site) is represented by a state vector f(x). This state vector completely defines the state of the voxel and includes 39 entries. These 39 entries correspond to one energy zero state, 6 energy one states, 8 energy three states, 6 energy four states, 12 energy eight states, and 6 energy nine states. By using this set of velocities, the system can generate Maxwell-Boltzmann statistics for the achieved equilibrium state vector.
[0096] For processing efficiency, voxels are grouped in 2x2x2 volumes called microblocks. Microblocks are organized to allow parallel processing of voxels and minimize the overhead associated with data structures. The shorthand notation for voxels in a microblock is defined as N i (n), where n represents the relative position of the lattice site in the microscopic block and n∈{0, 1, 2, …, 7}.
[0097] The microscopic block is shown in FIG12 .
[0098] 13A and 13B, the surface S (FIG. 13A) is represented as a surface element F in the simulation space (FIG. 13B). α A collection of:
[0099] S={F α Equation (I6)
[0100] Where α is an index that enumerates a particular facet. Facets are not restricted to the boundaries of voxels, but typically have a size that is on the order of the size of the voxels adjacent to the facet, or has a size that is slightly smaller than the size of the voxels adjacent to the facet, so that the facet affects a relatively small number of voxels. To implement surface dynamics, attributes are assigned to facets. Specifically, each facet F α With unit normal (n α ), surface area (A α )、Center position(x α ) and the surface element distribution function (f i (α)). The total energy distribution function q i (α) is treated in the same way as the flow distribution for the interaction of surface elements and volume elements.
[0101] Referring to FIG14 , different resolution levels can be used in different regions of the simulation space to improve processing efficiency. Typically, the region 320 surrounding the object 322 is of greatest concern and is therefore simulated using the highest resolution. Because the effect of viscosity decreases with distance from the object, regions 324, 326 spaced at increasing distances from the object 322 are simulated using reduced resolution levels (i.e., enlarged voxel volumes).
[0102] 15, lower resolution levels may be used to simulate regions 340 around less prominent features of object 342, while the highest resolution level is used to simulate regions 344 around the most prominent features (e.g., leading and trailing edge surfaces) of object 342. Outlying regions 346 are simulated using the lowest resolution level and the largest voxels.
[0103] C. Identify the voxels affected by the surface element
[0104] Reference again Fig.11 Once the simulation space has been modeled (step 272), the voxels affected by one or more facets are identified (step 274). Voxels can be affected by facets in a number of ways. First, a voxel intersected by one or more facets is affected in that the voxel has a reduced volume relative to non-intersecting voxels. This occurs because the facet and the material beneath the surface represented by the facet occupy a portion of the voxel. The fractional factor P f (x) indicates the portion of the voxel that is not affected by the facet (i.e., the portion that can be occupied by fluid or other material for which flow is simulated). For non-intersecting voxels, P f (x) is equal to 1.
[0105] Voxels that intersect one or more panels by transmitting particles to or receiving particles from the panels are also identified as voxels affected by the panels. All voxels intersected by a panel will include at least one state for receiving particles from the panel and at least one state for transmitting particles to the panel. In most cases, additional voxels will also include such states.
[0106] Referring to FIG16 , for a non-zero velocity vector c i For each state i, the face F α From the parallelepiped G iα The area defined by G receives particles or transmits particles to it, where the parallelepiped G iα With the velocity vector c i and facets (|c i n i |)'s unit normal n α The height is defined by the magnitude of the vector dot product and the surface area A of the bin α Define the base so that the parallelepiped G iα The volume V iα equal:
[0107] V ia =|c i n a |A a Equation (I7)
[0108] When the velocity vector of the state points to the surface element (|c i n i |<0), face element F α From the volume V iα Receive particles, and when the velocity vector of the state points away from the surface element (|c i n i |>0), and transmit particles to this area. As will be discussed below, when another facet occupies the parallelepiped G iα , i.e., a condition that occurs near non-convex features such as interior corners, this expression must be modified.
[0109] Panel F α The parallelepiped G iα Part or all of a plurality of voxels may be overlapped. The number of voxels or portions thereof depends on the size of the bin relative to the size of the voxel, the energy of the state, and the orientation of the bin relative to the lattice structure. The number of voxels affected increases with the size of the bin. Thus, as noted above, the size of a bin is typically selected to be of the order of magnitude of or smaller than the size of a voxel located near the bin.
[0110] Parallelepiped G iα The portion of the voxel N(x) that overlaps is defined as V iα (x). Using this term, in voxel V iα (x) and panel F α The flux of particles moving between states i is Γ iα (x) is equal to the density of particles in state i in the voxel (N i (x)) multiplied by the volume of the region overlapping the voxel (V iα (x)):
[0111] Γ′ ia (x) = N i (x)+V iα (x) Equation (I8)
[0112] When the parallelepiped G iα When intersected by one or more polygons, the following conditions are true:
[0113] V ia =∑V a (x)+∑V ia (β) Equation (I9)
[0114] The first summation indicates that G iα All voxels overlap and the second term describes the iα All the face elements intersecting. When the parallelepiped G iαWhen not intersected by another face, this expression simplifies to:
[0115] V ia =∑V ia (x) Equation (I10)
[0116] D. Execute simulation
[0117] Once the voxels affected by one or more facets are identified (step 274), a timer is initialized to begin the simulation (step 276). During each time increment of the simulation, the movement of particles from voxel to voxel is simulated by an advection phase that accounts for the interaction of particles with surface facets (steps 278-286). Next, a collision phase (step 288) simulates the interaction of particles within each voxel. Thereafter, the timer is incremented (step 200). If the incremented timer does not indicate that the simulation is complete (step 202), the advection phase and the collision phase (steps 278-200) are repeated. If the incremented timer indicates that the simulation is complete (step 202), the results of the simulation are stored and / or displayed (step 204).
[0118] 1. Boundary conditions for surfaces
[0119] In order to correctly model the interaction with the surface, each cell must satisfy four boundary conditions. First, the combined mass of the particles received by the cell must equal the combined mass of the particles transmitted by the cell (i.e., the net mass flux to the cell must equal zero). Second, the combined energy of the particles received by the cell must equal the combined energy of the particles transmitted by the cell (i.e., the net energy flux to the cell must equal zero). These two conditions can be satisfied by requiring that the net mass flux at each energy level (i.e., level one and level two) equal zero.
[0120] The other two boundary conditions are related to the net momentum of the particle interacting with the surface element. For a surface without skin friction (referred to herein as a sliding surface), the net tangential momentum flux must be equal to zero and the net normal momentum flux must be equal to the local pressure at the surface element. Therefore, the normal n to the surface element is α The components of the combined received and transmitted momentum that are perpendicular (i.e., the tangential components) must be equal and have a direction perpendicular to the surface element normal n. α The difference between the parallel components of the combined received and transmitted momentum (i.e., the normal components) must equal the local pressure at that cell. For a non-sliding surface, the friction of the surface reduces the combined tangential momentum of the particles transmitted by the cell relative to the combined tangential momentum of the particles received by the cell by a factor related to the amount of friction.
[0121] 2. Aggregation from voxels to surfaces
[0122] As a first step in simulating the interaction between particles and surfaces, particles are aggregated from volume elements and provided to surface elements (step 278). As noted above, the volume element N(x) and the surface element F α The flux of particles in state i is:
[0123] G iα (x) = N i (x)V iα (x) Equation (I11)
[0124] From this it can be seen that for the pointing surface element F α Each state i(c i n α <0), provided by the voxel to the surface element F α The number of particles is:
[0125] G iαV→F =∑ X Γ iα (x) = ∑ X N i (x)V iα (x) Equation (I12)
[0126] Only its V iα (x) The voxels with non-zero values must be summed. As noted above, the size of the bins is chosen so that V iα (x) has non-zero values only for a few voxels. iα (x) and P f (x) can have non-integer values, so Г α (x) is stored and processed as a real number.
[0127] 3. Movement from panel to panel
[0128] Next, the particles are moved between the bins (step 280). α The incoming state (c i n α <0) parallelepiped G ia By the other side element F β If they intersect, then F α The part of the particles in state i received will come from the surface element F β In particular, the face element F α will receive the bin F during the previous time increment β The part of the particle i in the state generated. This relationship is shown in Figure 19, where the surface element F β Intersecting parallelepipeds G iα The part 1000 is equal to the surface element F α Intersecting parallelepipeds G iβAs noted above, the intersecting portion is denoted as V iα (β). Using this term, the panel F β With face element F α The flux of particles between states i can be described as:
[0129] G iα (β, t-1) = Γ i (β)V iα (β) / V iα Equation (I.13)
[0130] Among them i (β, t-1) is the value of the bin F during the previous time increment. β The measurement of the state i particle produced. From this, it can be seen that for the pointing surface element F α Each state i(c i n α <0), provided by other bins to bin F α The number of particles is:
[0131] G iαF→F =∑ β Γ iα (β)=∑ β G i (β, t-1)V iα (β) / V iα Equation (I.14)
[0132] And the total flux of particles of state i into the bin is:
[0133] Γ iIN (α) = Γ iαF→F +Γ iαF→F =∑ x N i (x)V iα +∑ β Γ i (β, t-1)V iα (β) / V iα
[0134] Equation (I.15)
[0135] The state vector N(α) for the bin (also called the bin distribution function) has M entries corresponding to the M entries of the voxel state vector. M is the number of discrete lattice rates. The input states to the bin distribution function N(α) are set equal to the flux of particles into those states divided by the volume V iα :
[0136] For c i n α<0, N i (α)=Г iIN (α) / V iα Equation (I.16)
[0137] The bin distribution function is a simulation tool used to generate output flux from bins, and does not necessarily represent actual particles. In order to generate an accurate output flux, values are assigned to the other states of the distribution function. The outward states are filled using the technique described above for filling the inward states:
[0138] For c i n α ≥0,N i (α)=Г iOTHER (α) / V Equation (I.17) where Г iOTHER (α) is the method used to generate Г iIN (α), but applies the technique to all states except the incoming state (c i n α <0) other than the state (c i n α ≥0). In an alternative approach, Г iOTHER (α) can use Γ from the previous time step iOTHER The value of (α) is generated so that:
[0139] Γ iOTHER (α, t) = Γ iOUT (α, t-1) Equation (I.18)
[0140] For the parallel state (c i n α =0), V iα and V iα (x) are all zero. i In the expression of (α), V iα (x) appears in the numerator (according to the iOTHER The expression of (α) and V iα appears in the denominator (according to the i (α) expression). Therefore, when V iα and V iα When (x) is close to zero, N for parallel state i (α) is determined as N i The values of the states with zero velocity (ie, the stationary state and the states (0, 0, 0, 2) and (0, 0, 0, -2)) are initialized at the beginning of the simulation based on the initial conditions for temperature and pressure. These values are then adjusted over time.
[0141] 4. Performing panel surface dynamics
[0142] Next, surface dynamics are performed for each bin to satisfy the four boundary conditions discussed above (step 282). The procedure for performing surface dynamics for a bin is shown in FIG. 17. Initially, the combined momentum P(α) of the particles at the bin is determined to be the velocity of the bin F. α Combined momentum (step 392):
[0143] For all i,
[0144] According to this equation, the normal momentum P n (α) is determined as:
[0145] P n (α) = n α ·P(α) Equation (I.20)
[0146] This normal momentum is then removed using a push / pull technique (step 394) to produce N n -(α). According to this technique, particles are moved between states in a manner that affects only the normal momentum. The push / pull technique is described in U.S. Patent No. 5,594,671, which is incorporated herein by reference.
[0147] Afterwards, N n -(α) particles are collided to produce a Boltzmann distribution N n-β (α) (step 396). As described below with respect to implementing fluid dynamics, the Boltzmann distribution can be obtained by adding N n -(α) This is achieved by applying a set of collision rules.
[0148] Then, based on the incoming flux distribution and the Boltzmann distribution, the α The outgoing flux distribution of (step 398). First, the incoming flux distribution Γ i The difference between (α) and the Boltzmann distribution is determined as:
[0149] ΔG i (α)=Г iIN (α)-N n-βi (α)V ia Equation (I.21)
[0150] Using this difference, the outgoing flux distribution is:
[0151] For n a c i >0,G iOUT (α) = N n-βi (α)V iα -.Δ.Г i*(α) Equation (I.22)
[0152] and where i* is the state with the opposite direction to state i. For example, if state i is (1, 1, 0, 0), then state i* is (-1, -1, 0, 0). To account for skin friction and other factors, the outgoing flux distribution can be further refined as:
[0153] For n α c i >0,
[0154] Among them C f is a function of skin friction, t iα is with n α The vertical first tangent vector, t 2α is with n α and t 1α are perpendicular to the second tangent vector, and ΔN j,1 and ΔN j,2 is the distribution function corresponding to the energy (j) of the state f and the indicated tangent vector. The distribution function is determined according to the following formula:
[0155]
[0156] where j is equal to 1 for the level 1 state and equal to 2 for the level 2 state.
[0157] For G iOUT The function of each term in equation (α) is as follows. The first and second terms enforce normal momentum flux boundary conditions to the extent that the collisions have effectively produced a Boltzmann distribution but include anomalies in the tangential momentum flux. The fourth and fifth terms correct for such anomalies, which may arise from discrete effects or non-Boltzmann structures due to insufficient collisions. Finally, the third term adds a specified amount of skin friction to implement the desired change in the tangential momentum flux at the surface. The friction coefficient G f The generation of is described below. Note that all terms involved in vector manipulation are geometric factors that can be calculated before starting the simulation.
[0158] From this, the tangential velocity is determined as:
[0159] u i (α)=(P(α)-P n (α)n α ) / ρ, Equation (I.25)
[0160] where ρ is the density of the bin distribution:
[0161]
[0162] As before, the difference between the incoming flux distribution and the Boltzmann distribution is determined as:
[0163] ΔG i (α)=Г iIN (α)-N n-βi (α)V iα Equation (I.27)
[0164] Then, the outgoing flux distribution becomes:
[0165] G i OUT(α)=N n-βi (α)V iα -ΔГ i* (α)+C f (n α c i )[N n-βi *(α)-N n-βi (α)]V iα Equation (I.28)
[0166] It corresponds to the first two rows of the outgoing flux distribution determined by the previous technique, but without the need for correction for the anomalous tangential flux.
[0167] Using either method, the resulting flux distribution satisfies all the momentum flux conditions, namely:
[0168]
[0169] Among them, p α It is in the face element F α The equilibrium pressure at the bin and based on the average density and temperature values of the volume element providing the particle to the bin, and u α is the average velocity at that bin.
[0170] To ensure that the mass and energy boundary conditions are met, the difference between the input energy and the output energy is measured for each energy level j:
[0171]
[0172] where index j represents the energy of state i. This energy difference is then used to generate the difference term:
[0173] For c ji n α >0,
[0174] This difference term is used to modify the outgoing flux so that it becomes:
[0175] For c ji n α >0,GαjiOUTf =G αjiOUT +δΓ αji Equation (I.32)
[0176] This operation corrects the mass and energy fluxes while leaving the tangential momentum flux unchanged. If the flow in the neighborhood of the panel is roughly uniform and close to equilibrium, this adjustment is small. After the adjustment, the resulting normal momentum flux is slightly altered to a value that is the equilibrium pressure based on the neighborhood average properties plus a correction due to non-uniform or non-equilibrium properties of the neighborhood.
[0177] 5. Movement from voxel to voxel
[0178] Reference again Fig.11 , particles are moved between voxels along the three-dimensional rectilinear lattice (step 284). This voxel-to-voxel movement is the only movement operation performed on voxels that do not interact with surface elements (i.e., voxels that are not located near the surface). In a typical simulation, voxels that are not located close enough to the surface to interact with the surface make up the majority of the voxels.
[0179] Each separate state represents a particle moving along the lattice at an integer rate in each of the three dimensions x, y, and z. Integer rates include: 0, ±1, and ±2. The sign of the rate indicates the direction the particle is moving along the corresponding axis.
[0180] For voxels that do not interact with surfaces, the move operation is computationally very simple. The entire population of the state moves from its current voxel to the destination voxel during each time increment. At the same time, the particle of the destination voxel moves from that voxel to its own destination voxel. For example, a level 1 particle moving in the +1x and +1y direction (1, 0, 0) moves from its current voxel to a voxel that is +1 in the x direction and 0 for other directions. The particle ends up at its destination voxel with the state (1, 0, 0) it had before the move. Based on local interactions with other particles and surfaces, interactions within a voxel will likely change the particle count for that state. If not, the particle will continue to move along the lattice at the same rate and direction.
[0181] For voxels that interact with one or more surfaces, the move operation becomes slightly more complex. This results in one or more fractional particles being teleported to the surface. This fractional particle to surface teleportation results in fractional particles remaining in the voxel. These fractional particles are teleported to the voxels occupied by the surface.
[0182] 17, when a portion 360 of the state i-particle of voxel 362 is moved to bin 364 (step 278), the remaining portion 366 is moved to voxel 368 in which bin 364 is located and from which the state i-particle points to bin 364. Thus, if the state population equals 25 and V iα (x) is equal to 0.25 (i.e., one quarter of the volume element and the parallelepiped G ia intersect), then 6.25 particles will be moved to the surface element F α And 18.75 particles will be moved to the surface element F α Since multiple facets can intersect a single facet, the number of particles in state i that are teleported to a facet N(f) occupied by one or more facets is:
[0183]
[0184] Where N(x) is the source voxel.
[0185] 6. Dispersion from surface elements to volume elements
[0186] Next, the outgoing particles from each bin are scattered to the voxels (step 286). Essentially, this step is the inverse of the aggregation step of moving particles from voxels to bins. α The number of particles in state i that move from the surface element to the volume element N(x) is:
[0187]
[0188] Where P f (x) indicates that the volume of some voxels is reduced. Therefore, for each state i, the direction from the face element to the voxel N (x) The total number of particles is:
[0189]
[0190] After dispersing particles from bins to voxels, combining the particles with those that have been advected from surrounding voxels, and integerizing the results, it is possible that some directions in some voxels may underflow (become negative) or overflow (exceed 255 in an eight-bit implementation). This will result in a gain or loss of mass, momentum, and energy after these quantities have been truncated to fit within the allowed range of values. To prevent this from happening, the out-of-bounds mass, momentum, and energy are accumulated before the truncation of the offending state. For the energy to which the state belongs, an amount of mass equal to the value of the gain (due to underflow) or loss (due to overflow) is added back to a randomly (or sequentially) selected state with the same energy and which is not itself subject to overflow or underflow. The additional momentum resulting from this addition of mass and energy is accumulated and added to the momentum from the truncation. By only adding mass to the same energy state, both mass and energy are corrected when the mass counter reaches zero. Finally, the momentum is corrected using a push / pull technique until the momentum accumulator returns to zero.
[0191] 7. Perform fluid dynamics
[0192] Perform fluid dynamics (step 288) Fig.11 This step can be called microdynamics or intra-voxel operations. Similarly, the advection procedure can be called inter-voxel operations. The microdynamics operation described below can also be used to collide particles in bins to produce Boltzmann distributions.
[0193] The fluid dynamics are ensured in the lattice Boltzmann equation model by a special collision operator known as the BGK collision model. This collision model mimics the dynamics of the distribution in a real fluid system. The collision process can be well described by the right-hand side of equation 1 and equation 2. After the advection step, the conserved quantities of the fluid system, specifically density, momentum and energy, are obtained from the distribution function using equation 3. From these quantities, by f in equation (2) eq The equilibrium distribution function is completely defined by equation (4). The velocity vector set c i The choices of , weights are listed in Table 1, together with Equation 2 to ensure that the macroscopic behavior follows the correct fluid dynamics equations.
[0194] Variable resolution
[0195] Variable resolution (as discussed in US 2013 / 0151221 A1) may also be employed and voxels of different sizes would be used, for example coarse and fine voxels.
[0196] By leveraging unique transient physics based on lattice Boltzmann, the system can perform simulations that accurately predict real-world conditions. For example, engineers evaluate product performance early in the design process before building any prototypes when the impact of changes is significant to the design and budget. The system can accurately and efficiently perform aerodynamic, aeroacoustic and thermal management simulations using CAD geometry. The system can perform simulations to address the following applications: Aerodynamics (aerodynamic efficiency; vehicle handling; pollution and water management; panel deformation; driving dynamics), Aeroacoustics (greenhouse wind noise; underbody wind noise; gap / seal noise; mirror, whistle and tone noise; sunroof and window buffeting; bypass / neighborhood noise; cooling fan noise), Thermal Management (cooling airflow; thermal protection; brake cooling; drive cycle simulation; shutdown and soak; electronics and battery cooling; ROA / air intake), Climate Control (cabin comfort; HVAC unit and power distribution system performance; HVAC system and fan noise; defrost and defogging), Powertrain: (powertrain cooling; exhaust system; cooling jacket; engine block), Wastewater and Water Management (column overflow, dirt and dust accumulation, tire spray).
[0197] Embodiments of the subject matter and functional operations described in this specification may be implemented in digital electronic circuits, tangibly embodied computer software or firmware, computer hardware (including the structures disclosed in this specification and their structural equivalents), or a combination of one or more of them. Embodiments of the subject matter described in this specification may be implemented as one or more computer programs (i.e., one or more computer program instruction modules encoded on a tangible, non-transitory program carrier for execution by a data processing device or for controlling the operation of a data processing device). Computer storage media may be a machine-readable storage device, a machine-readable storage substrate, a random or serial access memory device, or a combination of one or more of them.
[0198] The term "data processing apparatus" refers to data processing hardware and includes all types of apparatus, devices and machines for processing data, including, for example, a programmable processor, a computer or multiple processors or computers. The apparatus may also be or further include special-purpose logic circuits (e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit)). In addition to hardware, the apparatus may also include code that creates an execution environment for a computer program (e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them).
[0199] A computer program may also be referred to or described as a program, software, software application, module, software module, script or code, and may be written in any form of programming language, including compiled or interpreted languages or declarative or procedural languages, and may be deployed in any form, including as a standalone program or as a module, component, subroutine or other unit suitable for a computing environment. A computer program may, but need not, correspond to a file in a file system. A program may be stored in a portion of a file that stores other programs or data (e.g., one or more scripts stored in a markup language document, a single file dedicated to the program in question, or in multiple coordinated files (e.g., files storing one or more modules, subroutines or code portions)). A computer program may be deployed so that the program is executed on one computer or on multiple computers located at one site or distributed at multiple sites and interconnected by a data communication network.
[0200] Computers suitable for executing computer programs may be based on general or special purpose microprocessors or both, or any other type of central processing unit. Computer readable media suitable for storing computer program instructions and data include all forms of non-volatile memory on media and memory devices, including, for example, semiconductor memory devices (e.g., EPROM, EEPROM and flash memory devices), magnetic disks (e.g., internal hard disks or removable disks), magneto-optical disks, CD ROMs and DVD-ROM disks. The processor and the memory may be supplemented by, or incorporated in, special purpose logic circuits.
[0201] Embodiments of the subject matter described in this specification may be implemented in a computing system that includes a back-end component (e.g., as a data server) or includes a middleware component (e.g., an application server) or includes a front-end component (e.g., a client computer with a graphical user interface or a web browser through which a user can interact with an implementation of the subject matter described in this specification) or one or more such back-end, middleware, or front-end components. The components of the system may be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include local area networks (LANs) and wide area networks (WANs) (e.g., the Internet).
[0202] A computing system may include a client and a server. The client and the server are usually remote from each other and usually interact through a communication network. The relationship between the client and the server is generated by means of computer programs that run on each computer and have a client-server relationship with each other. In some embodiments, the server sends data (e.g., an HTML page) to a user device (e.g., for the purpose of displaying data to a user interacting with the user device and receiving user input), and the user device acts as a client. Data generated at the user device (e.g., the result of user interaction) can be received from the user device at the server.
[0203] Specific embodiments of the subject matter have been described. Other embodiments are within the scope of the following claims. For example, the actions recited in the claims can be performed in a different order and still achieve the desired results. As an example, the processes depicted in the accompanying drawings do not necessarily require the particular order shown or sequential order to achieve the desired results. In some cases, multitasking and parallel processing may be advantageous.
Claims
1. A computer-implemented method for identifying gaps in a computer-aided design drawing, the method comprising: Selecting, by a computing system, a first set of points on a first entity in a drawing generated by a computer-aided design (CAD); identifying a second set of points on a second entity in the CAD generated drawing; identifying at least one gap between at least one first point in the first set of points and at least one second point in the second set of points by applying a Delaunay mesh of a tetrahedron of the first set of points and the second set of points to at least one gap; as well as The gap between the first point and the second point is classified as a significant gap or a non-significant gap.
2. The computer-implemented method for identifying gaps in a computer-aided design drawing of claim 1, wherein: Classifying the gaps also includes: determining a set of criteria representing the gap; comparing the determined criterion to a threshold value for the criterion; and The gap is classified based on a comparison of the determined criterion with the threshold value.
3. The computer-implemented method for identifying gaps in a computer-aided design drawing of claim 2, wherein: The criterion includes a length value corresponding to a physical distance between the first point and the second point and an angle value representing an angle formed by the intersection of two rays perpendicular to a surface of each of the first and second entities at the respective first and second points.
4. The computer-implemented method for identifying gaps in a computer-aided design drawing of claim 1, wherein: Identifying at least one gap further comprises: The volume of at least one identified gap between the first entity and the second entity is determined by applying a Delaunay mesh composed of tetrahedrons to the gap so that no point in the first set of points including the first point and the second set of points including the second point lies within the volume of a given tetrahedron of the tetrahedrons.
5. The computer-implemented method for identifying gaps in a computer-aided design drawing of claim 4, further comprising excluding at least one of the tetrahedrons of the Delaunay mesh from the volume based on the length of an edge that touches both the first solid and the second solid.
6. The computer-implemented method for identifying gaps in a computer-aided design drawing of claim 4, further comprising excluding at least one of the tetrahedrons of the Delaunay mesh from the volume based on a vertex angle of an isosceles triangle, wherein the base of the isosceles triangle is a side of the tetrahedron and one side of the isosceles triangle is perpendicular to a surface of the first solid.
7. The computer-implemented method for identifying gaps in a computer-aided design drawing of claim 4, further comprising excluding at least one of the tetrahedrons of the Delaunay mesh from the volume based on a vertex angle of an isosceles triangle, wherein the base of the isosceles triangle is a side of the tetrahedron and one side of the isosceles triangle is perpendicular to a surface of the first solid.
8. The computer-implemented method for identifying gaps in a computer-aided design drawing of claim 1, further comprising: At least the gaps in the CAD generated drawing that are classified as significant are filled with a fill shape to provide a corrected CAD generated drawing.
9. The computer-implemented method for identifying gaps in a computer-aided design drawing of claim 8, wherein: The gap filling process identifies a union of multiple entities that meet user-defined criteria for filling the gap.
10. The computer-implemented method for identifying gaps in a computer-aided design drawing of claim 9, wherein: The corrected CAD-generated drawing is a representation of a physical object, the method further comprising: generating a model of simulation space from the corrected CAD-generated drawing, the model of simulation space comprising a lattice structure represented as a collection of voxels, wherein the voxels have an appropriate resolution for accounting for the surface of the physical object; and Fluid flow is simulated in the simulation space by the one or more computer systems.
11. A system for identifying gaps in a computer-aided design drawing, the system comprising: one or more processing devices; a memory operably coupled to the one or more processor devices; as well as One or more storage devices storing operable instructions that, when executed by the one or more processing devices, configure the system to: identifying a first set of points on a first entity in a computer-aided design (CAD) generated drawing of a physical object; identifying a second set of points on a second entity in the CAD design; A gap between the first set of points and the second set of points is determined by applying a Delaunay mesh of tetrahedrons of the first set of points and the second set of points to the gap between the first solid and the second solid to determine a volume of the gap.
12. The system of claim 11, wherein the system configured to determine the volume of the gap is further configured to: A tetrahedron of the Delaunay mesh is identified, the tetrahedron having a corner that touches each of the first solid and the second solid.
13. The system of claim 12, further configured to: At least one of the tetrahedrons of the Delaunay mesh is excluded from the volume based on the length of the edge that touches both the first solid and the second solid.
14. The system of claim 12, further configured to: At least one tetrahedron is excluded from the volume based on a vertex angle of an isosceles triangle, wherein a base of the isosceles triangle is a side of the tetrahedron and one side of the isosceles triangle is perpendicular to a surface of the first solid.
15. The system of claim 11, further configured to: At least the gaps in the CAD generated drawing that are classified as significant are filled with a fill shape that is a union of multiple entities that meet user-defined criteria for filling the gaps to provide a corrected CAD generated drawing.
16. The system of claim 15, wherein: The corrected CAD-generated drawing is a representation of a physical object, wherein the system is further configured to: generating a model of a simulation space from the corrected CAD-generated drawing, the model of the simulation space comprising a lattice structure represented as a collection of voxels, wherein the voxels have an appropriate resolution for accounting for the surface of the physical object; as well as Fluid flow is simulated in the simulation space.
17. A non-transitory hardware storage device for identifying a gap in a computer-aided design drawing, the non-transitory hardware storage device comprising operable instructions that, when executed by a system, cause the system to: identifying a first set of points on a first entity in the CAD design; identifying a second set of points on a second entity in the CAD design; A gap between the first set of points and the second set of points is determined by applying a Delaunay three-dimensional tetrahedral mesh of the first set of points and the second set of points to the gap between the first solid and the second solid to determine a volume of the gap.
18. The non-transitory hardware storage device of claim 17, wherein: The instructions for determining the volume of the gap also include instructions for: A tetrahedron of the Delaunay mesh is identified, the tetrahedron having a corner that touches each of the first solid and the second solid.
19. The non-transitory hardware storage device of claim 18, wherein: The instructions for determining the volume of the gap also include instructions for: At least one tetrahedron is excluded from the volume based on the length of the edge that touches both the first solid and the second solid.
20. The non-transitory hardware storage device of claim 18, wherein: The instructions for determining the volume of the gap also include instructions for: At least one tetrahedron is excluded from the volume based on a vertex angle of an isosceles triangle, wherein a base of the isosceles triangle is a side of the tetrahedron and one side of the isosceles triangle is perpendicular to a surface of the first solid.
