A computer system that uses surface algorithms to simulate physical processes

By using a novel slip algorithm in the lattice Boltzmann method, the zero tangential momentum flux is achieved by using the interaction of all surface elements with fluid domain particles, and the noise and stability in high-speed flow simulation in the prior art are solved. Problem, improving the accuracy of fluid flow simulation and the stability of boundary layer.

CN113935254BActive Publication Date: 2024-12-13DASSAULT SYSTEMS AMERICAS CORP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202110716829.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-06-29
Filing Date
2021-06-28
Publication Date
2024-12-13
Estimated Expiration
2041-06-28

AI Technical Summary

Technical Problem

The existing lattice Boltzmann method simulates fluid flow, especially for the high-speed flow of smooth and streamlined bodies, has high noise problems and increased boundary layer thickness, which affects the simulation accuracy, and at the same time, the stability range is insufficient, which limits the Simulation capability of higher speed fluid flow.

Method used

Using a novel slip algorithm, the surface dynamics of zero tangential momentum flux is realized through the interaction between all surface elements and fluid domain particles, and the incoming distribution function is converted into an outgoing distribution function to ensure that the accurate boundary conditions are met. Add momentum flux to improve simulation accuracy.

Benefits of technology

It significantly reduces the fluid volume noise near the surface, improves the accuracy and stability of the boundary layer, and supports higher velocity fluid flow simulation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113935254B_ABST
    Figure CN113935254B_ABST
Patent Text Reader

Abstract

The present disclosure relates to computer systems for simulating physical processes using surface algorithms. Computer-implemented techniques for simulating elements of fluid flow are described. These techniques include storing a state vector of a plurality of voxels in a memory, the state vector including a plurality of entries corresponding to a particular momentum state among a plurality of possible momentum states at the voxel; storing a representation of at least one surface in the memory, the size and orientation of the at least one surface being independent of the size and orientation of the voxel; performing an interaction operation on the state vector, the interaction operation modeling the interaction between elements of different momentum states; performing a surface interaction operation on the representation of the surface, the surface interaction operation modeling the interaction between the surface and substantially all elements of the voxel; and performing a move operation on the state vector to reflect the movement of the element to a new voxel.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present description relates to simulating physical processes, such as fluid flow. Background Art

[0002] The Lattice Boltzmann Method (LBM) is used to simulate a variety of complex fluid flows around various geometries, such as cars and airplanes. One of the key parts of the overall solver is its algorithm for handling boundary conditions, i.e., the dynamics of the LBM particle distribution at the edge of the fluid computational domain, such as near the surface of a solid wall. How well this algorithm is formulated has a direct impact on the accuracy of the resulting simulation.

