A computer system for simulating physical processes using lattice Boltzmann-based scalar transport, which enforces the Galilean invariance of scalar transport.

A Galilean invariant lattice Boltzmann method addresses the limitations of LBM in high-speed flows by using a scalar distribution function, enabling efficient simulation of complex fluid dynamics and scalar quantities.

JP7857077B2Active Publication Date: 2026-05-12DASSAULT SYSTEMS AMERICAS CORP
View PDF 3 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
DASSAULT SYSTEMS AMERICAS CORP
Filing Date
2020-10-29
Publication Date
2026-05-12

AI Technical Summary

Technical Problem

Existing Lattice Boltzmann Methods (LBMs) are limited to low Mach number flows and lack grid-independent solutions, especially in high-speed and supersonic flows, due to their reliance on finite difference-based solvers that compromise localized computation and scalability.

Method used

A Galilean invariant lattice Boltzmann method is developed, using a scalar distribution function that preserves the advantages of LBM by simulating scalar quantities through non-equilibrium post-collision distribution functions, enabling simulations of high-speed and supersonic flows.

Benefits of technology

The method allows for efficient simulation of high-speed and supersonic flows while maintaining localized computation and scalability, supporting the modeling of scalar quantities like temperature, concentration, and density.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007857077000064
    Figure 0007857077000064
  • Figure 0007857077000065
    Figure 0007857077000065
  • Figure 0007857077000066
    Figure 0007857077000066
Patent Text Reader

Abstract

To provide techniques for scalar solvers in computer simulations of a physical process.SOLUTION: A system 10 including a flow solver and a scalar solver includes a server system 12 and a client system 14. The server system 12 includes memory 18, a bus system 22, interfaces 20, and a processing device 24. In the memory 18, there are a mesh preparation engine 32 and a simulation engine 34. The simulation engine 34 includes collision interaction flow particles 34a and collision interaction scalar particles 34a', and evaluates a flow solver 34c for fluid particle collision transport and a scalar solver 34c' for scalar particle transport.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] Claim of priority This application claims priority under Section 119 of the United States Patent Act to U.S. Provisional Patent Application No. 62 / 927,828, filed on 30 October 2019, entitled “Galilean Invariant Lattice Boltzmann Collision Formulation for Scalar Transport in High Speed ​​Flow Simulations,” the entire contents of which are incorporated herein by reference. [Background technology]

[0002] This explanation concerns computer simulations of physical processes, such as physical fluid flow.

[0003] Flows with high Reynolds numbers have been simulated by generating discretized solutions to the Navier-Stokes differential equations by performing high-precision floating-point operations at each of many discrete spatial locations on variables representing macroscopic physical quantities (e.g., density, temperature, flow velocity). Another approach is to replace the differential equations with what is commonly known as a lattice gas (or cellular) automaton, where the macroscopic-level simulation obtained by solving the Navier-Stokes equations is replaced by a microscopic-level model that performs operations on particles moving between sites on a lattice.

[0004] The Lattice Boltzman Method (LBM) has been used for a wide range of industrial applications involving complex geometries. However, in some cases, LBM is often limited to low Mach number flows (or Mach flows), for example, in applications involving slow flows (less than approximately Mach number 0.3). Existing LBM approaches are finite difference-based in solving scalars such as energy or scalar concentration in multiple types of flows. Solver (Use a solver) These finite difference-based Solver This robs the LBM approach of many of its advantages, such as localized computation, high scalability, and grid-independent solutions. [Overview of the project]

[0005] The techniques discussed below overcome many of the fundamental limitations of LBMs for high-speed flows, thus enabling the use of LBMs for simulations across a wide range of applications, including not only low-speed flows (e.g., Mach numbers less than 0.3) but also high-speed flows such as Mach numbers greater than 0.3, and supersonic flows (e.g., Mach numbers greater than 1.0, and hypersonic or at least multiples of Mach number).

[0006] Instead of using the finite difference approach, the technique discussed below provides a further distribution function for scalars, and scalars Solver Use a scalar. Solver The use of is otherwise finite difference based Solver These advantages of the LBM technique are preserved by the use of these functions. These distribution functions are strongly linked to the flow distribution, i.e., these functions are determined by the flow particles. lattice It is carried along the direction.

[0007] In one embodiment, the computer execution method involves a computing system simulating the motion of scalar particles representing scalar quantities in a fluid volume using a scalar lattice velocity set, where the scalar particles are carried by flow particles in the fluid volume, and the motion of the scalar particles causes collisions between the scalar particles; and evaluating a non-equilibrium post-collide scalar distribution function of a specified order that represents the scalar collisions. (To find the value, evaluate) This includes doing.

[0008] The following are some of the other features disclosed herein, which fall within the scope of the embodiments described above.

[0009] The scalar distribution function after a non-equilibrium collision is Galilean invariant. The scalar distribution function after a non-equilibrium collision is related to the relative velocities of flowing particles within the fluid volume. The motion of scalar particles causes collisions between them, leading to the diffusion of scalar quantities into the entire volume.

[0010] The method involves using a computing system to simulate the motion of flow particles representing the volume of a fluid using a flow grid velocity set, simulating that the motion of the flow particles causes collisions between the flow particles, and further comprising evaluating a specified order of non-equilibrium post-collision flow distribution function representing the flow collisions.

[0011] The scalar lattice velocity set, scalar quantity, and non-equilibrium post-collision scalar distribution function are, respectively, the first scalar lattice velocity set, the first scalar quantity, and the first non-equilibrium post-collision scalar distribution function, and the method further comprises simulating on a computer the motion of a second scalar particle representing a second different scalar quantity in a fluid volume, where the second scalar particle is carried by flow particles in the fluid volume, and the motion of the second scalar particle causes collisions between the second scalar particles, and evaluating a second different non-equilibrium post-collision scalar distribution function of a specified order representing the second scalar collision based on the motion of the second scalar particle.

[0012] The non-equilibrium post-collision scalar distribution function preserves the non-equilibrium moment for scalar quantities and eliminates the non-equilibrium moment for scalar quantities of a specified order or higher. The scalar lattice velocity set supports the hydrodynamic motion of scalar particle velocities up to a specified order. The specified order is an exponential value associated with the ratio of fluid velocity to lattice sound velocity, and the lattice velocity set supports exponential values. The specified order can be selected from zero, first, and second order.

[0013] The method further comprises determining the relative particle velocity of a particle at a specific location within a volume of fluid using a flow grid velocity set, wherein the relative particle velocity is the difference between the absolute velocity of the particle at the specific location measured under zero flow of fluid within the volume and the average velocity of the particle at the specific location within the volume, and determining a specified order non-equilibrium post-collision distribution representing the particle collision based on the relative particle velocity.

[0014] For fluid flow in a macroscopic regime, the specified order is the first moment proportional to the scalar gradient. The scalar distribution after a non-equilibrium collision is proportional to the sum of the scalar lattice velocity sets obtained by dividing the Hermitian polynomial by a factorial multiple of the order of the fluid's dimensionless velocity.

[0015] The scalar distribution after a non-equilibrium collision is related to the sum of weighting factors corresponding to the weighting coefficients of the particle distribution function, multiplied by the product of these factors.

[0016] In a further embodiment, the computer system includes one or more processors, memory coupled to one or more processors in an operable manner, and a computer storage device which stores instructions for causing one or more processors to simulate, using a scalar lattice velocity set, the motion of scalar particles representing scalar quantities in a fluid volume, where the scalar particles are carried by flow particles in the fluid volume, the motion of the scalar particles causes collisions between the scalar particles, and a specified order of non-equilibrium post-collision scalar distribution function representing the scalar collisions.

[0017] The scalar distribution function after a non-equilibrium collision is Galilean invariant. The scalar distribution function after a non-equilibrium collision is related to the relative velocities of flowing particles within the fluid volume. The motion of scalar particles causes collisions between them, leading to the diffusion of scalar quantities into the entire volume.

[0018] The computer system further includes instructions for simulating the motion of flow particles representing the volume of a fluid using a flow grid velocity set, simulating that the motion of the flow particles causes collisions between the flow particles, and evaluating a specified order of non-equilibrium post-collision flow distribution function representing the flow collisions.

[0019] The scalar lattice velocity set, scalar quantity, and non-equilibrium post-collision scalar distribution function are, respectively, the first scalar lattice velocity set, the first scalar quantity, and the first non-equilibrium post-collision scalar distribution function, and the computer system further includes instructions for the computer to simulate the motion of a second scalar particle representing a second different scalar quantity in a volume of fluid using a second different scalar lattice velocity set, wherein the second scalar particle is carried by flow particles in the volume of fluid, and the motion of the second scalar particle causes collisions between the second scalar particles; and to evaluate a second different non-equilibrium post-collision scalar distribution function of a specified order representing the second scalar collision based on the motion of the second scalar particle.