[0003] US Patent 5,848,260 describes a new technique for volume-based formulation (the '260 sliding algorithm) that ensures accurate conservation of mass and accurate enforcement of momentum flux across boundary surfaces. Summary of the invention

[0004] While the patented method has been a great success, it has some limitations. For example, the resulting fluid volume near the wall exhibits higher than desired artificial noise. This artifact manifests as effective surface roughness, resulting in increased numerical dissipation and a thicker than desired boundary layer. This can adversely affect the next level of accuracy of the simulation, especially for very smooth and streamlined bodies. Second, the stability range of the patented process is not high enough, thus limiting its ability to simulate higher speed fluid flows.

[0005] The process or sliding algorithm described in the '260 patent is based on a volume representation of a lattice Boltzmann fluid domain and a surface representation. In the '260 patent, a surface is described as a collection of surface elements each having a specific surface area and surface normal. In the '260 patent, boundary conditions are implemented through the interaction of adjacent surface elements with particles in the fluid domain.

[0006] However, in the novel sliding algorithm discussed in this paper, the boundary conditions are provided by the interaction of all surface elements with particles in the fluid domain, as defined by the following three basic processes:

[0007] The incoming distribution functions (corresponding to those particles moving toward the boundary surface) are gathered from the fluid domain near the boundary surface according to a so-called parallelogram / parallelepiped. Surface dynamics involves transforming the collection of incoming distribution functions into a collection of outgoing distribution functions (corresponding to those particles reflected from the boundary surface) that satisfy specific boundary conditions for mass and momentum flux through the boundary. The outgoing distribution functions are distributed back to the fluid domain near the boundary according to the parallelogram / parallelepiped.

[0008] This approach significantly addresses the limitations noted above. While the general framework of the new approach is similar to that of the '260 patent, there are significant changes to the surface dynamics that transform a set of incoming distribution functions into a set of outgoing distributions. More specifically, the processing used in the surface dynamics is significantly changed in order to achieve zero momentum flux through the surface. Achieving exactly zero tangential momentum flux is fundamental to an accurate boundary condition algorithm so that any specific amount of momentum flux can then be accurately added. This change helps overcome the long-standing limitations noted above.

[0009] According to one aspect, a computer-implemented method for simulating an element of fluid flow comprises: storing a state vector of a plurality of voxels in a memory, the state vector comprising a plurality of entries corresponding to a particular momentum state among a plurality of possible momentum states at the voxel; storing a representation of at least one surface in the memory, the size and orientation of the at least one surface being independent of the size and orientation of the voxel; performing an interaction operation on the state vector, the interaction operation modeling the interaction between elements of different momentum states; performing a surface interaction operation on the representation of the surface, the surface interaction operation modeling the interaction between the surface and substantially all elements of the voxel; and performing a move operation on the state vector to reflect the movement of the element to a new voxel.

[0010] According to additional aspects, a data processing system for simulating elements of fluid flow, the data processing system comprising instructions for causing the data processing system to: store in a memory a state vector for a plurality of voxels, the state vector comprising a plurality of entries corresponding to a particular momentum state among a plurality of possible momentum states at the voxels; store in the memory a representation of at least one surface, the at least one surface having a size and orientation independent of the size and orientation of the voxels; perform an interaction operation on the state vector, the interaction operation modeling interactions between elements of different momentum states; perform a surface interaction operation on the representation of the surface, the surface interaction operation modeling interactions between the surface and substantially all elements of the voxel; and perform a move operation on the state vector to reflect movement of the element to a new voxel.

[0011] According to additional aspects, a non-transitory computer-readable medium stores a computer program product for simulating elements of fluid flow, the computer program product comprising instructions for causing a data processing system to: store in a memory a state vector for a plurality of voxels, the state vector comprising a plurality of entries corresponding to a particular momentum state among a plurality of possible momentum states at the voxels; store in the memory a representation of at least one surface, the size and orientation of the at least one surface being independent of the size and orientation of the voxels; perform an interaction operation on the state vector, the interaction operation modeling the interaction between elements of different momentum states; perform a surface interaction operation on the representation of the surface, the surface interaction operation modeling the interaction between the surface and substantially all elements of the voxel; and perform a move operation on the state vector to reflect the movement of the element to a new voxel.

[0012] One or more of the above aspects may include one or more of the following features among those described herein.

[0013] The instructions for performing the surface interaction operation include instructions for performing the following operations: aggregating elements from a first set of at least one voxel that interacts with the face element, modeling the interactions between the aggregated elements and all face elements to produce a set of surface interaction elements, and dispersing the surface interaction elements to a second set of at least one voxel that interacts with the face element. The entries of the state vector represent the density of elements in a particular momentum state per unit volume of the voxel. The state vector includes one or more of a plurality of integer and / or floating point values ​​representing the density of elements in a particular momentum state per unit volume and having a plurality of possible values.

[0014] Surface interaction operations are performed using one or more of integer values ​​and / or floating point values, and wherein the surface interaction operations are performed using values ​​representing real numbers. Surface interaction operations are performed using integers and / or floating point numbers. The surface interaction operations include representing voxels that intersect the surface as local voxels. The representation of at least one surface includes a plurality of facets, the size and orientation of the plurality of facets being independent of the size and orientation of the voxels, and the plurality of facets representing at least one surface; and also includes modeling interactions between facets and elements of at least one voxel in the vicinity of the facets.

[0015] An element represents a particle of a fluid, while a surface represents at least one surface over which the fluid flows.

[0016] Performing a surface interaction operation involves computing the difference between the incoming distribution and the Boltzmann distribution, determining the combined momentum from all state vector differences, and generating an outgoing distribution based on the determined differences.

[0017] One or more of the above aspects may provide one or more of the advantages disclosed herein.

[0018] In addition to handling boundary conditions on solid wall surfaces, the sliding algorithm can also be used to handle fluid boundaries between domains of two different lattice Boltzmann solvers and between two different reference frames. Unlike solid walls, the mass flux across the boundary is generally non-zero. In addition, the momentum flux contains additional terms representing the convection of the flow from one domain to the other. All of this involves a simple but non-trivial extension of the previous sliding algorithm for solid surfaces ('260).

[0019] Other features and advantages of the invention will be apparent from the following detailed description of the preferred embodiments, and from the claims. BRIEF DESCRIPTION OF THE DRAWINGS

[0020] Figure 1 A system for simulating fluid flow that includes novel surface dynamics transformations is depicted.

[0021] Figure 2 A flow chart showing the operation of formulating a lattice Boltzmann model simulation with surface dynamics transformations is depicted.

[0022] Figure 3 A flow chart showing simulation operations using a lattice Boltzmann model with surface dynamical transformations is depicted.

[0023] Figure 4 A flow chart showing dynamic conversion is depicted.

[0024] 5 and 6 illustrate velocity components of two LBM models represented in Euclidean space (prior art).

[0025] Figure 7 is a flow chart of the process followed to simulate the system using the physical process of the calibrated CAD drawing.

[0026] FIG. 8 is a perspective view of a microblock (prior art).

[0027] FIG. 9A-FIG. 9B is Figure 1 Illustration of the lattice structure used in the system (prior art).

[0028] 10 and 11 illustrate variable resolution technology (prior art).

[0029] FIG. 12 illustrates the movement of particles (prior art).

[0030] FIG. 13 illustrates the area affected by bins of a surface (prior art).

[0031] Fig.14A flow chart illustrating the novel surface dynamics.

[0032] 15 is a flow chart of a process for performing surface dynamics (prior art).

[0033] The details of one or more embodiments of the invention are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the invention are apparent from the description and drawings, and from the claims. DETAILED DESCRIPTION

[0034] One method for simulating fluid flow is the so-called lattice Boltzmann model (LBM). In a physical process simulation system based on the LBM, the fluid flow is represented by the distribution function values ​​evaluated at a set of discrete velocities using the well-known lattice Boltzmann equation (see Equation 1 below) that describes the time evolution of the distribution function. The distribution function involves two processes, the flow transport process and the collision process.

[0035] The surface dynamics maps / converts the set of "incoming" particle distributions into the set of "outgoing" particle distributions in order to achieve an exact zero tangential momentum flux boundary condition. As mentioned above, it is this particular portion that is significantly different from the '260 patent. Before we describe the specific algorithmic differences in the surface dynamics step below, let's first outline the concept of surface dynamics below.

[0036] At each surface element, let f i in represents the incoming particle distribution function obtained from the aggregation step. It is related to the velocity value c pointing towards the surface per unit volume in the space near the surface element. i (Right now, ) corresponds to the number of particles, where represents the unit normal vector of the surface element pointing toward the fluid domain. The entire set of incoming distributions includes all possible c i Value, that is,

[0037] Surface dynamics determines the value of the "outgoing" distribution function at a surface element based on the known value of the "incoming" distribution function. The "outgoing" distribution function f i out The velocity c per unit volume of space near the surface points away from the surface i (Right now, ) corresponds to the number of particles.

[0038] Symbolically, the surface dynamics is defined as the following logical transformation,

[0039]

[0040] Where the left side of Equation 1 above is the set of incoming distribution functions obtained through the aggregation step, and the right side of Equation 1 is the set of outgoing distribution functions, whose values ​​are determined via the surface dynamics step. There are two basic fluxes through the boundary surface. These are the mass and momentum fluxes defined by the following mathematical expressions.

[0041] Mass flux,

[0042]

[0043] and momentum flux,

[0044]

[0045] where A is the area of ​​the surface element.

[0046] Generally, the fluid boundary conditions are defined so that the mass and momentum P obey certain specified values ​​on the boundary surfaces of the fluid solver. In particular, since particles cannot penetrate solid walls, a zero mass flux condition is enforced Zero tangential momentum flux through the surface is equivalent to having

[0047] On a solid wall, this is equivalent to having a frictionless boundary condition. Here, is any vector tangent to a surface element, so

[0048] The surface dynamics in the sliding algorithm is a relationship that transforms the value of the incoming distribution function into the value of the outgoing distribution so that two flux conditions with specified values ​​are satisfied. Having achieved the zero mass flux condition and the zero tangential momentum flux condition, the remaining process for satisfying the overall mass and momentum flux conditions with specified values ​​is the same between the '260 patent and the new method and is therefore not discussed here.

[0049] Since there are more distribution functions than two flux conditions, the value of the outgoing distribution is not unique. In fact, the '260 patent and the current method give different values ​​due to their differences in the relationship that relates the incoming distribution function to the outgoing distribution function.

[0050] Surface dynamics algorithm for zero tangential momentum flux

[0051] The specific relationship that satisfies zero mass flux and zero tangential momentum flux in the '260 patent is given by the following formula,

[0052]

[0053] where i* is the direction of the odd or even lattice velocity to i, that is, Balanced distribution f ieq and The calculation of is based on sampled values ​​of density and velocity. A complete description of this calculation is specified in the '260 patent.

[0054] For example, for the isothermal LBM solver, the equilibrium distribution is given by Equation 5

[0055]

[0056] where w i and T 0 are known constants in the lattice Boltzmann model. Here the density ρ and velocity u is sampled from the fluid domain near the surface. In addition, ρ is rescaled to satisfy the zero mass flux condition by satisfying the following relation:

[0057]

[0058] Substituting the expression (Equation 4) together with (Equation 5) into the definition of momentum flux (Equation 3), we can show that Therefore, the momentum flux along the tangential direction is is zero.

[0059] Here the quantity p = ρT 0 denotes the value of the pressure on the surface. More general boundary conditions can be implemented by adding appropriate mass and momentum fluxes on top of the zero mass and zero tangential momentum flux conditions described here.

[0060] A notable feature of the '260 patent formulation is its outgoing distribution f i out With the incoming distribution f i in There is a direct one-to-one dependence of , as demonstrated in equation (4). This is now understood to be the primary source of at least some of the defects discussed previously.

[0061] Reference now Figure 1 , a system 10 for performing lattice Boltzmann (LB) based simulations includes a novel surface dynamics transformation 34b. The system 10 in this embodiment is based on a client-server or cloud-based architecture and includes a server system 12 implemented as a massively parallel computing system 12 (standalone or cloud-based) and a client system 14 coupled via a network 15. 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.

[0062] Although Figure 1Grid preparation engine 32 is shown in memory 18, but grid preparation engine 32 may be a third-party application executing on a different system than server 12. Regardless of whether grid preparation engine 32 executes in memory 18 or on a different system than server 12, grid preparation engine 32 receives user-supplied grid definition 30 and grid preparation engine 32 prepares the grid and sends (and or stores) the prepared grid to simulation engine 34.

[0063] The simulation engine 34 includes a collision interaction module 34a including novel surface dynamics transformations 34b, boundary modules 34c and advection particle collision interaction modules 34d. The system 10 accesses a data repository 38 storing 2D and / or 3D grids (Cartesian and / or curvilinear), coordinate systems and libraries.

[0064] Reference now Figure 2 , a process 40 for simulating fluid flow near a representation of a physical object is shown. In the example to be discussed herein, the physical object is an airfoil. However, the use of an airfoil is merely illustrative, as the physical object can be of any shape, and in particular can have (one or more) planar and / or curved surfaces. The process 40 receives 42 from a client system 14 or retrieves a mesh (or grid) for the physical object being simulated from a data repository 38, for example. In other embodiments, an external system or server 12 generates a mesh for the physical object being simulated based on user input. The process precomputes 44 geometric quantities based on the retrieved mesh, and performs a dynamic lattice Boltzmann model simulation 46 using the precomputed geometric quantities corresponding to the retrieved mesh. The lattice Boltzmann model simulation includes a simulation 46 of the evolution of a particle distribution, which includes surface dynamics transformations, boundary modeling, and particle advection to the next cell in the LBM mesh.

[0065] refer to Figure 3 , the simulation process 46 is based on a modified lattice Boltzmann process (LBp) (e.g., adapted for novel surface dynamical transformations 34b ( Figure 1 )) to simulate the evolution of particle distribution. Process 46 (see Figure 2 ) performs collision operations 46a, dynamically transforms the results of all collision operations for all particles 46b, followed by boundary modeling 46c, and particle advection 46c to the next cell in LBM space.

[0066] Reference now Figure 4, the simulation process 46 that simulates the time evolution of particles performs the usual conventional collision operation 46a, boundary modeling 46c, and advection 46d processes. However, the conversion of a set of incoming particle distributions into a set of outgoing particle distributions as described in the '260 patent is replaced by a dynamic conversion process 46b that uses the results of all incoming particle distributions to formulate each set of outgoing particle distributions. The dynamic conversion 46b includes collecting 52 a set of all incoming distributions from a grid position from the collision operation, rather than collecting a set of incoming distributions from adjacent grid positions. This new formulation avoids the one-to-one dependency in the '260 patent described above and replaces this dependency so that each "outgoing" distribution function 54 depends on all "incoming" distributions.

[0067] Instead of Equation 4, the new relationship given in the novel method is defined by the following mathematical formula

[0068] f i out =f i eq -δf i (Equation 7)

[0069] where δf i is defined as

[0070]

[0071] The quantity h is defined as

[0072]

[0073] In (Equation 9), the equilibrium distribution is defined in the same way as in (Equation 5). i eq In addition to applying density rescaling to satisfy the same mass flux constraint given by (Eq. 6) in the construction of , we require in the new formulation an additional constraint on the tangential part of the equilibrium momentum flux,

[0074]

[0075] The unit vector is parallel to the sampling velocity direction u. Since the latter is projected onto the surface elements, therefore The constraint (Eq. 10) can be implemented by rescaling the magnitude of u.

[0076] As with the '260 patent method, it can be shown that the new method defined by (Eq. 7)-(Eq. 9) also achieves the boundary conditions of zero mass and zero tangential momentum flux.

[0077] Although the steps seem more complicated, the main difference of the new formulation is that it avoids the one-to-one relationship between the outgoing distribution and the incoming distribution. In fact, as shown in (Equation 7)-(Equation 9), the outgoing distribution f is obtained by summing the moments of all incoming distributions expressed in (Equation 9). i out Depends on all incoming distributions.

[0078] The new formulation can significantly overcome the above mentioned deficiencies and give less noisy surfaces and support higher fluid velocities near boundaries.

[0079] Detailed Example

[0080] Below Figure 7 In the process discussed in, CAD drawings are used to describe the flow simulation process, wherein the simulation space is configured with the identified void spaces. In the previous Figures 5 and 6 and Figures 8, 9A-9B, Figures 10 and 11 and Figures 12, 13 and 15, each of these figures is marked as prior art because these figures appear in the patents cited above.

[0081] However, the figures appearing in the above-referenced patent do not take into account any modifications to the flow simulation using the dynamic transformation process 46b because the process described herein is not described in the above-referenced patent.

[0082] Model simulation space

[0083] In the physical process simulation system based on LBM, the fluid flow is composed of a set of discrete velocity c i The distribution function value f evaluated at i The dynamics of the distribution function is governed by Equation I.1

[0084]

[0085] where f i eq is called the equilibrium distribution function and is defined as:

[0086]

[0087] Equation (I.1) is the well-known lattice Boltzmann equation, which describes the distribution function f iThe time evolution of . The left side shows the change in distribution due to the so-called "streaming process". A streaming process is when a pocket of fluid starts at a grid location and moves to the next grid location along one of several velocity vectors. At this point, a "collision factor" is calculated, i.e., the effect of nearby pockets of fluid on the starting pocket of fluid. Fluid can only move to one other grid location, so the velocity vectors must be chosen so that all components of all velocities are multiples of a common velocity.

[0088] The right side of the first equation is the "collision operator" mentioned above, which represents the change in the distribution function due to collisions between fluid pockets. A specific form of the collision operator is the Bhatnagar, Gross, and Krook (BGK) operator. The collision operator forces the distribution function to a prescribed value given by the second equation as an "equilibrium" form.

[0089] The BGK operator is constructed from the following physical argument: no matter what the details of the collision are, the distribution function is close to the distribution function given by {f eq (x,v,t)} gives a well-defined local equilibrium:

[0090]

[0091] where the parameter τ represents the characteristic relaxation time for reaching equilibrium via collisions. When dealing with particles (e.g., atoms or molecules), the relaxation time is usually taken as a constant.

[0092] From this simulation, conventional fluid variables such as mass p and fluid velocity u are obtained as simple summations in equation (I.3).

[0093]

[0094] where ρ, u and T are the fluid density, velocity and temperature, respectively, and D is the dimension of the discrete velocity space (not necessarily equal to the physical space dimension).

[0095] Due to symmetry considerations, the set of velocity values ​​is chosen so that they form certain lattice structures when spanned in configuration space. The dynamics of such discrete systems obeys an LBE of the form

[0096] f i (x+c i , t+1)-f i (x, t) = C i (x, t)

[0097] The collision operator is usually in the BGK form as described above. By properly choosing the equilibrium distribution form, it can be shown theoretically that the lattice Boltzmann equation produces the correct fluid dynamics and thermofluid dynamics. That is, from f i The fluid dynamic moments derived from (x, t) obey the Navier-Stokes equations on a macroscopic scale. These moments are defined by equation (I.3) above.

[0098] c i and w i The collective values ​​of define the LBM model. The LBM model can be efficiently implemented on scalable computer platforms and runs with high robustness to time-unstable flows and complex boundary conditions.

[0099] 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 used. 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 compressibility effects in a flow is measured by the ratio of a characteristic velocity, called the Mach number, to the speed of sound.

[0100] A general discussion of LBM-based simulation systems is provided below, which include dynamic transformation 46b to perform fluid flow simulations. For further explanation of LBM-based physical process simulation systems, the reader is referred to the US patents incorporated by reference above.

[0101] 5, 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 is not moving; three groups of four velocities represent particles that are moving 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-axis or y-axis of the lattice; and two groups of four velocities represent particles that are moving at a normalized velocity (r) (240-243) or twice the normalized velocity (2r) (250-253) relative to both the x and y lattice axes.

[0102] Referring to Figure 6, a second model (3D-1) 260 is illustrated, 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 is not moving; three sets of six velocities represent particles that are moving 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-axis, y-axis, or z-axis of the lattice; eight velocities represent particles that are moving at a normalized velocity (r) relative to all three of the x, y, z lattice axes; and twelve velocities represent particles that are moving at twice the normalized velocity (2r) relative to two of the x, y, z lattice axes.

[0103] 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 is not moving (group 1); three groups of six velocities represent particles that are moving 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-axis, y-axis, or z-axis of the lattice (groups 2, 4, and 7); three groups of eight velocities represent particles that are moving 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).

[0104] For the two-dimensional model 2D-2, among the 37 velocities, one velocity represents a particle that is not moving (Group 1); three groups of four velocities represent particles that are moving 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-axis or y-axis of the lattice (Groups 2, 4, and 7); two groups of four velocities represent particles that are moving at a normalized velocity (r) or twice the normalized velocity (2r) relative to both the x and y lattice axes; eight velocities represent particles that are moving at a normalized velocity (r) relative to one of the x and y lattice axes and at twice the normalized velocity (2r) relative to the other; and eight velocities represent particles that are moving at a normalized velocity (r) relative to one of the x and y lattice axes and at three times the normalized velocity (3r) relative to the other.

[0105] The LBM model described above provides an efficient and robust discrete velocity dynamic model for a specific class of numerical simulations of flows in both two and three dimensions. Such a model includes a specific set of discrete velocities and weights associated with these velocities. These velocities coincide with lattice points of Cartesian coordinates in velocity space, which facilitates accurate and efficient implementation of discrete velocity models, particularly those known as lattice Boltzmann models. Using such a model, flows can be simulated with high fidelity.

[0106] refer to Figure 7 , describes a physical process simulation system operating according to process 270 to simulate a physical process such as fluid flow. Prior to flow simulation, the simulation space is modeled (272) as a collection of voxels using the CAD drawing discussed above. The simulation space is generated using a computer-aided design (CAD) program and a gap correction process of the CAD-generated drawing. For example, the CAD program can be used to draw an airfoil body located in a wind tunnel.

[0107] 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 (ν), the characteristic length of objects in the flow (L), and the characteristic velocity of the flow (u):

[0108] Re=uL / v Equation (I.4)

[0109] 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 region of an object (e.g., the side mirror of a car) is of interest, the resolution of the simulation can be increased, or a region of increased resolution can be used around the region of interest. The size of the voxel decreases as the resolution of the lattice increases.

[0110] The state space is represented as fi (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).

[0111] The number of states is determined by the number of possible velocity vectors within each energy level. A velocity vector is an integer linear rate in a space with three dimensions x, y, and z. For multi-genus simulations, the number of states increases.

[0112] 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 Its "velocity" in each of the three dimensions is indicated as follows:

[0113] c i =(c ix , c iv , c iz ) Equation (I.5)

[0114] 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.

[0115] 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).

[0116] 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.

[0117] 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 Ni (n), where n represents the relative position of the lattice site in the microblock and n∈{0,1,2,...,7}.

[0118] The microblocks are shown in FIG8 .

[0119] 9A and 9B, the surface S (FIG. 9A) is represented as a surface element F in the simulation space (FIG. 9B). α A collection of:

[0120] S={F α Equation (I.6)

[0121] where α is an index that enumerates a particular facet. Facets are not restricted to voxel boundaries, but are usually approximately equal to or slightly smaller in size than the voxels adjacent to the facet, so that the facet affects a relatively small number of voxels. For the purpose of implementing surface dynamics, facets are assigned properties. 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 panels and volumes.

[0122] Referring to FIG10 , different levels of resolution may be used in different regions of the simulation space to improve processing efficiency. Typically, the region 320 surrounding the object 322 is of greatest interest and is therefore simulated at the highest resolution. Since the effect of viscosity decreases with distance from the object, regions 324, 326 at increasing distances from the object 322 are simulated using reduced levels of resolution (i.e., expanded voxel volumes).

[0123] 11, a lower level of resolution may be used to simulate an area 340 around less important features of an object 342, while the highest level of resolution may be used to simulate an area 344 around the most important features (e.g., the front and back surfaces) of the object 342. An outer area 346 may be simulated using the lowest level of resolution and the largest voxels.

[0124] C. Identify the voxels affected by the surface element

[0125] Referring again to FIG. 11 , once the simulation space has been modeled ( 272 ), the voxels that are affected by one or more facets are identified ( 274 ). Voxels may be affected by facets in a number of ways. First, a voxel that is intersected by one or more facets is affected in that the voxel has a reduced volume relative to unintersected 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 surface element (i.e., the portion that can be occupied by the fluid or other material for which flow is simulated). For non-intersecting voxels, P f (x) is equal to 1.

[0126] Voxels that interact with one or more panels by transferring particles to or receiving particles from the panel are also identified as panels affected by the panel. All voxels intersected by the panel will include at least one state for receiving particles from the panel and at least one state for transferring particles to the panel. In most cases, additional voxels will also include such states.

[0127] Referring to FIG12 , for a non-zero velocity vector c i For each state i, the face F α From the parallelepiped G iα The area defined by the parallelepiped G receives particles or transmits particles to it. iα With the unit normal n of the surface element α and the velocity vector c i The vector dot product (|c i n i |) and the surface area A of the bin α Define the base so that the parallelepiped G iα The volume V iα equal:

[0128] V ia =|c i n a |A a Equation (I.7)

[0129] Panel F α The velocity vector in the state points to the surface element (|c i n i |<0) from the volume V iα Receive the particle, and the velocity vector in the state points away from the surface element (|c i n i |>0) to teleport particles to this region. As will be discussed below, when another facet occupies the parallelepiped G iα, modify the expression when the shape is part of a convex feature (which may occur near non-convex features such as internal corners).

[0130] Panel F α The parallelepiped G iα The number of voxels or portions thereof depends on the size of the facet relative to the size of the facet, the energy of the state, and the orientation of the facet relative to the lattice structure. The number of voxels affected increases with the size of the facet. Therefore, as described above, the size of the facet is typically selected to be approximately equal to or smaller than the size of the voxels located near the facet.

[0131] The parallelepiped G of the volume element N(x) iα The overlapping portion is defined as V iα (x). Using this term, in the volume element N(x) and the surface element 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)):