[0020] The following are some of the other features disclosed herein, which fall within the scope of the embodiments described above.

[0021] In a further embodiment, a computer program product stored in a non-temporary computer-readable medium includes instructions for causing one or more processors and a system having memory for storing the program to simulate, using a scalar lattice velocity set, the motion of scalar particles representing scalar quantities in a fluid volume, wherein the scalar particles are carried by flow particles in the fluid volume, and the motion of the scalar particles causes collisions between the scalar particles, and to evaluate a specified-order non-equilibrium post-collision scalar distribution function representing the scalar collisions.

[0022] The following are some of the other features disclosed herein, within the scope of the embodiments described above.

[0023] The scalar distribution function after a non-equilibrium collision is Galilean invariant. The scalar distribution function after a non-equilibrium collision is related to the relative velocity of flowing particles within the fluid volume.

[0024] The motion of scalar particles causes collisions between them, resulting in the diffusion of a scalar quantity into the entire volume. The computer program product uses a flow grid velocity set to simulate the motion of flow particles representing the volume of a fluid, and further includes instructions for simulating that the motion of flow particles causes collisions between them, and for evaluating a specified order of non-equilibrium post-collision flow distribution function representing the flow collisions.

[0025] The scalar lattice velocity set, scalar quantity, and non-equilibrium post-collision scalar distribution function are, respectively, the first scalar lattice velocity set, the first scalar quantity, and the first non-equilibrium post-collision scalar distribution function, and the computer system further includes instructions for the computer to simulate the motion of a second scalar particle representing a second different scalar quantity in a volume of fluid using a second different scalar lattice velocity set, wherein the second scalar particle is carried by flow particles in the volume of fluid, and the motion of the second scalar particle causes collisions between the second scalar particles; and to evaluate a second different non-equilibrium post-collision scalar distribution function of a specified order representing the second scalar collision based on the motion of the second scalar particle.

[0026] One or more embodiments may include one or more of the following advantages:

[0027] The techniques disclosed herein can be used in complex fluid flow simulations to solve for fluid flow, as well as simultaneously for solving for scalar quantities such as temperature distribution, concentration distribution, and / or density. In the systems and methods described herein, the modeling of scalar quantities (as opposed to vector quantities) is linked to the modeling of fluid flow based on an LBM-based physical process simulation system. Exemplary scalar quantities that can be simulated include temperature, concentration, and density.

[0028] Other features and advantages will become apparent from the following description, including the drawings, and from the claims. [Brief explanation of the drawing]

[0029] [Figure 1] This is a diagram illustrating a system for simulating fluid flow, including a scalar solver. [Figure 2] This is a flowchart illustrating the operation of the equations for lattice Boltzmann model simulation using a scalar solver. [Figure 3] This flowchart illustrates the simulation operation using the lattice Boltzmann model. [Figure 4] This is a flowchart illustrating the simulation operation using a scalar solver. [Figure 5] This is a flowchart illustrating the process for generating a distribution function for collision transport. [Figure 6] This is a flowchart illustrating the process for generating a scalar solver that can be used in various high-speed fluid simulation applications. [Figure 7] This figure shows the velocity components of two LBM models (conventional technology). [Figure 8] This figure shows the velocity components of two LBM models (conventional technology). [Figure 9] This is a flowchart illustrating the procedure followed by a physical process simulation system. [Figure 10]This is a perspective view of a microblock (conventional technology). [Figure 11A] This is a diagram of a lattice structure (conventional technology). [Figure 11B] This is a diagram of a lattice structure (conventional technology). [Figure 12] This figure shows a variable resolution technique (conventional technology). [Figure 13] This figure shows a variable resolution technique (conventional technology). [Figure 14] This figure shows the region affected by surface facets (conventional technology). [Figure 15] This figure shows the movement of particles from the voxel to the surface. [Figure 16] This diagram shows the movement of particles from surface to surface. [Figure 17] This is a flowchart illustrating the procedure for performing surface dynamics analysis. [Modes for carrying out the invention]

[0030] General approaches to solving scalar problems In the systems and methods described herein, the modeling of scalar quantities (as opposed to vector quantities) is linked to the modeling of fluid flows using LBM-based physical process simulation systems. Exemplary scalar quantities that can be simulated include temperature, concentration, and density.

[0031] For example, automated processing for fluid flow simulation is performed by the simulation engine 34, as described in U.S. Patent Application No. 11 / 463,673, entitled Computer Simulation of Physical Process (currently issued as U.S. Patent No. 7,558,714), which is incorporated herein by reference in its entirety. However, this simulation engine is not a scalar engine for solving scalar quantities such as temperature, concentration, and density. SolverThis also includes.

[0032] The procedure discussed in Figure 9 below is a flow for collision transport. Solver and scalar Solver The flow simulation process will be explained using Figures 7, 8, and 10–16. These figures are labeled as "prior art." These figures are labeled as prior art because they are generally included in the referenced patents herein. Nevertheless, these figures are scalar as they appear in the referenced patents. Solver Since the approach is not described in the referenced patent, the scalar described below Solver This approach does not take into account any modifications that may be made to flow simulations using this method.

[0033] 1. Model simulation space In LBM-based physical process simulation systems, fluid flow is represented by the distribution function value f i Expressed as, the discrete velocity c i We evaluate in the set of . The dynamics of the distribution function are governed by the following equation, where,

number

number

number

[0034] The right-hand side of the first equation is the aforementioned "collision operator," which represents the change in the distribution function due to collisions between fluid pockets. The specific form of the collision operator used here is that of Bhatnagar, Gross, and Krook (BGK: Bhatnagar, Gross, and Krook). This compels the distribution function, which is in "equilibrium" form, to take on a predetermined value given by the second equation.

[0035] From this simulation, conventional fluid variables such as mass ρ and fluid velocity u are obtained as simple sums. The LBM model can be efficiently implemented on an extensible computer platform and can run with great robustness to time-irregular flows and complex boundary conditions.

[0036] The standard technique for obtaining macroscopic equations of motion for fluid systems from the Boltzmann equation is the Chapman-Enskog method, which provides a continuous approximation of the complete Boltzmann equation.

[0037] In fluid systems, low-density disturbances travel at the speed of sound. In gas systems, the speed of sound is generally determined by temperature. The importance of compressibility in a flow is measured by the ratio of its specific velocity to the speed of sound, known as the Mach number.

[0038] Now, referring to Figure 1, we will discuss the flow of high-speed flow. Solver 34c and Scalar SolverSystem 10, including 34c', is described below. In this implementation, System 10 includes a server system 12 and a client system 14, which are implemented as a large-scale parallel computing system 12 (standalone or cloud-based) based on a client-server or cloud-based architecture. The server system 12 includes memory 18, a bus system 11, interfaces 20 (e.g., user interface / network interface / display or monitor interface, etc.), and processing devices 24. Within the memory 18 are a mesh generation engine 32 and a simulation engine 34.

[0039] Figure 1 shows the mesh generation engine 32 in memory 18, but the mesh generation engine can also be a third-party application running on a system separate from the server 12. Whether the mesh generation engine 32 runs in memory 18 or on a system separate from the server 12, the mesh generation engine 32 receives the mesh definition 30 supplied by the user, creates a mesh, and sends (and / or stores) the created mesh to the simulation engine 34, depending on the object being modeled for simulation by the simulation engine 34. System 10 accesses a data repository 38 that stores 2D and / or 3D meshes (Cartesian and / or curved), coordinate systems, and libraries.

[0040] The simulation engine includes a collision interaction module 34a for flow particles and a collision interaction module 34a' for scalar particles, and the boundary module 34b and the simulation engine 34 are for fluid particle collision transport. Solver 34c, and scalar particle transport SolverEvaluate 34c'. The simulation engine 34 also includes the advection-flow collision interaction module 34d and the advection-scalar particle collision interaction module 34d', which advance flow particles along with scalar particles to the next cell in the mesh.

[0041] flow Solver The discussion regarding 34c is presented in the aforementioned patent and in Figure 5. Solver The discussion regarding 34c' is presented below and in Figure 6.

[0042] The process 40 for simulating fluid flow for an object representation will now be shown with reference to Figure 2. In the example discussed herein, the object is a wing. However, the use of a wing is merely illustrative, as the object can have any shape, specifically, it can have planes and / or curved surfaces. The process 40 retrieves a mesh (or grid) for the object to be simulated, such as a wing, from, for example, a client system 14 42 or a data repository 38. In other embodiments, an external system or server 12 generates a mesh for the object to be simulated based on user input.

[0043] Process 40 retrieves a three-dimensional representation of the wing, for example, from a client system 14 42 or from a data repository 38. The process pre-calculates geometric quantities from the retrieved mesh 44 and uses the pre-calculated geometric quantities corresponding to the retrieved mesh to perform a dynamic lattice Boltzmann model simulation 45. The lattice Boltzmann model simulation 45 includes simulation evolution 46 of the particle flow distribution and boundary layer processing 48 when the flow affects the physical surface. The motion of flow particles is flow Solver This causes collisions between flow particles used in 34c.

[0044] Process 40 also performs simulations 47 of one or more further scalar particle distributions using a scalar lattice velocity set and performs boundary layer processing 48 of scalar particles when the flow carrying the scalar particles affects the physical surface, as described above. These scalar particles represent the movement of scalar quantities within a fluid volume, which are carried by the flow of particles within the fluid volume. The movement of scalar particles is scalar Solver This causes collisions between scalar particles used in 34c'. The process performs advection of flow particles and scalar particles 52 to the next cell in the LBM mesh.

[0045] Referring to Figure 3, the lattice Boltzmann simulation process 46 simulates the unfolding of the flow particle distribution according to the lattice Boltzmann equation (LBE) 46a. Process 46 (see Figure 2) performs collision calculations (and collects sets of incoming distributions from adjacent mesh locations by collision calculations) 46b, evaluates the flow at the physical boundary through boundary modeling 46c, and performs particle advection to the next cell in the LBM space 46d. LB collision Solver Details of 34c are presented in U.S. Patent No. 9,576,087 (which is incorporated by reference as a whole) and in part in the discussion below.

[0046] Referring to Figure 4, the lattice Boltzmann simulation process 45 also includes a scalar particle distribution 47 based on the lattice Boltzmann equation (LBE). The LB scalar distribution is executed simultaneously with the flow distributions 45a to 45c of the simulation 45. Solver Part 47 simulates the expansion of the scalar particle distribution using the lattice Boltzmann equation (LBE) 47a, and performs collision calculations (collecting sets of distributions coming from adjacent mesh positions by collision calculations) 47b, scalar Solver Using 34c', we evaluate the flow at the physical boundary by boundary modeling 47c, and perform the advection of scalar particles to the next cell in LBM space 47d.

[0047] Boltzmann Scalar Solver (LB scalar Solver or simply scalar Solver ) are presented below and in Fig. 6.