[0132] Γ ia (x) = N i (x)V ia (x) Equation (I.8)

[0133] When the parallelepiped G iα When intersected by one or more polygons, the following conditions are true:

[0134] V ia =∑V ia (x)+∑V ia (β) Equation (I.9)

[0135] 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:

[0136] V ia =∑V ia (x) Equation (I.10)

[0137] D. Execute simulation

[0138] Once the voxels affected by one or more facets are identified (274), a timer is initialized to begin the simulation (276). During each time increment of the simulation, the movement of particles from voxel to voxel is simulated by an advection phase (278-286) that illustrates the interaction of the particles with the surface facets. Next, a collision phase (288) simulates the interaction of the particles within each voxel. Thereafter, the timer is incremented (290). If the incremented timer does not indicate that the simulation is complete (294), the advection phase and the collision phase (278-200) are repeated. If the incremented timer indicates that the simulation is complete (202), the results of the simulation are stored and / or displayed (204).

[0139] 1. Surface boundary conditions

[0140] In order to correctly model the interaction with the surface, each bin satisfies four boundary conditions. First, the combined mass of particles received by the bin equals the combined mass of particles transmitted by the bin (i.e., the net mass flux to the bin equals zero). Second, the combined energy of particles received by the bin equals the combined energy of particles transmitted by the bin (i.e., the net energy flux to the bin equals zero). These two conditions can be met by requiring the net mass flux at each energy level (i.e., energy level one and energy level two) to equal zero.

[0141] The other two boundary conditions are related to the net momentum of the particle interacting with the surface element. For a surface without surface friction (referred to herein as a slippery surface), the net tangential momentum flux is equal to zero and the net normal momentum flux is equal to the local pressure at the surface element. Therefore, the combined received momentum and the combined transmitted momentum are the normal to the surface element n. α The perpendicular components (i.e., tangential components) are equal, and the combined received momentum and the combined transmitted momentum are related to the normal n of the surface element. α The difference between the parallel components (ie, normal components) is equal to the local pressure at the surface element. For non-slip surfaces, the friction of the surface reduces the combined tangential momentum of the particles transmitted by the surface element relative to the combined tangential momentum of the particles received by the surface element by a factor related to the amount of friction.

[0142] 2. Aggregation from voxels to surfaces

[0143] To simulate the interaction between particles and the surface, particles are gathered from the volume elements and provided to the surface elements (278). As noted above, the volume element N(x) and the surface element F α The flux of particles in state i is:

[0144] Γ iα (x) = N i (x)V iα (x) Equation (I.11)

[0145] 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:

[0146] Γ iαV→F =∑ X Γ iα (x) = ∑ X N i (x)V iα (x) Equation (I.12)

[0147] Only its V iα (x) The voxels with non-zero values ​​are summed. As noted above, the size of the bins is chosen so that V iα (x) has non-zero values ​​only for a small number of voxels. iα (x) and P f (x) can have non-integer values, so Γ α (x) is stored and processed as a real number.