[0048] Considering that the time evaluations of the flow distribution and the scalar distribution functions are respectively given by [Number] [Number] given here, where in equation Eq. (1.2), q- represents a specific scalar. Thus, equation Eq. (1.2) is derived from equation Eq. (1.1) having terms within equation Eq. (1.2) that are functions of q. Further, i is the index number of the lattice velocity within the set, c Solver is the lattice velocity, x is a specific position within the volume, t is a specific time point, dt is the time increment, i is the equilibrium distribution of the particles, [Number] is the equilibrium distribution of the scalar, f [Number] is the equilibrium distribution of the scalar, f[[ID=4`)]] i is the actual particle distribution of the flow, q i is the actual amount of the scalar distribution, f i ’ is called the post - collision distribution of the particles, q i ’ is called the post - collision distribution of the scalar, Ω fi represents the collision of the fluid particles, and its specific form is discussed below, Ω qi represents the collision of the scalar particles, and its specific form is discussed below.

[0049] As given by Eq. (1.2), multiplying the scalar distribution by the flow distribution allows visualization of the amount of scalar carried with the flow particles. The total scalar amount (a specific scalar multiplied by the density) is (ρq)=Σ i (f i ​i The equilibrium particle density distribution is given by ) . From the perspective of Hermitian polynomials,

number

number

number

number

[0050] The equilibrium distribution of scalar values ​​is simply,

number

[0051] 2. Collision Process Collision processes are one of the two fundamental processes in molecular dynamics, the other being advection. (LBM) Solver The stability depends on the collision method employed. The collision process in LBM serves the same purpose as molecular collisions in real fluid systems. The collision process follows fundamental physical requirements such as the conservation of mass and momentum. Solver In the case of a scalar, Solver The scalar concentration must be conserved. The above quantities, such as velocity, density, and scalar concentration, are calculated by taking the moment of the distribution function (the sum of the distribution functions multiplied by the lattice velocity).

[0052]

number

number

[0053] The collision process is extremely complex and highly nonlinear. A simple collision operator, the so-called BGK collision, represents a collision in linear form.

number

number

number

number

[0054] The choice of relaxation time depends on the true physical properties of the fluid. Solver Regarding 34c, the value of the relaxation time τ is a function of fluid viscosity.

number

number

[0055] The moments of the equilibrium distribution functions Eq.(1.3) and Eq.(1.4) are related to conserved quantities and are identical to the moments of the actual distribution as defined in Eq.(2.1) and Eq.(2.2), respectively. Therefore, the BGK collision model satisfies all the necessary physical constraints, namely the conservation of mass, momentum, and scalar concentration.

number

[0056] Any collision operator used must satisfy the above constraints in order to simulate real physical phenomena.

[0057] 3. Normalized collision operators In addition to the moments discussed previously, the following higher-order moments, related to momentum flux and scalar flux, are equally important.

number

number

number

number

[0058] Similarly, for the actual particle distribution function and scalar distribution function, higher-order moments are:

number

number

[0059]

number

number

[0060] The set of lattices used for LBMs has a finite number of lattice directions and therefore supports a finite number of moments known as the "order" of the lattice. This limitation of the lattice set results in a low stability range for BGK collisions involving all higher-order moments in non-equilibrium.

[0061] Normalized collision operators, also known as filtered collision operators, can be used to enhance the stability of the LBM by calculating only the necessary moments and mitigating these moments during the collision process, as presented in U.S. Patent No. 9,576,087, which is incorporated by reference as a whole. The form of the filtered collision operator is:

number

number

[0062] 4. Galilean invariance in collision operators The filtered collision modes described above are useful for applications involving relatively low fluid velocities (e.g., less than Mach 0.3). From the fundamental principle of Galilean invariance, the distribution functions, both equilibrium and non-equilibrium distributions of a multi-particle system, should be functions of particle velocity relative to local fluid velocity, rather than any arbitrary specific reference frame (e.g., a reference frame of a stationary grid). In fact, it can be shown that the infinitely Hermitian extended equilibrium distribution function allows for compact and Galilean invariant forms similar to the Maxwell-Boltzmann distribution, such as Eq. (4.1).

[0063]

number

number

[0064] Eq.(4.1) is (ε i Expressed from the perspective of -u), (ε i -u) is the particle velocity relative to the local fluid velocity. Clearly, ε i is the particle velocity in the reference frame of the lattice at rest. Therefore, a similar compact Galilean indeformable equation can be used for the non-equilibrium distribution function. The first task to do the above is to redefine the normal hydraulic moment.

[0065] Instead of Eq.(3.5) and Eq.(3.6) defined on a specific absolute reference frame of the stationary lattice, these must be replaced with their corresponding ones on a relative reference frame in terms of relative particle velocity.

number

number

number

number

[0066] Nevertheless, the non-equilibrium momentum flux and scalar flux within the reference frame are conserved of momentum and scalar concentration, i.e.,

number

number

[0067] Therefore, it is desirable to obtain a normal Galilean invariant for the non-equilibrium distribution. The complete functional form of the equilibrium distribution is Galilean invariant, and the goal is therefore to connect the non-equilibrium distribution to its equilibrium counterpart.

[0068] In the framework of fundamental physics of kinetic theory, the basic concepts of how non-equilibrium distributions can be expressed in relation to equilibrium distributions are briefly discussed below. Equilibrium and non-equilibrium distributions are essentially related to each other through the dynamics of the Boltzmann equations of motion. Non-equilibrium distributions can, in principle, be expressed in terms of equilibrium distribution functions. In practice, such explicit functional forms can be expressed as infinite series in powers of spatial and temporal derivatives via the so-called Chapman-Enskog extension, or as exact compact forms under certain specific microscopic conditions. U.S. Patent No. 9,576,087 proposes a new equation for non-equilibrium, such as the multiplication of the equilibrium distribution by the non-equilibrium momentum flux, which relates to Navier-Stokes fluid conditions.

[0069]

number

[0070] By comparing terms,

number

number

[0071] The complete Galilean indeformable equations for equilibrium distribution Eq. (1.3) and non-equilibrium distribution Eq. (4.5) can be used when the supporting set of lattice velocity has infinite-order isotropy. For any given lattice with finite-order precision, these functions are truncated. After some derivation, for any given lattice with finite-order isotropy, the following equations are obtained:

[0072]

number

number

[0073] The zeroth order of the above form, i.e., n=2, will recover the normalized collision operator. The first and second orders of Eq. (4.6) are:

number

number

[0074] 5. Scalar Solver Extension to flow Solver Galilean invariant filtered collisions are a type of flow collision. Solver To expand stability and enable simulation of transonic and supersonic applications. Solver Similar to 34c, Scalar Solver 34c' is Galilean invariant because its underlying governing equations satisfy the Galilean invariance requirements. Similar to this theory, a non-equilibrium scalar flux can be expressed in terms of its equilibrium distribution, relative velocity, and associated moments. For the flow in the normal direction in macroscopic situations, only the first moment proportional to the scalar gradient is relevant. An approximate non-equilibrium form, such as an infinite series, can be given as follows:

[0075]

number

[0076] For a given set of lattices having a finite number of lattices, the above equation is:

number

number

number

[0077] Similar to flow distributions, the above form is not achievable in its actual form due to the restriction on the degree of isotropy. For a given lattice with a finite degree of isotropy, the above equation can be truncated, and after some derivation, the following final form, Eq.(5.3), is obtained.

[0078]

number

number

[0079] The zero-order form (i.e.) of the above equation for n=1 will recover the filtered (normalized) collision operator. The first and second-order forms of Eq. (5.3) are explicitly given by:

number

number

[0080] Refer to Figures 5 and 6, Flow SolverProcessing flow 60 for 34c, and one or more scalars Solver Shows processing flow 70 for 34c'.

[0081] Starting with FIG. 5, the flow Solver Processing 60 provides a set of lattice velocities that support the required hydrodynamic moments to a specified order 62. Processing 60 simulates the movement of particles within the volume of the fluid with the set of lattice velocities 64, and determines the deviation of the particle distribution from the equilibrium value, which is the non-equilibrium momentum flux of the particles 66. From the determination of the deviation of the particle distribution, the processing determines the post-collision distribution function that is Galilean invariant according to the non-equilibrium flux and the particle equilibrium distribution 68. Flow Solver The details of the processing are described in U.S. Patent No. 9,576,087 above.

[0082] Referring to FIG. 6, shows processing 70 for scalars Solver Processing 70 provides an additional set of lattice velocities that support the moments required for additional scalars, such as an additional set of lattice velocities for each scalar 72. Processing 70 simulates the movement of scalar particles carried by the flow particles with the additional set of lattice velocities 74, and determines any deviation of the scalar function from the respective average value of the deviations, which is the non-equilibrium contribution flux of the scalar 76. Processing 70 for scalars Solver determines the post-collision distribution function that is Galilean invariant for the scalar according to the non-equilibrium flux and the scalar equilibrium value 78.

[0083] Scalars for performing fluid flow simulation Solver A general discussion of the LBM-based simulation system including processing 70 for scalars for performing fluid flow simulation is given below.

[0084] Referring to Figure 7, the first model (2D-1)100 is a two-dimensional model containing 21 velocities. Of these 21 velocities, one (105) represents a stationary particle; three sets of the four velocities represent particles moving in the positive or negative direction along the x or y axis of the lattice at normalized velocities (r) (110-113), double-normalized velocities (2r) (120-123), or triple-normalized velocities (3r) (130-133); and two sets of the four velocities represent particles moving along both the x and y lattice axes at normalized velocities (r) (140-143) or double-normalized velocities (2r) (150-153).

[0085] As similarly shown in Figure 8, the second model (3D-1)200 is a three-dimensional model containing 39 velocities, where each velocity is represented by one of the arrows in Figure 8. Of these 39 velocities, one represents a stationary particle; three sets of six velocities represent particles moving in the positive or negative direction along the x, y, or z axis of the lattice at a normalized velocity (r), a double-normalized velocity (2r), or a triple-normalized velocity (3r); eight represent particles moving along all three x, y, and z lattice axes at a normalized velocity (r); and twelve represent particles moving along two of the x, y, and z lattice axes at a double-normalized velocity (2r).

[0086] More complex models can also be used, such as a 3D-2 model containing 101 velocities and a 2D-2 model containing 37 velocities. Velocities are more clearly described by their velocity components along each axis, as provided in Table 1 and Table 2, respectively.

[0087] For the 3D model 3D-2, of the 101 velocities, one represents a stationary particle (Group 1), three sets of the six velocities represent particles moving in the positive or negative direction along the x, y, or z axis of the lattice at normalized velocity (r), double-normalized velocity (2r), or triple-normalized velocity (3r) (Groups 2, 4, and 7), and three sets of the eight velocities represent particles moving along all three lattice axes (x, y, and z) at normalized velocity (r), double-normalized velocity (2r), or triple-normalized velocity (3r). Groups 3, 8, and 10 represent particles that are moving along two of the x, y, and z lattice axes at a 2x normalized velocity (2r) (Group 6), 24 represent particles that are moving along two of the x, y, and z lattice axes at a normalized velocity (r) and a 2x normalized velocity (2r), but not along the remaining axis (Group 5), and 24 represent particles that are moving along two of the x, y, and z lattice axes at a normalized velocity (r) and along the remaining axis at a 3x normalized velocity (3r) (Group 9).

[0088] For the 2D model 2D-2, of the 37 velocities, one represents a stationary particle (Group 1); three sets of four velocities represent particles moving in the positive or negative direction along the x or y axis of the lattice at a normalized velocity (r), a double-normalized velocity (2r), or a triple-normalized velocity (3r) (Groups 2, 4, and 7); two sets of four velocities represent particles moving along both the x and y lattice axes at a normalized velocity (r) or a double-normalized velocity (2r); eight velocities represent particles moving along one of the x and y lattice axes at a normalized velocity (r) and along the other axis at a double-normalized velocity (2r); and eight velocities represent particles moving along one of the x and y lattice axes at a normalized velocity (r) and along the other axis at a triple-normalized velocity (3r).

[0089] The LBM model described above provides a specific class of efficient and robust discrete velocity dynamics models for numerical simulation of flow in both two and three dimensions. This type of model includes a specific set of discrete velocities and weights associated with these velocities. The velocities correspond to grid points in Cartesian coordinates within velocity space, which facilitates accurate and efficient implementations of discrete velocity models, particularly those known as lattice Boltzmann models. Using such models, flow can be simulated with high fidelity. [Examples]

[0090] A. Examples Referring to Figure 9, the physical process simulation system operates according to procedure 300 to simulate physical processes such as fluid flow. Before the simulation, the simulation space is modeled as a collection of voxels (302). Typically, the simulation space is generated using a computer-aided design (CAD) program. For example, a CAD program can be used to draw an airfoil inside a wind tunnel. The data generated by the CAD program is then processed to add a grid structure with appropriate resolution to consider the airfoil and its surface in the simulation space. As mentioned above, devices with arbitrary physical shapes can be the subject of fluid flow simulations, and scalar devices can be the subject. Solver This can be used to evaluate the scalar properties of a physically shaped device.

[0091] The grid resolution can be selected based on the Reynolds number of the system being simulated. The Reynolds number relates to the viscosity of the flow (ν), the characteristic length of the object in the flow (L), and the characteristic velocity of the flow (u). Re = uL / ν Eq. (I-2)

[0092] The characteristic length of an object represents a broad characteristic of the object. For example, when simulating flow around a microdevice, the height of the microdevice might be considered a characteristic length. When the flow is around a small region of the object of interest (e.g., a car's side mirror), the simulation resolution can be increased, or the area of ​​increased resolution can be used around the region of interest. As the grid resolution increases, the dimensionality of the voxels decreases.

[0093] The state space is f i It is expressed as (x, t), where f i This represents the number of elements or particles per unit volume (i.e., the particle density of state i) at a lattice site indicated by the 3D vector x at time t. For a known time increment, the number of particles is simply f i This is represented as (x). The total number of possible states of a lattice site is represented as f(x).

[0094] The number of states is determined by the number of possible velocity vectors within each energy level. These velocity vectors consist of integer linear velocities in a space with three dimensions: x, y, and z. The number of states is increased for multiple types of simulations.

[0095] Each state i represents a different velocity vector at a specific energy level (i.e., energy level zero, 1, or 2). The velocity c of each state i It is expressed as the "speed" in each of the three dimensions, as follows: c i =(c i,x ,c i,y ,c i,z ) Eq.(I-3)

[0096] The zero-energy state represents a stationary particle that is not moving in any dimension, i.e., c stopped= (0,0,0). Energy level 1 represents a particle with a speed of ±1 in one of the three dimensions and a speed of zero in the other two dimensions. Energy level 2 represents a particle with a speed of ±1 in all three dimensions, or a speed of ±2 in one of the three dimensions and a speed of zero in the other two dimensions.

[0097] Generating all possible permutations of the three energy levels results in a total of 39 possible states (1 energy zero state, 6 energy 1 states, 8 energy 3 states, 6 energy 4 states, 12 energy 8 states, and 6 energy 9 states).

[0098] Each voxel (i.e., each lattice site) is represented by a state vector f(x). The state vector completely defines the status of the voxel and contains 39 entries. These 39 entries correspond to one zero-energy state, six energy-1 states, eight energy-3 states, six energy-4 states, twelve energy-8 states, and six energy-9 states. By using this set of energy vectors, the system can generate Maxwell-Boltzmann statistics for the achieved equilibrium state vector.

[0099] B. Microblocks Now, referring to Figure 10, we will show a microblock. For processing efficiency, voxels are grouped into 2x2x2 volumes called microblocks. Microblocks are organized to enable parallel processing of voxels and minimize the overhead associated with the data structure. A simple notation for voxels within a microblock is N i (n) is defined as follows, where n represents the relative position of a lattice site within the microblock, and n ∈ {0, 1, 2, ..., 7}.

[0100] Referring to Figures 11A and 11B, surface S (Figure 11A) is facet F α It is represented in the simulation space (Figure 11B) as a set of elements. S={Fα} Eq.(I-4) Here, α is an index that enumerates specific facets. The facets are not restricted to voxel boundaries and typically have a size similar to or slightly smaller than the neighboring voxels such that the influence of the facet extends to a relatively small number of voxels. To implement surface dynamics, properties are assigned to the facets. Specifically, each facet F α has a unit normal (n α ), surface area (A α ), center position (x α ), and facet distribution function (f i (α)) that describe the surface dynamics properties of the facet.

[0101] Referring to FIG. 12, different levels of resolution can be used in different regions of the simulation space to improve processing efficiency. Typically, the region 350 around the object 352 is of most interest and is therefore simulated at the highest resolution. Since the influence of viscosity decreases with distance from the object, regions 354, 356 spaced at an increasing distance from the object 352 are simulated using a decreasing level of resolution (i.e., enlarged voxel volumes).

[0102] Similarly, as shown in FIG. 13, a lower level of resolution can be used to simulate the region 36 around less important features of the object 362, while the highest level of resolution is used to simulate the region 364 around the most important features of the object 362 (e.g., the leading and trailing surfaces). The region 366 farther from the center is simulated using the lowest level of resolution and the largest voxels.

[0103] C. Identifying Voxels Affected by Facets Referring back to FIG. 9, when the simulation space is modeled (302), voxels affected by one or more facets are identified (304). Voxels can be affected by facets in several ways. First, a voxel where one or more facets intersect is affected in that the voxel has a reduced volume compared to non-intersecting voxels. This occurs because the facet and the material underlying the surface represented by the facet occupy part of the voxel. The partial factor P f (x) indicates the portion of the voxel not affected by the facet (i.e., the portion that can be occupied by a fluid or other material whose flow is being simulated). For non-intersecting voxels, P f (x) is equal to 1.

[0104] Voxels that interact with one or more facets by moving particles to or receiving particles from the facets are also identified as voxels affected by the facets. All voxels where the facets intersect will include at least one state of receiving particles from the facet and at least one state of moving particles to the facet. In most cases, additional voxels will also include such states.

[0105] Referring to FIG. 14, for each state i having a non-zero velocity vector c i , the facet F α receives or moves particles from a region defined by the base surface of a parallelepiped G i n i having a height defined by the magnitude of the dot product of the velocity vector c i of the facet (|c α |) and the unit normal n iα , and the volume V iα of the parallelepiped G iα is equal to the surface area A a of the facet. V iα =|c i nα |A a Eq. (I-5)

[0106] Facet F α receives particles from volume V when the velocity vector of the state is directed towards the facet (|c i n i |<0) and moves the particles to the region when the velocity vector of the state is directed away from the facet (|c iα n i |>0). As discussed below, this equation must correct for conditions that may occur near non-convex features such as inner corners when another facet occupies part of the parallelepiped G i iα .

[0107] Facet F α of the parallelepiped G iα may overlap with some or all of the voxels. The number of voxels or parts thereof depends on the size of the facet relative to the size of the voxel, the energy of the state, and the direction of the facet relative to the lattice structure. The number of affected voxels increases with the size of the facet. Thus, the size of the facet is typically chosen to be similar to the size of the voxels near the facet or smaller than the size of the voxels, as described above.

[0108] The part of the voxel N(x) where the parallelepiped G iα overlaps is defined as V iα (x). Using this term, the flux Γ α (x) of particles in state i moving between the voxel N(x) and the facet F iα is equal to the density of particles in state i within the voxel (N iα (x)) multiplied by the volume of the region overlapping with the voxel (V i (x)). Γ iα (x)=N) i (x)+V iα (x) Eq. (I-6)

[0109] ​parallelepiped G iα When one or more facets intersect with it, the following condition is true: V iα =ΣV α (x) + ΣV iα (β) Eq.(I-7) Here, the first sum is G iα Considering all overlapping voxels, the second term is G iα Consider all facets that intersect with it. Parallelepiped G iα When this facet does not intersect with another facet, this formula is: V iα =ΣV iα (x) Eq.(I-8) It will decrease to that point.

[0110] D. Run the simulation. Once a voxel affected by one or more facets is identified (step 304), the timer is initialized to begin the simulation (step 306). Within each time increment of the simulation, a set of elements 307 is executed, which includes the movement of particles from voxel to voxel simulated in the advection stage (308-316), considering the interaction of particles with the surface facets. Next, the collision stage (step 318) simulates the interaction of particles within each voxel. Then the timer is incremented (step 320). If the incremented timer does not indicate that the simulation is complete (step 322), the advection and collision stages (steps 308-320) are repeated. If the incremented timer indicates that the simulation is complete (step 322), the simulation results are stored and / or displayed (step 324). A scalar realizing the above features. Solver Process 330 is also shown. Scalar process 330 includes a concrete example of element 307, but is materialized and executed using a further set of lattice velocities that support the moments required for further scalars, as described above.

[0111] 1. Boundary conditions for the surface To correctly simulate the interaction with the surface, each facet should satisfy four boundary conditions. First, the combined mass of the particles received by the facet should be equal to the combined mass of the particles moved by the facet (i.e., the net's mass flux to the facet should be equal to zero). Second, the combined energy of the particles received by the facet should be equal to the combined energy of the particles moved by the facet (i.e., the net's energy flux to the facet should be equal to zero). These two conditions can be satisfied by requiring that the net's mass flux at each energy level (i.e., energy levels 1 and 2) be equal to zero.

[0112] The other two boundary conditions relate to the momentum of the net of particles interacting with the facet. For a surface without surface friction, referred to herein as a slip surface, the tangential momentum flux of the net should be equal to zero, and the normal momentum flux of the net should be equal to the local pressure at the facet. Thus, the normal n of the facet α The components of the received and transferred momentum after the combination (i.e., the tangential components) perpendicular to the facet's normal n should be equal, while the normal n α The difference between the components of the received and transferred momentum after synthesis (i.e., the normal component), which are parallel to the vector, should be equal to the local pressure at the facet. For non-slip surfaces, surface friction reduces the tangential momentum of the particles transferred by the facet after synthesis to the tangential momentum of the particles received by the facet by a factor related to the amount of friction.

[0113] 2. Gather voxels into facets. Firstly, when simulating the interaction between particles and surfaces, particles are collected from voxels and provided to facets (308). As described above, voxel N(x) and facet F α The flux of the particle in state i between is Γ iα (x) = N i (x)Viα (x) Eq.(I-9) That is the case.

[0114] From here, Facet F α For each state i directed toward (c i n α <0), facet F by voxel α The number of particles provided is Γ iαV→F =Σ X Γ iα (x) = Σ X N i (x)V iα (x) Eq.(I-10) That is the case.

[0115] V iα Only voxels where (x) has a non-zero value should be summed. As mentioned above, the size of the facet is V for only a small number of voxels. iα (x) is selected such that it has a non-zero value. iα (x) and P f (x) can have non-integer values, so Γ α (x) is stored and processed as a real number.

[0116] 3. Move from facet to facet Next, move the particle between the facets (310). Facet F α The state in which it enters (c i n α Parallelepiped G for <0) iα and another facet F β When they intersect, facet F α A portion of the particles in state i that it receives are facet F β It will come from. Specifically, facet F α During the previous time increment, facet F β This will result in receiving some of the particles of state i that were created by this process.

[0117] Now, referring to Figure 16, here, during the previous time increment, facet F βThis shows the relationship between the particles in state i produced by [the process]. Figure 16 shows facet F β Parallelepiped G where the two intersect. iα Part 380 is facet F α Parallelepiped G where the two intersect. iβ This shows that it is equal to part 382. As mentioned above, the intersecting part is V iα This is represented as (β). Using this term, facet F β and Facet F α The flux of the particle in state i between these states is Γ iα (β,t-1)=Γ i (β)V iα (β) / V iα Eq.(I-11) It can be written as follows, where Γ i (β, t-1) is facet F during the previous time increment. β This is a measurement of the particle in state i produced by [the process]. From this, facet F α Each state i(c) directed toward i n α For <0), facet F is determined by other facets. α The number of particles provided is Γ iaF→F =Σ β Γ iα (β) = Σ β Γ i (β,t-1)V iα (β) / V iα Eq.(I-12) And the total flux of the particle in state i to the facet is, Γ iIN(α) =Γ iaF→F +Γ iaF→F =Σ x N i (x)V iα +Σ β Γ i (β,t-1)V iα (β) / V iα Eq.(I-13) That is the case.

[0118] The state vector N(α) for a facet, also called the facet distribution function, has M entries corresponding to the M entries of the voxel state vector, where M is the number of discrete lattice velocities. The input states of the facet distribution function N(α) are given by volume V iα These states are set to be equal to the flux of the particles divided by c i n α Regarding <0, N i (α=Γ) iIN (α) / V iα Eq.(I-14) That is the case.

[0119] The facet distribution function is a simulation tool for generating output flux from facets and does not necessarily represent the actual particles. To generate accurate output flux, assign values ​​to other states of the distribution function. Populate the outer states using the same technique described above for populating the inner states. i n α Regarding ≥ 0, N i (α=Γ) iOTHER (α) / V iα Eq.(I-15) And here, Γ iIN Using the above technique to generate (α), Γ iOTHER (α) is determined, but the incoming state (c i n α (c)) states other than <0)) i n α This technique is applied to ≥0). In an alternative approach, Γ iOTHER (α,t)=Γ iOUT (α,t-1) Eq.(I-16) So that it becomes Γ from the previous time iOUT Using the value of (α), Γ iOTHER (α) can be generated.

[0120] Parallel state (c i n α Regarding V = 0), iα and V iαBoth (x) are zero. i In the equation for (α), V iα (x) is (Γ iOTHER (From the equation for α) it appears in the numerator, V iα is, (N i (From the equation for α) it appears in the denominator. Therefore, for the parallel state N i (α) is V iα and V iα As (x) approaches zero, N i This is determined as the limit of (α). The values ​​for states with zero velocity (i.e., the stationary state, as well as 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.

[0121] 4. Perform faceted surface dynamics. Next, surface dynamics are performed for each facet to satisfy the four boundary conditions described above (312). The procedure for performing surface dynamics on the facets is shown in Figure 17. This procedure is performed for flow particles and scalar particles, as shown in the figure. First, for all i,

number

[0122] Using the push / pull technique, this normal momentum is eliminated (384), N n-This generates (α). According to this technique, the particle moves between states in a manner that affects only the momentum in the normal direction. The push / pull technique is described in U.S. Patent No. 5,594,671, which is incorporated by reference.

[0123] After that, N n- By colliding particles (α), the Boltzmann distribution N n-β (386) produces (α). As explained below, regarding performing fluid dynamics, N n- The Boltzmann distribution can be achieved by applying a set of collision rules to (α) to both the flow and scalar distributions, respectively.

[0124] Based on the incoming flux distribution and Boltzmann distribution, Facet F α Determine the outgoing flux distribution for (388).

[0125] Firstly, the incoming flux distribution Γ i The difference between (α) and the Boltzmann distribution is ΔΓ i (α=Γ) iIN (α)-N n-βi (α)V iα Eq.(I-19) This is the decision.

[0126] Using this difference, the outgoing flux distribution is n α c i Regarding >0, Γ iOUT (α) = N n-βi (α)V iα -.Δ.Γ i *(α) Eq.(I-20) And here, i * state i is a state that has the opposite direction to state i. For example, if state i is (1, 1, 0, 0), then state i * The distribution is (-1, -1, 0, 0). To account for surface friction and other factors, the outgoing flux distribution is n α c i Regarding >0, ΓiOUT (α) = N n-βi (α)V iα -ΔΓ i *(α)+ C f (n α ·c i )-[N n-βi *(α)-N n-βi (α)]V ia + (n α ·c i )(t 1α ·c i )ΔN j,1 V iα + (n a ·c i )(t 2α ·c i )ΔN j,2 V iα Eq.(I-21) It can be further refined, and here, C f is a function of surface friction, and t iα is, n α It is a first tangent vector perpendicular to t, and t 2α is, n α and t 1α It is a second tangent vector perpendicular to both of the directions, ΔN j,1 and ΔN j,2 This is the distribution function corresponding to the energy (j) of state i and the indicated tangential vector. The distribution function is,

number

[0127] Γ iOUTThe functions of each term in the equation for (α) are as follows: The first and second terms enforce the normal momentum flux boundary conditions to the extent that the collision is effective in producing a Boltzmann distribution, but include an anomaly in the tangential momentum flux. The fourth and fifth terms correct this anomaly, which may be caused by discrete effects due to insufficient collision or by non-Boltzmann structures. Finally, the third term adds a specified amount of skin fraction to enforce the desired change in the tangential momentum flux on the surface. Coefficient of friction C f The generation of the terms is explained below. Note that all terms involving vector operations are geometric factors that can be calculated before starting the simulation.

[0128] Next, we will consider the tangential velocity. u i (α) = (P(α) - P n (α)n α ) / ρ Eq.(I-23) Thus, it is determined that ρ is the density of the facet distribution.

number

[0129] As mentioned above, the difference between the incoming flux distribution and the Boltzmann distribution is ΔΓ i (α=Γ) iIN (α)-N n-βi (α)V iα Eq.(I-25) And so, the decision is made.

[0130] The outgoing flux distribution is, next, Γ iOUT (α) = N n-βi (α)V iα -ΔΓ i *(α)+C f (n α c i )[N n-βi *(α)-N n-βi (α)]V iα Eq.(I-26) This corresponds to the first two lines of the outgoing flux distribution determined by the previous technique, but without requiring correction of the abnormal tangential flux.

[0131] Using either approach, the resulting flux distribution satisfies all the momentum flux conditions, i.e.,

number

[0132] 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 as follows:

number

number

[0133] 5. Move from voxel to voxel. Referring again to Figure 9, the particles move between voxels along a three-dimensional linear lattice (314). This voxel-to-voxel movement is the only movement performed on voxels that do not interact with facets (i.e., voxels that are not close to the surface). In a typical simulation, the vast majority of voxels are not close enough to the surface to interact with it.

[0134] Each of the distinct states represents a particle moving along the lattice at an integer velocity in each of the three dimensions: x, y, and z. Integer velocities include 0, ±1, and ±2. The sign of the velocity indicates the direction in which the particle is moving along the corresponding axis.

[0135] For voxels that do not interact with the surface, the motion is computationally quite simple. In every time increment, the entire population of states moves from its current voxel to its destination voxel. Simultaneously, particles in the destination voxel move from this voxel to its own destination voxel. For example, a particle with energy level 1 moving in the +1x and +1y directions (1,0,0) moves from its current voxel to a voxel that is greater than or equal to +1 in the x direction and 0 in the other directions. The particle eventually arrives at its destination voxel in the same state (1,0,0) it had before moving. Interactions within the voxel are likely to change the particle count for this state based on local interactions with other particles and the surface. Otherwise, the particle would continue moving along the lattice at the same velocity and direction.

[0136] The motion becomes slightly more complex for voxels interacting with one or more surfaces. This can result in one or more fragmentary particles moving into facets. When such fragmentary particles move into facets, they remain in the voxel. These fragmentary particles then move into the voxel occupied by the facets.

[0137] Referring to Figure 15, when a portion 360 of the particle in state i for voxel 362 moves to facet 364 (278), the remaining portion 366 moves to voxel 368, which has facet 364, and the particle in state i is directed to facet 364. Therefore, the state population is equal to 25, V iα (x) is equal to 0.25 (i.e., one-quarter of the voxels are parallelepiped G) iα When it intersects with, 6.25 particles form facet F α It moves, and 18.75 particles form facet F α It moves into a voxel occupied by . Since multiple facets can intersect a single voxel, the number of particles in state i that move into a voxel N(f) occupied by one or more facets is

number

[0138] 6. Scattering from facets to voxels Next, the particles leaving each facet scatter into voxels (316). Essentially, this is the reverse of the collection of particles moved from voxels to facets. Facet F α The number of particles in state i moving from voxel N(x) is:

number

number

[0139] When particles are scattered from a facet to a voxel, and the scattered particles are combined with particles advected from surrounding voxels, and the result is integerized, there is a possibility that a certain direction in a given voxel may be underflow (negative) or overflow (exceeding 255 in an 8-bit implementation). This results in an increase or loss of mass, momentum, and energy after truncating the amounts of mass, momentum, and energy to fit within the acceptable range of values.

[0140] To protect against such occurrences, excess mass, momentum, and energy are accumulated before truncation of the state in question. For the energy to which the state belongs, an amount of mass equal to the increase (due to underflow) or loss (due to overflow) is added back to a randomly (or sequentially) selected state that has the same energy and is not 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. Only by adding mass to the same energy state are both mass and energy corrected when the mass counter reaches zero. Finally, momentum is corrected using a push / pull technique until the momentum accumulator returns to zero.

[0141] 7. Perform fluid dynamics. Fluid dynamics are performed (318). This is sometimes called microdynamics or intravoxel operation. Similarly, the advection procedure is sometimes called intervoxel operation. Microdynamic operations, described below, can also be used to collide particles in a facet and produce a Boltzmann distribution.

[0142] Fluid dynamics are guaranteed by a lattice Boltzmann equation model through a specific 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 sides of Eq. I-1 and Eq. I-2 above. After the advection step, the fluid system, and the conserved quantities of density, momentum, and energy in particular, are obtained from the distribution function using Eq. I-3. From these quantities, f in equation (2) eq The equilibrium distribution function described is fully specified by Eq.I-4. Velocity vector set c i The weights and both options are listed in Table 1, and together with Eq. I-2, ensure that the macroscopic behavior follows the correct hydraulic equations.

[0143] E. Variable resolution A variable resolution can also be employed (as discussed in U.S. Patent Application Publication No. 2013 / 0151221), which involves using voxels of different sizes, such as coarse and fine voxels, and can be applied to interactions with both flow particles and scalar particles with voxels.

[0144] By leveraging unique, transient lattice Boltzmann-based physics, the system can perform simulations that accurately predict real-world conditions. For example, engineers can evaluate product performance early in the design process, before any prototypes are created, at which point the impact of changes is most significant on the design and budget. The system can use CAD geometry to perform accurate and efficient aerodynamic, aeroacoustical, and thermal management simulations.

[0145] Scala Solver Using this, the system can perform simulations to tackle applications with high Mach numbers, such as those involving Mach numbers greater than 0.3, greater than 1.0, or greater than multiples of 1.0. Such applications can be found in aerodynamics (aerodynamic efficiency, vehicle handling, soil and water management, panel deformation, driving dynamics), aeroacoustics (greenhouse wind noise, underbody wind noise, gap / seal noise, mirrors, whistle and tonal noise, sunroof and window buffeting, pass-by / community noise, cooling fan noise), thermal management (cooling airflow, thermal protection, brake cooling, drive cycle simulation, key-off and soak, electronics and battery cooling, ROA / intake ports), environmental control (cabin comfort, HVAC unit & distributed system performance, HVAC system and fan noise, defrost and demist), powertrain (powertrain cooling, exhaust systems, cooling jackets, engine blocks), and soil and water management (pillar overflow, dirt and dust accumulation, tire spray).

[0146] The subject matter and functional operating embodiments described herein can be realized in digital electronic circuit equipment, actually embodied computer software or firmware, computer hardware (including the structures disclosed herein and their structural equivalents), or in one or more combinations thereof. Embodiments of the subject matter described herein can be implemented as one or more computer programs (i.e., one or more modules of computer program instructions encoded on a tangible non-transient program carrier for execution by a data processing device or for controlling the operation of a data processing device). Computer storage media can be machine-readable storage devices, machine-readable storage boards, random or serial access memory devices, or one or more combinations thereof.

[0147] The term "data processing device" refers to data processing hardware and encompasses all types of devices, equipment, and machines for processing data, including, for example, programmable processors, computers, or multiple processors or computers. The device may also be, or further include, specialized logic circuit equipment (e.g., FPGAs (Field-Programmable Gate Arrays) or ASICs (Application-Specific Integrated Circuits)). In addition to hardware, the device may optionally include code that creates an execution environment for computer programs (e.g., code that constitutes the essence of processor firmware, protocol stacks, database management systems, operating systems, or one or more of these).

[0148] Computer programs may also be called or described as programs, software, software applications, modules, software modules, scripts, 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 distributed as standalone programs or in any form, including modules, components, subroutines, or other units suitable for use in a computing environment. Computer programs may, but may not, correspond to files in a file system. Programs may be stored in part of files that hold other programs or data (for example, in a markup language document, in a single file dedicated to the program, or in part of a file that holds one or more scripts stored in multiple interconnected files, for example, one or more modules, subprograms, or parts of code). Computer programs may be distributed to run on one or more computers, located in one site or distributed across multiple sites and interconnected by a data communication network.

[0149] The processes and logic flows described herein can be executed by one or more programmable computers running one or more computer programs to perform functions by acting on input data and producing outputs. The processes and logic flows can also be executed by special-purpose logic circuit devices (such as FPGAs (Field-Programmable Gate Arrays) or ASICs (Application-Specific Integrated Circuits)), and the devices can also be implemented as special-purpose logic circuit devices.

[0150] A computer suitable for running computer programs can be based on a general-purpose or special-purpose microprocessor, or both, or any other type of central processing unit. Generally, the central processing unit will receive instructions and data from read-only memory or random-access memory, or both. Essential elements of a computer are a central processing unit for issuing or executing instructions, and one or more memory devices for storing instructions and data. Generally, a computer will also include one or more mass storage devices for storing data (e.g., magnetic, magneto-optical disks, or optical disks), or will be linked to operate for receiving data from or moving data to mass storage devices, or both, although a computer is not required to have such devices. Furthermore, a computer can be embedded in another device (for example, to name just a few, a mobile phone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable storage device (e.g., a Universal Serial Bus (USB) flash drive)).

[0151] Computer-readable media suitable for storing computer program instructions and data include, for example, all forms of non-volatile memory on media and memory devices, including 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. Processors and memory can be supplemented with or incorporated into specialized logic circuitry equipment.

[0152] To interact with a user, embodiments of the subject matter described herein can be implemented on a computer having a display device for displaying information to the user (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor), as well as a keyboard and pointing device (e.g., a mouse or trackball) to which the user can input into the computer. Interaction with the user can be similarly performed using other types of devices; for example, feedback provided to the user can be in the form of perceptual feedback (e.g., visual feedback, auditory feedback, or tactile feedback), and input from the user can be received in any form, including acoustic, utterance, or tactile input. Furthermore, the computer can interact with the user by sending documents to and from the device used by the user, for example, by sending a web page to a web browser on the user's device in response to a request received from a web browser.

[0153] Embodiments of the subject matter described herein can be implemented in a computing system that includes a backend component (e.g., as a data server), or a middleware component (e.g., an application server), or a frontend component (e.g., a client computer having a graphical user interface or web browser that allows a user to interact with an implementation of the subject matter described herein), or any combination of one or more such backend, middleware, or frontend components. The components of the system can 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).

[0154] A computing system can include clients and servers. Clients and servers are generally geographically separated and typically interact through a communication network. The client-server relationship arises from computer programs running on each computer that have a client-server relationship with each other. In some embodiments, the server transmits data (e.g., an HTML page) to a user device that acts as a client (e.g., to display data to a user interacting with the user device and to receive user input from the user). Data generated by the user device (e.g., the results of user interaction) can be received by the server from the user device.

[0155] This specification contains details of many specific implementations, which should be interpreted not as limitations on the scope of any invention or the scope that may be claimed, but rather as descriptions of features that may be specific to a particular embodiment of a particular invention. Certain features described herein in the context of separate embodiments may also be realized in combination within a single embodiment. Conversely, various features described in the context of a single embodiment may also be realized separately in multiple embodiments or in any suitable combination. Furthermore, features described above as functioning in a certain combination and therefore potentially being claimed first, however one or more features from the claimed combination may, in some cases, be removed from the combination, and the claimed combination may cover a combination or a variation thereof.

[0156] Similarly, while the diagrams depict operations in a specific order, this should not be understood as requiring such operations to be performed in a specific order or sequence, or that all shown operations must be performed to achieve the desired result. In certain situations, multitasking and parallel processing may be advantageous. Furthermore, the separation of various system modules and components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated into a single software product or packaged into multiple software products.

[0157] Specific embodiments of the subject matter have been described. Other embodiments are within the scope of the following claims. For example, the actions enumerated in the claims can still achieve the desired results even if performed in a different order. As one example, the processes depicted in the accompanying figures do not necessarily require the specific order or sequence shown to achieve the desired results. In some cases, multitasking and parallel processing may be advantageous. [Explanation of Symbols]

[0158] 10 Systems 11 Bus System 12 Server systems, large-scale parallel computing systems 14. Client System 18 memory 20 Interfaces 24 Processing Devices 30 user-submitted mesh definitions 32 Mesh generation engine 34 Simulation Engines 34a Collision interaction flow particles 34a' Collision interaction module, collision interaction scalar particle 34b Boundary Modules, Boundary Modeling Flow Particles, and Scalar Particles 34c flow Solver 34c' Scala Solver 34d Advection-flow collision interaction module, advection-flow particles 34d' Advection scalar particle collision interaction module, advection scalar particle 38 Data Repositories 45. Lattice Boltzmann Model Simulation 45a~45c Flow distribution 46. ​​Simulation development of particle flow distribution, simulation of fluid particle distribution, lattice Boltzmann simulation processing. 47. Simulation of scalar particle distribution, scalar particle distribution, simulation, LB scalar Solver portion 48 Boundary Layer Processing 52 Advection 100 First model (2D-1) 200 Second model (3D-1) 350 areas 352 Object 354 areas 356 areas 360 areas, some 362 objects, voxels 364 regions, facets 366 areas, the rest 368 voxels 380 parts 382 parts

Claims

1. A scalar solver of a computing system simulates the movement of scalar particles representing a scalar quantity in a fluid volume from a first voxel defined by a lattice structure read from a computer storage device and represented by a state vector, to a second voxel defined by the lattice structure and represented by a state vector, wherein the scalar particles are carried by flow particles in the fluid volume, and the movement of the scalar particles causes scalar collisions between the scalar particles, thereby resulting in the diffusion of the scalar quantity into the volume. The steps include: using a flow solver of the computing system to simulate the motion of flow particles representing the volume of a fluid using a flow grid velocity set, wherein the motion of the flow particles causes flow collisions between the flow particles; The steps include: using the scalar solver of the computing system to find the value of a non-equilibrium post-collision scalar distribution function based on a Hermitian polynomial of a specified order that represents the scalar collision; The steps include: determining the value of a specified-order non-equilibrium post-collision flow distribution function representing the flow collision using the flow solver of the computing system; A computer execution method, including...

2. The method according to claim 1, wherein the scalar distribution function after the non-equilibrium collision is Galilean invariant.

3. The method according to claim 1, wherein the scalar distribution function after non-equilibrium collision is related to the relative velocity of the flow particles within the volume of the fluid.

4. The method according to claim 1, wherein the movement of the scalar particles causes collisions between the scalar particles, which in turn causes the diffusion of the scalar amount into the entire volume.

5. The scalar lattice velocity set, the scalar quantity, and the non-equilibrium post-collision scalar distribution function are, respectively, the first scalar lattice velocity set, the first scalar quantity, and the first non-equilibrium post-collision scalar distribution function, and the method is A computer is used to simulate the motion of a second scalar particle representing a second different scalar quantity in the volume of a fluid, using a second different set of scalar lattice velocity, wherein the second scalar particle is carried by the flow particle in the volume of the fluid, and the motion of the second scalar particle causes a second scalar collision between the second scalar particles; and based on the motion of the second scalar particle, The steps include: finding the value of a second different non-equilibrium post-collision scalar distribution function of a specified order that represents the second scalar collision; The method according to claim 1, further comprising:

6. The method according to claim 1, wherein the scalar distribution function after non-equilibrium collision preserves the non-equilibrium moment for the scalar quantity and eliminates the non-equilibrium moment for the scalar quantity of a higher order than the specified order.

7. The method according to claim 1, wherein the scalar lattice velocity set supports hydrodynamic motion up to a specified order of scalar particle velocity.

8. The method according to claim 7, wherein the specified order is an exponential function value associated with the ratio of fluid velocity to lattice sound velocity, and the scalar lattice velocity set supports the exponential function value.

9. The method according to claim 7, wherein the specified order is selected from zero, first, and second order.

10. A step of determining the relative particle velocity of a particle at a specific location in the volume of the fluid using the flow grid velocity set, wherein the relative particle velocity is the difference between the absolute velocity of the particle at the specific location measured under zero flow of the fluid in the volume and the average velocity of the particle at the specific location in the volume. A step of determining a specified order of non-equilibrium post-collision distribution representing the collision of the particles based on the relative particle velocity. The method according to claim 1, further comprising:

11. The method according to claim 1, wherein, for a fluid flow in a macroscopic situation, the specified order is the first moment proportional to the gradient of the scalar quantity.

12. The method according to claim 1, wherein the scalar distribution function after non-equilibrium collision is proportional to the sum of the scalar lattice velocity sets obtained by dividing the Hermitian polynomial by the factorial of the order multiple of the dimensionless velocity of the fluid.

13. The method according to claim 12, wherein the scalar distribution function after non-equilibrium collision is related to the sum of weighting factors corresponding to the weighting coefficients of the particle distribution function.

14. One or more processors, A memory connected to one or more processors in an operable manner, A computer storage device, The scalar solver of the computing system simulates the movement of scalar particles representing a scalar quantity in a fluid volume from a first voxel, defined by a lattice structure read from the computer storage device and represented by a state vector, to a second voxel, defined by the lattice structure and represented by a state vector, wherein the scalar particles are carried by flow particles in the fluid volume, and the movement of the scalar particles causes scalar collisions between the scalar particles, thereby resulting in the diffusion of the scalar quantity into the volume. The flow solver of the computing system simulates the motion of flow particles representing the volume of a fluid using a flow grid velocity set, wherein the motion of the flow particles causes flow collisions between the flow particles. The scalar solver of the computing system obtains the value of a non-equilibrium post-collision scalar distribution function based on a Hermitian polynomial of a specified order representing the scalar collision, and The flow solver of the computing system obtains the value of a specified-order non-equilibrium post-collision flow distribution function representing the flow collision. A computer storage device that stores instructions for causing one or more processors to perform the above-mentioned action, A computer system equipped with the following features.

15. The computer system according to claim 14, wherein the scalar distribution function after the non-equilibrium collision is Galilean invariant.

16. The computer system according to claim 14, wherein the non-equilibrium post-collision scalar distribution function is related to the relative velocity of the flow particles within the volume of the fluid.

17. The computer system according to claim 14, wherein the movement of the scalar particles causes collisions between the scalar particles, resulting in the diffusion of the scalar amount into the entire volume.

18. The scalar lattice velocity set, the scalar quantity, and the non-equilibrium post-collision scalar distribution function are, respectively, the first scalar lattice velocity set, the first scalar quantity, and the first non-equilibrium post-collision scalar distribution function, and the computer system, The computer system simulates the motion of a second scalar particle representing a second different scalar quantity in the volume of the fluid, using a second different set of scalar lattice velocity, wherein the second scalar particle is carried by the flow particle in the volume of the fluid, and the motion of the second scalar particle causes a second scalar collision between the second scalar particles, and based on the motion of the second scalar particle, To find the value of a second different non-equilibrium post-collision scalar distribution function of a specified order that represents the second scalar collision, and The computer system according to claim 14, further comprising instructions for performing the following actions.

19. A computer program product stored on a non-temporary computer-readable medium, The scalar solver of a computing system simulates the movement of scalar particles representing a scalar quantity in a fluid volume from a first voxel, defined by a lattice structure read from a computer storage device and represented by a state vector, to a second voxel, defined by the same lattice structure and represented by a state vector, wherein the scalar particles are carried by flow particles in the fluid volume, and the movement of the scalar particles causes scalar collisions between the scalar particles, thereby resulting in the diffusion of the scalar quantity into the volume. The flow solver of the computing system simulates the motion of flow particles representing the volume of the fluid using a flow grid velocity set, wherein the motion of the flow particles causes flow collisions between the flow particles. The scalar solver of the computing system obtains the value of a non-equilibrium post-collision scalar distribution function based on a Hermitian polynomial of a specified order that represents the scalar collision. The flow solver of the computing system obtains the value of a specified-order non-equilibrium post-collision flow distribution function representing the flow collision, A computer program product comprising instructions for causing a system having one or more processors and memory for storing programs to perform a certain action.

20. The computer program product according to claim 19, wherein the scalar distribution function after the non-equilibrium collision is Galilean invariant.

21. The computer program product according to claim 19, wherein the non-equilibrium post-collision scalar distribution function is related to the relative velocity of the flow particles within the volume of the fluid.

22. The computer program product according to claim 19, wherein the movement of the scalar particles causes collisions between the scalar particles, resulting in the diffusion of a scalar amount into the entire volume.

23. The scalar lattice velocity set, the scalar quantity, and the non-equilibrium post-collision scalar distribution function are, respectively, the first scalar lattice velocity set, the first scalar quantity, and the first non-equilibrium post-collision scalar distribution function, and the computer program product is, A computer simulation of the motion of a second scalar particle representing a second different scalar quantity in the volume of a fluid, using a second different set of scalar lattice velocity, wherein the second scalar particle is carried by the flow particle in the volume of the fluid, and the motion of the second scalar particle causes a second scalar collision between the second scalar particles, and based on the motion of the second scalar particle, To find the value of a second different non-equilibrium post-collision scalar distribution function of a specified order that represents the second scalar collision, and The computer program product according to claim 19, further comprising instructions for performing the following actions.