[0148] 3. Move from panel to panel

[0149] Next, the particle moves between the bins (280). α The incoming state (c i n α <0) parallelepiped G iα 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 β The state i of the generated particle is a part of the particle. This relationship is shown in Figure 15, where the parallelepiped G iα The quilt element F β The intersection 380 is equal to the parallelepiped G iβ The quilt element F α The intersecting portion 382. 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:

[0150] Γ iα (β, t-1) = Γ i (β)V iα (β) / V iα Equation (I.13)

[0151] where Γ 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:

[0152] Γ iαF→F =∑ β Γ iα (β)=∑ β Γ i (β, t-1)V iα (β) / V iα Equation (I.14) and the total flux of particles of state i into the bin is:

[0153] Γ iIN (α) = Γ iαF→F +Γ iαF→F =∑ x N i (x)V iα +∑ β Γ i (β, t-1)V iα (β) / V iα Equation (I.15)

[0154] 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. For c i n α < 0, the input states of the bin distribution function N(α) are set equal to the flux of particles entering those states divided by the volume V iα :

[0155] N i (α) = Γ iIN (α) / V iα Equation (I.16)

[0156] The bin distribution function is a simulation tool used to generate output flux from bins and does not necessarily represent actual particles. To generate accurate output flux, values ​​are assigned to the other states of the distribution function. The outward states are populated using the technique described above for populating the inward states, and for c i n α ≥0:

[0157] N i (α) = Γ iOTHER (α) / Viα Equation (I.17)

[0158] where Γ iOTHER (α) is the method used to generate Γ iIN (α), but applies the technique to all states except the incoming state (c i n α <0) (c i n α ≥0). In an alternative approach, Γ iOTHER (α) can use Γ from the previous time step iOUT The value of (α) is generated so that:

[0159] Γ iOTHER (α, t) = Γ iOUT (α, t-1). Equation (I.18)

[0160] 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 Γ iOTHER The expression of (α) and V iα appears in the denominator (according to N i (α) expression). Therefore, for the parallel state N i (α) is determined as N i (α) limit, because V iα and V iα (x) is close to zero. At the beginning of the simulation, the values ​​of the states with zero velocity (i.e., the static state and the states (0,0,0,2) and (0,0,0,-2)) are initialized based on the initial conditions of temperature and pressure. These values ​​are then adjusted over time.

[0161] 4. Performing panel surface dynamics

[0162] Next, surface dynamics are performed for each facet to satisfy the boundary conditions discussed above (282). The process 390 for performing surface dynamics for the facets is as follows: Fig.14 Example in.

[0163] During 278, the velocity and density are sampled from the voxel to the surface element F α . Then project the velocity along the surface (i.e. The Boltzmann equilibrium distribution is calculated 392 based on the sampled density and projected velocity, and the density and velocity are scaled to satisfy the constraints specified by equations 6 and 10, respectively. The resulting density and velocity are then used to calculate the new Boltzmann equilibrium distribution (392). The difference between the incoming distribution and the new Boltzmann distribution (394) and the combined momentum (396) of the difference between all incoming states and their corresponding Boltzmann distributions are calculated as follows.

[0164]

[0165] The momentum difference is projected along the tangential direction of the bin (398).

[0166]

[0167] According to the above momentum difference and Boltzmann distribution, by satisfying the zero tangential flux Calculate the outgoing flux to satisfy the perfect slip boundary condition (399)

[0168]

[0169] Taking into account skin friction and other factors, the outgoing flux distribution can be further refined as:

[0170]

[0171] Among them C f is the coefficient of skin friction. A more detailed description of the application of skin friction and the corrections to the different energy levels of the lattice required for perfect mass and energy conservation is given in the '260 patent.

[0172] 5. Move from voxel to voxel

[0173] Reference again Figure 7 , particles move between voxels along a three-dimensional rectilinear lattice (284). This voxel-to-voxel movement is the only movement operation performed on voxels that do not interact with the 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.

[0174] Each of the individual states 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.

[0175] For voxels that do not interact with surfaces, the move operation is computationally very simple. During each time increment, the entire population of the state moves from its current voxel to its destination voxel. At the same time, the particles of the destination voxel move from that voxel to its own destination voxel. For example, a level 1 particle (1,0,0) moving in the +1x and +1y directions moves from its current voxel to a voxel that is +1 in the x direction and 0 for all other directions. The particle ends up at its destination voxel in the same state (1,0,0) as it had before the move. Interactions within the voxel will likely change the particle count of that state based on local interactions with other particles and surfaces. Otherwise, the particle will continue to move along the lattice at the same rate and direction.

[0176] For voxels that interact with one or more surfaces, the move operation becomes slightly more complex. This can result in one or more fractional particles being transferred to the surface element. This transfer of fractional particles to the surface element results in fractional particles remaining in the voxel. These fractional particles are transferred to the voxel occupied by the surface element.

[0177] 13, when part 360 of state i particles of voxel 362 moves to bin 364 (278), the remaining part 366 moves to voxel 368, where bin 364 is located in voxel 368, and state i particles from voxel 368 are directed to bin 364. Therefore, if state fill equals 25 and V iα (x) is equal to 0.25 (i.e., one quarter of the volume element is parallelepiped G iα intersect), then 6.25 particles will move to the surface element F α And 18.75 particles will move to the area defined by 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:

[0178]

[0179] Where N(x) is the source voxel.

[0180] 6. Disperse from surface elements to volume elements

[0181] Next, the outgoing particles from each bin are scattered to the voxels (286). Essentially, this scattering is the inverse of the gathering, which moves 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:

[0182]

[0183] Where P f (x) shows that the volume of some voxels decreases. Thus, for each state i, the direction from the face element to the voxel N (x) The total number of particles is:

[0184]

[0185] After scattering particles from bins to voxels, combining them with particles that have been advected in from surrounding voxels and integerizing the result, it is possible that certain directions in certain voxels may either underflow (become negative) or overflow (exceed 255 in an eight-bit implementation). This will result in gains or losses in 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 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 that has not itself experienced 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 states of the same energy, both mass and energy are corrected when the mass counter reaches zero. Finally, momentum is corrected using a push / pull technique until the momentum accumulator returns to zero.

[0186] 7. Perform fluid dynamics

[0187] Execution Fluid Dynamics(288) Figure 7 This can be called microdynamics or intra-voxel operations. Similarly, the advection process can be called inter-voxel operations. The microdynamics operation described below can also be used to collide particles at the bin to produce a Boltzmann distribution.

[0188] The fluid dynamics are ensured in the lattice Boltzmann equation model by a special collision operator called the BGK collision model. This collision model mimics the dynamics of the distribution in real fluid systems. The collision process can be well described by Eq. 1 and the right-hand side of Eq. 2. After the advection step, the conserved quantities of the fluid system, specifically density, momentum and energy, are obtained from the distribution function using Eq. 3. With these quantities, f in Eq. (2) is completely specified by Eq. (4). eq The equilibrium distribution function pointed out. The weight and velocity vector set c i The choices are listed in Table 1 and together with Equation 2 ensure that the macroscopic behavior obeys the correct fluid dynamics equations.

[0189] Variable resolution

[0190] Variable resolution (as discussed in US 2013 / 0151221 A1) may also be employed, and voxels of different sizes (eg, bold and thin voxels) would be used.

[0191] Embodiments of the subject matter and functional operations described in this specification may be implemented using digital electronic circuits, tangibly implemented 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 modules of computer program instructions 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.

[0192] The term "data processing apparatus" refers to data processing hardware and covers all kinds 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 a dedicated logic circuit system (for example, an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit)). In addition to hardware, the apparatus may optionally include code that generates an execution environment for a computer program (for example, code constituting processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them).

[0193] Computer programs (which may also be referred to or described as programs, software, software applications, modules, software modules, scripts or codes) 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 stand-alone programs or as modules, components, subroutines or another unit suitable for use in 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 holds other programs or data (e.g., one or more scripts stored in a markup language document, in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files storing portions of one or more modules, subroutines or codes)). 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 across multiple sites and interconnected by a data communication network.

[0194] Computers suitable for executing computer programs may be based on general or special purpose microprocessors, or both, or any other kind 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, by way of 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, and CD-ROM and DVD-ROM disks. The processor and memory may be supplemented by, or incorporated in, special purpose logic circuitry.

[0195] Embodiments of the subject matter described in this specification may be implemented in a computing system that includes back-end components (e.g., as a data server) or a computing system that includes middleware components (e.g., an application server) or a computing system that includes front-end components (e.g., a client computer with a web browser or graphical user interface through which a user can interact with implementations of the subject matter described in this specification), or any combination of one or more such back-end components, middleware components, 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).

[0196] 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 therefrom), 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.

[0197] Specific embodiments of the subject matter have been described. Other embodiments are within the scope of the appended 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 or sequential order shown to achieve the desired results. In some cases, multitasking and parallel processing can be advantageous.

Claims

1. A computer-implemented method for simulating an element representing a fluid flow near a surface of a physical object, the method include: storing in a memory a state vector for a plurality of voxels, the state vector comprising a plurality of entries corresponding to a particular momentum state of a plurality of possible momentum states at the voxels; where the entries of the state vector represent the density of elements per unit volume that are in a particular momentum state of the voxel; storing in a memory a representation of at least one surface of a physical object, the size and orientation of the at least one surface of the physical object being independent of the size and orientation of the voxel; wherein said representation of said at least one surface comprises a plurality of facets, each facet of said plurality of facets being assigned a surface property; performing an interaction operation on the state vector, the interaction operation modeling the interaction between elements of different momentum states; A surface interaction operation is performed on the representation of the surface of the physical object, which models the interaction between the surface of the physical object and all elements of the voxel by: Density is collected from the fluid flow near the surface; as well as Rescale the density so that the zero mass flux condition is satisfied on the surface; as well as A move operation is performed on the state vector to reflect the movement of the element to the new voxel.

2. The method of claim 1, wherein the surface interaction operation include: aggregating elements from a first set of at least one voxel that interacts with the surface element; Modeling the interactions between the aggregated elements and all facets to produce a collection of surface interaction elements, and The surface interaction elements are dispersed into a second set of at least one voxel that interacts with the facet.

3. The method according to claim 1, further comprising: include: Collect velocities from fluid flows near a surface.

4. The method of claim 1, wherein the state vector comprises one or more of a plurality of integer and / or floating point values ​​representing a density of elements in a particular momentum state per unit volume and having a plurality of possible values.

5. The method of claim 1, wherein the surface interaction operations are performed using one or more of integer values ​​and / or floating point values, and wherein the surface interaction operations are performed using values ​​representing real numbers. The method of claim 1 , wherein surface interaction operations are performed using integers and / or floating point numbers.

7. The method of claim 1, further comprising: include: Voxels that intersect the surface are represented as local voxels.

8. The method of claim 1, wherein the representation of the at least one surface comprises a plurality of facets, the size and orientation of the plurality of facets being independent of the size and orientation of the voxels, and the plurality of facets representing the at least one surface; and Interactions between a facet and elements of at least one voxel in the vicinity of the facet are modeled.

9. The method of claim 1, wherein the elements represent particles of the fluid and the panels represent at least one surface over which the fluid flows.

10. The method of claim 1, wherein performing a surface interaction operation further comprises: include: Compute the difference between the incoming distribution and the Boltzmann distribution; Determine the combined momentum based on all state vector differences; as well as An outgoing distribution is generated based on the determined differences.

11. A data processing system for simulating an element representing fluid flow near a surface of a physical object, the data processing system comprising instructions for causing the data processing system to: storing in a memory a state vector for a plurality of voxels, the state vector comprising a plurality of entries corresponding to a particular momentum state of a plurality of possible momentum states at the voxels; where the entries of the state vector represent the density of elements per unit volume that are in a particular momentum state of the voxel; storing in a memory a representation of at least one surface of a physical object, the size and orientation of the at least one surface of the physical object being independent of the size and orientation of the voxel; wherein said representation of said at least one surface comprises a plurality of facets, each facet of said plurality of facets being assigned a surface property; performing an interaction operation on the state vector, the interaction operation modeling the interaction between elements of different momentum states; A surface interaction operation is performed on the representation of the surface of the physical object, which models the interaction between the surface of the physical object and all elements of the voxel by: Density is collected from the fluid flow near the surface; as well as Rescale the density so that the zero mass flux condition is satisfied on the surface; as well as A move operation is performed on the state vector to reflect the movement of the element to the new voxel.

12. The data processing system of claim 11, wherein the instructions to perform the surface interaction operation include instructions to: aggregating elements from a first set of at least one voxel that interacts with the surface element; Modeling the interactions between the aggregated elements and all facets to produce a collection of surface interaction elements, and The surface interaction elements are dispersed into a second set of at least one voxel that interacts with the facet.

13. The data processing system of claim 11, wherein the state vector comprises one or more of a plurality of integer and / or floating point values ​​representing a density of elements in a particular momentum state per unit volume and having a plurality of possible values.

14. The data processing system of claim 11, wherein the surface interaction operations are performed using one or more of integer values ​​and / or floating point values, and wherein the surface interaction operations are performed using values ​​representing real numbers.

15. The data processing system of claim 11, wherein the surface interaction operations are performed using integers and / or floating point numbers.

16. The data processing system of claim 11, wherein the instructions to perform the surface interaction operation include instructions to: Voxels that intersect the surface are represented as local voxels.

17. The data processing system of claim 11, wherein the representation of the at least one surface comprises a plurality of facets, the size and orientation of the plurality of facets being independent of the size and orientation of the voxels, and the plurality of facets representing the at least one surface; and the instructions further comprise instructions to: Interactions between a facet and elements of at least one voxel in the vicinity of the facet are modeled.

18. The data processing system of claim 11, wherein the elements represent particles of the fluid and the panels represent at least one surface over which the fluid flows.

19. The data processing system of claim 11, wherein the instructions to perform the surface interaction operation include instructions to: Compute the difference between the incoming distribution and the Boltzmann distribution; Determining a combined momentum based on all state vector differences; and An outgoing distribution is generated based on the determined differences.

20. A non-transitory computer readable medium tangibly storing a computer program product for simulating an element representing fluid flow proximate a surface of a physical object, the computer program product comprising instructions for causing a data processing system to: storing in a memory a state vector for a plurality of voxels, the state vector comprising a plurality of entries corresponding to a particular momentum state of a plurality of possible momentum states at the voxels; where the entries of the state vector represent the density of elements per unit volume that are in a particular momentum state of the voxel; storing in a memory a representation of at least one surface of a physical object, the size and orientation of the at least one surface of the physical object being independent of the size and orientation of the voxel; performing an interaction operation on the state vector, the interaction operation modeling the interaction between elements of different momentum states; wherein said representation of said at least one surface comprises a plurality of facets, each facet of said plurality of facets being assigned a surface property; A surface interaction operation is performed on the representation of the surface of the physical object, which models the interaction between the surface of the physical object and all elements of the voxel by: Density is collected from the fluid flow near the surface; as well as Rescale the density so that the zero mass flux condition is satisfied on the surface; as well as A move operation is performed on the state vector to reflect the movement of the element to the new voxel.

21. The computer readable medium of claim 20, wherein the surface interaction instructions further comprise instructions to: aggregating elements from a first set of at least one voxel that interacts with the surface element; Modeling the interactions between the aggregated elements and all facets to produce a collection of surface interaction elements, and The surface interaction elements are dispersed into a second set of at least one voxel that interacts with the facet.

22. The computer-readable medium of claim 20, wherein the state vector comprises one or more of a plurality of integer and / or floating point values ​​representing a density of elements in a particular momentum state per unit volume and having a plurality of possible values.

23. The computer readable medium of claim 20, wherein the surface interaction operation is performed using one or more of integer values ​​and / or floating point values, and wherein the surface interaction operation is performed using values ​​representing real numbers.

24. The computer readable medium of claim 20, wherein performing surface interaction operations further comprises instructions to: Compute the difference between the incoming distribution and the Boltzmann distribution; Determining a combined momentum based on all state vector differences; and An outgoing distribution is generated based on the determined differences.