Computer systems used to simulate physical processes

By using scalar lattice velocity sets and non-equilibrium collision post-scalar distribution functions, the limitations of LBM in high-speed flow are overcome, achieving stable simulation in high-speed fluid flow, maintaining the advantages of LBM and expanding its application range.

CN112749518BActive Publication Date: 2026-07-31DASSAULT SYSTEMS AMERICAS CORP
View PDF 6 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
DASSAULT SYSTEMS AMERICAS CORP
Filing Date
2020-10-30
Publication Date
2026-07-31

AI Technical Summary

Technical Problem

Existing Lattice Boltzmann (LBM) methods have limitations in simulating high-speed fluid flows, especially in flows with Mach numbers greater than 0.3. Furthermore, finite difference-based solvers lose the advantages of LBM, such as local computation and high scalability.

Method used

By employing scalar lattice velocity sets and non-equilibrium collision post-scalar distribution functions, and by simulating the movement and collision of scalar particles, combined with the Galilean invariance principle, the application scope of LBM is expanded to adapt to high-speed and supersonic flows.

Benefits of technology

It maintains the advantages of LBM in a wide range of applications from low-speed to supersonic flow, improves the stability and scalability of simulations, and can effectively simulate scalar distributions such as temperature, concentration and density in complex fluid flows.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN112749518B_ABST
    Figure CN112749518B_ABST
Patent Text Reader

Abstract

This disclosure relates to computer systems for simulating physical processes. Techniques for scalar solvers in flow simulations are disclosed, including using a scalar lattice velocity set in the computational system to simulate the movement of scalar particles representing scalars in a fluid volume, wherein the scalar particles are carried by flow particles in the fluid volume, and wherein the movement of the scalar particles causes collisions between scalar particles; and evaluating a non-equilibrium collision post-collision scalar distribution function of a specified order representing scalar collisions.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Priority requirements

[0002] This application claims priority to U.S. Provisional Patent Application Serial No. 62 / 927,828, filed October 30, 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. Technical Field

[0003] This description relates to computer simulations of physical processes such as physical fluid flow. Background Technology

[0004] Discrete solutions to the Navier-Stokes differential equations are generated by performing high-precision floating-point arithmetic operations on variables representing macroscopic physical quantities (e.g., density, temperature, flow velocity) at each of many discrete spatial locations, thereby simulating high Reynolds number flows. Another approach replaces the differential equations with something commonly known as a lattice gas (or cellular) automata, where the macroscopic-level simulation provided by solving the Navier-Stokes equations is replaced by a microscopic-level model that performs operations on particles moving between points on the lattice.

[0005] The Lattice Boltzmann Method (LBM) has been used in a wide range of industrial applications involving complex geometries. However, in some cases, LBM is often limited to low Mach number (or Mach flow) flows, such as in applications involving low-velocity flows (approximately Mach number < 0.3). Existing LBM methods for solving scalar quantities such as energy or scalar concentration in various types of flows use finite difference-based solvers. These finite difference-based solvers eliminate many advantages of LBM methods, such as local computation, high scalability, and grid-independent solutions. Summary of the Invention

[0006] The techniques discussed below can overcome many of the fundamental limitations of LBM for high-speed flows mentioned above, and thus allow the use of LBM to simulate a wide range of applications involving not only low-speed flows (e.g., <0.3 Mach numbers) but also high-speed flows (e.g., >0.3 Mach numbers) and supersonic flows (e.g., Mach >1.0 and hypersonic or at least multiples of Mach numbers).

[0007] Instead of using the finite difference method, the techniques discussed below employ scalar solvers (one or more) for scalars(one or more) and additional distribution functions(one or more). The use of scalar solvers preserves the advantages that the LBM technique would otherwise lose when using finite difference-based solvers. These distribution functions are strongly coupled to the flow distribution; that is, these functions are carried by flow particles along the lattice direction.

[0008] According to one aspect, a computer-implemented method includes: using a scalar lattice velocity set by a computing system to simulate the movement of scalar particles representing a scalar in a fluid volume, wherein the scalar particles are carried by flow particles of the fluid volume, and wherein the movement of the scalar particles causes collisions between scalar particles; and evaluating a non-equilibrium collision post-collision scalar distribution function of a specified order representing the scalar collisions.

[0009] The following are some of the features, among others, that fall within the scope of the above-mentioned features as disclosed herein.

[0010] The scalar distribution function after a nonequilibrium collision is Galilean invariant. The scalar distribution function after a nonequilibrium collision is related to the relative velocities of the flow particles in the fluid volume. The movement of the scalar particles that caused the collision leads to scalar diffusion through the volume.

[0011] The method also includes: using a set of flow lattice velocities by a computational system to simulate the movement of flow particles representing the fluid volume, wherein the movement of the flow particles causes collisions between flow particles; and evaluating a non-equilibrium collision post-flow distribution function of a specified order representing the flow collisions.

[0012] The scalar lattice velocity set, scalar and non-equilibrium collision post-scalar distribution function are respectively the first scalar lattice velocity set, the first scalar and the first non-equilibrium collision post-scalar distribution function, and the method further includes: using different second scalar lattice velocity sets in a computer to simulate the movement of second scalar particles representing different second scalars in a fluid volume, wherein the second scalar particles are carried by flow particles in the fluid volume, and wherein the movement of the second scalar particles causes collisions between the second scalar particles; and evaluating different second non-equilibrium collision post-scalar distribution functions of a specified order representing the second scalar collisions based on the movement of the second scalar particles.

[0013] The scalar distribution function after a nonequilibrium collision preserves the nonequilibrium moments with respect to the scalar and eliminates nonequilibrium moments with respect to the scalar above a specified order. The scalar lattice velocity set supports hydrodynamic movement 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 this exponential value. The specified order is selected from zero, first, and second order.

[0014] The method also includes: using a set of flow lattice velocities to determine the relative particle velocities of particles at a specific location within a fluid volume, wherein the relative particle velocity is the difference between the absolute velocity of the particle at the specific location measured under zero flow conditions in the fluid within the volume and the average velocity of the particle at the specific location within the volume; and determining, based on the relative particle velocities, a non-equilibrium post-collision distribution representing a specified order of particle collisions.

[0015] For macroscopic fluid flow, the specified order is the first moment proportional to the gradient of the scalar. The scalar distribution after a nonequilibrium collision is proportional to the sum of the Hermite polynomials of the dimensionless velocity of the fluid within the scalar lattice velocity set, divided by the factorial of the order.

[0016] The scalar distribution after a non-equilibrium collision is related to the sum of the weighting factors corresponding to the weighting factors of the particle distribution function.

[0017] According to another aspect, a computer system includes: one or more processors; and a memory operatively coupled to the one or more processors; a computer storage device storing instructions for causing the one or more processors to: simulate the movement of scalar particles representing scalars in a fluid volume using a scalar lattice velocity set, wherein the scalar particles are carried by flow particles in the fluid volume, and wherein the movement of the scalar particles causes collisions between the scalar particles; and evaluate a non-equilibrium collision post-collision scalar distribution function of a specified order representing the scalar collisions.

[0018] The scalar distribution function after a nonequilibrium collision is Galilean invariant. The scalar distribution function after a nonequilibrium collision is related to the relative velocities of the flow particles in the fluid volume. The movement of the scalar particles that caused the collision leads to scalar diffusion through the volume.

[0019] The computer system also includes instructions for performing the following operations: using a set of flow lattice velocities to simulate the movement of flow particles representing the fluid volume, wherein the movement of the flow particles causes collisions between flow particles; and evaluating a non-equilibrium collision-after-flow distribution function of a specified order representing the flow collisions.

[0020] The scalar lattice velocity set, scalar and non-equilibrium collision post-scalar distribution function are respectively the first scalar lattice velocity set, the first scalar and the first non-equilibrium collision post-scalar distribution function, and the computer system also includes instructions for performing the following operations: using different second scalar lattice velocity sets in the computer to simulate the movement of second scalar particles representing different second scalars in a fluid volume, wherein the second scalar particles are carried by flow particles in the fluid volume, and wherein the movement of the second scalar particles causes collisions between the second scalar particles; and based on the movement of the second scalar particles, evaluating different second non-equilibrium collision post-scalar distribution functions representing second scalar collisions of a specified order.

[0021] The following are some of the features, among others, that fall within the scope of the above-mentioned features as disclosed herein.

[0022] According to another aspect, a computer program product stored on a non-transitory computer-readable medium includes instructions for causing a system comprising one or more processors and a memory storing a program to perform the following operations: using a set of scalar lattice velocities to simulate the movement of scalar particles representing scalars in a fluid volume, wherein the scalar particles are carried by flow particles in the fluid volume, and wherein the movement of the scalar particles causes collisions between the scalar particles; and evaluating a non-equilibrium collision post-collision scalar distribution function of a specified order representing the scalar collisions.

[0023] The following are some of the features, among others, that fall within the scope of the above-mentioned features as disclosed herein.

[0024] The scalar distribution function after a nonequilibrium collision is Galilean invariant. The scalar distribution function after a nonequilibrium collision is related to the relative velocities of the flow particles within the fluid volume.

[0025] The movement of scalar particles that cause collisions between scalar particles leads to scalar diffusion through the volume. The computer program product also includes instructions for performing the following operations: simulating the movement of flow particles representing a fluid volume using a set of flow lattice velocities, where the movement of flow particles causes collisions between flow particles; and evaluating a non-equilibrium post-collision flow distribution function representing a specified order of flow collisions.

[0026] The scalar lattice velocity set, scalar and non-equilibrium collision post-scalar distribution function are respectively the first scalar lattice velocity set, the first scalar and the first non-equilibrium collision post-scalar distribution function, and the computer program product also includes instructions for performing the following operations: using different second scalar lattice velocity sets in a computer to simulate the movement of second scalar particles representing different second scalars in a fluid volume, wherein the second scalar particles are carried by flow particles in the fluid volume, and wherein the movement of the second scalar particles causes collisions between the second scalar particles; and evaluating different second non-equilibrium collision post-scalar distribution functions of a specified order representing the second scalar collisions based on the movement of the second scalar particles.

[0027] One or more of these aspects may include one or more of the following advantages.

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

[0029] Other features and advantages will become apparent from the following description (including the accompanying drawings and claims). Attached Figure Description

[0030] Figure 1 A system for simulating fluid flow, including a scalar solver, is described.

[0031] Figure 2 A flowchart illustrating the operation for planning a simulation of a Lattice Boltzmann Model with a scalar solver is shown.

[0032] Figure 3 A flowchart illustrating the simulation operation using the lattice Boltzmann model is depicted.

[0033] Figure 4 A flowchart illustrating the simulation operation using a scalar solver is depicted.

[0034] Figure 5 This is a flowchart of the process used to generate the distribution function for collision transport.

[0035] Figure 6 It is a flowchart of the process for generating scalar solvers that can be used in a variety of high-speed fluid simulation applications.

[0036] Figure 7 and Figure 8The diagram illustrates the velocity components of two LBM models (existing technology).

[0037] Figure 9 It is a flowchart of the process followed by the physical process simulation system.

[0038] Figure 10 It is a 3D diagram of micro-blocks (existing technology).

[0039] Figure 11A and Figure 11B This is a diagram of a lattice structure (existing technology).

[0040] Figure 12 and Figure 13 The illustration shows variable resolution technology (existing technology).

[0041] Figure 14 The diagram illustrates the region affected by the facets of the surface (prior art).

[0042] Figure 15 The diagram illustrates the movement of particles from the voxel to the surface.

[0043] Figure 16 The diagram illustrates the movement of particles from surface to surface.

[0044] Figure 17 It is a flowchart used to perform surface dynamics. Detailed Implementation

[0045] General methods for solving scalars

[0046] In the systems and methods described herein, a physical process simulation system based on LBM couples the modeling of scalars (as opposed to vectors) with the modeling of fluid flow. Exemplary scalars that can be simulated include temperature, concentration, and density.

[0047] For example, as described in U.S. Patent Application No. 11 / 463,673 (now published as U.S. Patent No. 7,558,714), entitled "Computer Simulation of Physical Process," which is incorporated herein by reference in its entirety, the simulation engine 34 performs an automated process for fluid flow simulation. However, the simulation engine also includes a scalar solver for solving scalar quantities such as temperature, concentration, and density.

[0048] In the following Figure 9 The discussion describes the flow simulation process using scalar solvers and flow solvers for collision transport. Figure 7 , Figure 8 and Figures 10 to 16In this document, these figures are labeled "Prior Art." These figures are labeled Prior Art because they typically appear in the patents cited herein. However, when these figures appear in the cited patents, they do not take into account any modifications to the flow simulation using the scalar solver method described below, as such a scalar solver method is not described in the cited patents.

[0049] 1. Model simulation space

[0050] In a physical process simulation system based on LBM, fluid flow is generated by a set of discrete rates c. i The distribution function value f at the evaluation site i The dynamics of the distribution function are governed by the following equation, where f i eq It is considered an equilibrium distribution function and is defined as:

[0051]

[0052] Among them, f i eq It is considered to be the equilibrium distribution function defined in equation (1.3) below. This equation is the well-known lattice Boltzmann equation, which describes the distribution function f. i The time evolution is shown. The left-hand side represents the change in distribution due to the so-called "flow process." The flow process is the time it takes for a fluid pocket to start at a grid position and move to the next grid position along one of the velocity vectors. At that time, the "collision factor," i.e., the effect of nearby fluid pockets on the starting fluid pocket, is calculated. Fluid can only move to another grid position, so the velocity vectors must be correctly chosen such that all components of all velocities are multiples of the common velocity.

[0053] 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 sacs. The specific form of the collision operator used here should be attributed to Bhatnagar, Gross, and Krook (BGK). It forces the distribution function to reach the specified value given by the second equation as an "equilibrium" form.

[0054] This simulation allows conventional fluid variables, such as mass ρ and fluid velocity u, to be obtained as a simple summation. The LBM model can be implemented efficiently on scalable computer platforms and operates with high robustness to time-instantaneous flows and complex boundary conditions.

[0055] The standard technique for obtaining the macroscopic equations of motion of a fluid system from the Boltzmann equations is the Chapman-Enskog method, which takes successive approximations of the entire Boltzmann equations.

[0056] In fluid systems, small disturbances in density travel at the speed of sound. In gaseous systems, the speed of sound is typically determined by temperature. The importance of the compressibility effect in a flow is measured by the ratio of the characteristic velocity, considered to be at Mach number, to the speed of sound.

[0057] Now refer to Figure 1 The document describes system 10, which includes a flow solver 34c and a scalar solver 34c' for high-speed flow. System 10 in this implementation 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. 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. Memory 18 contains a mesh preparation engine 32 and a simulation engine 34.

[0058] although Figure 1 A mesh preparation engine 32 in memory 18 is shown, but the mesh preparation engine could be a third-party application running on a different system than server 12. Regardless of whether the mesh preparation engine 32 runs in memory 18 or on a different system than server 12, it receives a user-supplied mesh definition 30 and prepares a mesh based on the physical object being modeled for simulation by simulation engine 34, sending (and / or storing) the prepared mesh to simulation engine 34. System 10 accesses a data repository 38 storing 2D and / or 3D meshes (Cartesian and / or curves), coordinate systems, and libraries.

[0059] The simulation engine includes a collision interaction module 34a for flowing particles and a collision interaction module 34a' for scalar particles, a boundary module 34b, and evaluates a flow solver 34c for fluid particle collision transport and a scalar solver 34c' for scalar particle transport. The simulation engine 34 also includes a lateral flow collision interaction module 34d and a lateral scalar particle collision interaction module 34d', which allows flowing particles, along with scalar particles, to advance to the next cell in the mesh.

[0060] In the patents mentioned above and in Figure 5 The discussion of the flow solver 34c is given below. Figure 6 The discussion of the scalar solver 34c' is given in the paper.

[0061] Now refer to Figure 2The diagram illustrates a process 40 for simulating fluid flow around a representation of a physical object. In the example discussed herein, the physical object is an airfoil. However, the use of an airfoil is merely illustrative, as physical objects can have any shape and, in particular, can have planar and / or curved (one or more) surfaces. Process 40 receives, for example, a mesh (or grid) 42 for the physical object (e.g., the airfoil) being simulated, either from a client system 14 or from a data repository 38. In other embodiments, an external system or server 12 generates the mesh for the physical object being simulated based on user input.

[0062] Process 40, for example, receives or retrieves a three-dimensional representation 42 of the wing from client system 14 or from data repository 38. This process pre-computes geometry 44 from the retrieved mesh and performs a dynamic lattice Boltzmann model simulation 45 using the pre-computed geometry corresponding to the retrieved mesh. The lattice Boltzmann model simulation 45 includes the simulated evolution of particle flow distribution 46 and the performance of boundary layer processing 48 as the flow impacts the physical surface. The movement of the flow particles causes collisions between the flow particles used in the flow solver 34c.

[0063] Process 40 also uses a scalar lattice velocity set to simulate one or more additional scalar particle distributions 47, and performs scalar particle boundary layer processing 48 when the flow carrying scalar particles, as discussed above, impacts the physical surface. These scalar particles represent the movement of scalars within the fluid volume, carried by the flow of particles in the fluid volume. The movement of the scalar particles causes collisions between scalar particles used in the scalar solver 34c'. The process performs advection of the flow particles and scalar particles to the next cell 52 in the LBM mesh.

[0064] Now refer to Figure 3 The lattice Boltzmann simulation process 46 simulates the evolution of the flow particle distribution based on the lattice Boltzmann equation (LBE) 46a. Process 46 (see...) Figure 2 The process involves performing a collision operation 46b (and collecting a set of incoming distributions from neighboring mesh locations from the collision operation), evaluating the flow at the physical boundary 46c based on boundary modeling, and advecting particles to the next cell 46d in the LBM space. Details of the LB collision solver 34c are given in U.S. Patent No. 9,576,087 (which is incorporated herein by reference in its entirety) and in the following discussion.

[0065] Now refer to Figure 4The lattice Boltzmann simulation process 45 also includes a scalar particle distribution 47 based on the lattice Boltzmann equation (LBE). The LB scalar distribution is performed in parallel with the flow distribution 45a-45c of the simulation 45. The LB scalar solver part 47 simulates the evolution of the scalar particle distribution according to the lattice Boltzmann equation (LBE) 47a, performs a collision operation (collecting the set of incoming distributions from neighboring mesh locations from the collision operation) 47b, uses the scalar solver 34c' to evaluate the flow at the physical boundary based on boundary modeling 47c, and performs the advection of scalar particles to the next cell in the LBM space 47d.

[0066] In the following text and in Figure 6 The details of the Lattice Boltzmann Scalar Solver (LB Scalar Solver or simply Scalar Solver) are given in the document.

[0067] The time evaluation considering the flow distribution and the scalar distribution function is given below:

[0068]

[0069]

[0070] In equation (1.2), q represents a specific scalar solver. Therefore, equation (1.2) is derived from equation (1.1), where the terms in equation (1.2) are functions of q. Additionally, i is the index number of the lattice velocity in the set; c i It is the lattice velocity; x is a specific position within the volume; t is a specific time point; dt is the time increment; f i eq It is the equilibrium distribution of particles; It is a scalar equilibrium distribution; f i It is the actual particle distribution of the flow; q i It is the actual quantity of the scalar distribution; f i 'This is called the post-collision distribution of particles; q i 'This is called the post-collision distribution of the scalar; Ω' fi This represents the collision of fluid particles, and its specific forms are discussed below; and Ω qi This represents a collision of scalar particles, and its specific forms are discussed below.

[0071] As given in equation (1.2), multiplying the scalar distribution by the flow distribution can be visualized as a scalar being carried along with the flow particles. The total scalar (a specific scalar multiplied by the density) is given. The equilibrium particle density distribution based on the Hermitian polynomial is given below:

[0072]

[0073] in, It is a dimensionless lattice velocity; It is a dimensionless fluid velocity; It is a temperature constant specific to the lattice set used; It is the Nth order Hermitian polynomial; ρ is the density of the fluid; and w i It is the lattice weight factor.

[0074] The equilibrium distribution of scalar values ​​is simply their average value at a given time and location, given as follows:

[0075]

[0076] 2. Collision process

[0077] Collision is one of the two fundamental processes in molecular dynamics, the other being advection. The stability of an LBM solver depends on the collision method employed. Collision processes in LBM serve the same purpose as molecular collisions in real fluid systems. Collision processes obey fundamental physical requirements such as conservation of mass and momentum. In the case of a scalar solver, the scalar concentration must be conserved. These quantities, such as velocity, density, and scalar concentration, are calculated by taking the moments of the distribution function (multiplied by the sum of the distribution functions of the lattice velocities).

[0078]

[0079]

[0080] Where i is the index of the lattice velocity in the set; x is the specific location within the volume; f i It is the actual particle distribution of the flow; q i ρ is the actual quantity of the scalar distribution; t is a specific point in time; ρ is the density of the fluid; u is the velocity of the flow; and q is the scalar concentration.

[0081] The collision process is extremely complex and highly nonlinear. A simple collision operator (the so-called BGK collision) represents the linear form of the collision as:

[0082]

[0083]

[0084] Where i is the index number of the lattice velocity in the set; f i eq It is the equilibrium distribution of particles; It is a scalar equilibrium distribution; f i It is the actual particle distribution of the flow; q i It is the actual quantity of the scalar distribution; Ω fiIndicates particle collision; Ω qi Represents the collision of scalar particles; τ is the relaxation time of the flow; and τ q It is the relaxation time of a scalar.

[0085] The choice of relaxation time depends on the actual physical properties of the fluid. For the flow solver 34c, the value of the relaxation time τ is a function of the fluid viscosity.

[0086]

[0087] Furthermore, for scalar particles, the relaxation time τ q Depending on its diffusion rate,

[0088]

[0089] Where τ is the relaxation time of the flow; τ q T0 is the scalar relaxation time; V is the temperature constant of the lattice set used; K is the kinematic viscosity of the flow; and K is the scalar diffusivity.

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

[0091]

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

[0093] 3. Regularized collision operator

[0094] In addition to the moments discussed earlier, the following higher-order moments related to momentum flux and scalar flux are equally important.

[0095]

[0096]

[0097] Where, ε i It is a dimensionless velocity; i is the index of the lattice velocity in the set; x is a specific position within the volume; t is a specific time point; π eq (x,t) is the momentum flux of the equilibrium distribution function; It is the scalar flux of the equilibrium distribution function; f i eq It is the equilibrium distribution of particles; It represents the equilibrium distribution of scalars; u is the dimensionless fluid velocity; p is the fluid pressure.

[0098] Similarly, the higher-order moments of the actual particle distribution function and the scalar distribution function are given by the following:

[0099]

[0100]

[0101] Where π is the actual momentum flux; and These are actual scalar fluxes. These moments π(x,t) and It can be divided into two parts: a moment caused by the equilibrium contribution, given by equations (3.1) and (3.2), and another moment caused by the non-equilibrium flux contribution. The non-equilibrium flux contribution is caused by the deviation of the actual distribution function from its equilibrium counterpart.

[0102]

[0103]

[0104] Where, π neq (x,t) is the non-equilibrium contribution to momentum flux; It is the non-equilibrium contribution to scalar flux.

[0105] The lattice set used for LBM has a finite number of lattice orientations, and therefore supports a finite number of moments known as the "order" of the lattice. Due to this limitation of the lattice set, BGK collisions involving all higher-order moments in non-equilibrium result in a low stability range.

[0106] As described in U.S. Patent No. 9,576,087, which is incorporated herein by reference in its entirety, a regularized collision operator, also known as a filtered collision operator, can be used to enhance the stability of LBMs by computing only the necessary moments and relaxing them during the collision process. The form of the filtered collision operator can be expressed as:

[0107]

[0108]

[0109] Where, ε i is the dimensionless velocity of the i-th cell; i is the index of the cell velocity in the set; x is a specific position within the volume; t is a specific time point; It is a Hermitian polynomial; π neq It is a non-equilibrium contribution to momentum flux; It is the non-equilibrium contribution to scalar flux; Ω fi Indicates particle collision; Ω qiIndicates a scalar collision.

[0110] 4. Galilean invariance in collision operators

[0111] The filtered collision form described above can be used in applications involving relatively low fluid velocities (e.g., <0.3 Mach). According to the fundamental principle of Galilean invariance, the distribution function of a multi-particle system (both equilibrium and non-equilibrium distributions) should be a function of the particle velocities relative to its local fluid velocity, rather than to any particular frame of reference (e.g., the frame of a stationary lattice). Indeed, it can be shown that an infinite Hermite-extended equilibrium distribution function allows for a compact and Galilean-invariant form similar to the Maxwell-Boltzmann distribution, as shown in Equation (4.1).

[0112]

[0113] Where i is the index number of the lattice velocity in the set; ε i It is the dimensionless lattice velocity; ρ is the flow density; w i It is the lattice weighting factor; u is the dimensionless fluid velocity at any given location; and f i eq It is the equilibrium distribution of particles.

[0114] According to (ε) i -u) is expressed as the particle velocity relative to the local fluid velocity, as in equation (4.1). It is clear that ε i The particle velocity is in the reference frame of the stationary lattice. Therefore, a similar compact Galilean-invariant form can be used for the non-equilibrium distribution function. The first task to accomplish the above is to redefine the appropriate hydrodynamic torque.

[0115] As an alternative to equations (3.5) and (3.6) defined in a specific absolute reference frame of a stationary lattice, they need to be replaced with their counterparts in a relative reference frame based on the relative particle velocities.

[0116]

[0117]

[0118] Where i is the index number of the lattice velocity in the set; ε i It is a dimensionless lattice velocity; π neq It is a non-equilibrium contribution to momentum flux; The non-equilibrium contribution to scalar flux; f i eq It is the equilibrium distribution of particles; It is a scalar equilibrium distribution; f i It is the actual particle distribution of the flow; qi It is the actual quantity of the scalar distribution; u is the dimensionless fluid velocity at any given location.

[0119] However, due to the conservation of momentum and scalar concentration (i.e., and The non-equilibrium momentum flux and scalar flux in the reference frame are the same as the non-equilibrium flux at rest.

[0120] Therefore, the goal is to obtain a suitable Galilean-invariant program for non-equilibrium distributions. The complete functional form of the equilibrium distribution is Galilean-invariant, so the objective is to relate the non-equilibrium distribution to its equilibrium counterpart.

[0121] The following briefly discusses the basic concept of how non-equilibrium distributions can be expressed as functions of equilibrium distributions within the framework of fundamental physics in dynamics. Equilibrium and non-equilibrium distributions are intrinsically related to each other via the dynamics of the Boltzmann equations. In principle, non-equilibrium distributions can be expressed as functions of equilibrium distributions. In practice, such explicit functional forms can be expressed either as infinite series of powers of spatial and temporal derivatives via the so-called Chapman-Enskoglund extension, or as precise and compact forms under specific microscopic conditions. In U.S. Patent No. 9,576,087, a new scheme for non-equilibrium fluid states, as the product of equilibrium distribution and non-equilibrium momentum flux, is proposed.

[0122]

[0123] Where ε′=(ε-u) is the relative velocity; π neq It is the non-equilibrium contribution to momentum flux; f eq It is the equilibrium distribution of particles; f neq It represents the non-equilibrium of particles; D is the dimension of the system; and ρ is the density of the flow.

[0124] By comparing these terms, the final compact form is obtained as follows:

[0125]

[0126] Where i is the index number of the lattice velocity in the set, ε i ′=(ε i -u) is the relative velocity, π neq This is the non-equilibrium contribution of momentum flux, f i eq It represents the equilibrium distribution of particles, and ρ is the density of the fluid.

[0127] If the supported set of lattice velocities has an infinite order of isotropy, then it is feasible to use the fully Galilean invariant forms of balanced distributed (1.3) and unbalanced distributed (4.5). For any given lattice with finite order of precision, these functions are truncated. Following a certain derivation, for any given lattice with finite order of isotropy, the following expression is obtained:

[0128]

[0129] Among them, w i It is the lattice weighting factor, and u is the dimensionless fluid velocity. It is a Hermitian polynomial, π neq It is the non-equilibrium contribution to momentum flux, and f i neq It refers to the non-equilibrium distribution of particles in the i-th lattice.

[0130] The zeroth order (i.e., n=2) of the above form will recover the regularized collision operator. The first and second orders of Equation (4.6) are explicitly given as follows:

[0131]

[0132]

[0133] 5. Extensions to scalar solvers

[0134] The Galilean-invariant filtered collision extension for the flow solver improves the stability of the flow collision solver and enables simulations of transonic and supersonic applications. Similar to the flow solver 34c, the scalar solver 34c' is Galilean-invariant because the fundamental governing equations satisfy the Galilean invariance requirement. In a similar theoretical manner, nonequilibrium scalar fluxes can be expressed in terms of their equilibrium distribution, relative velocities, and correlation moments. For normal flow in macroscopic states, only the first moment, proportional to the scalar gradient, is relevant. The approximate nonequilibrium form as an infinite series can be given as:

[0135]

[0136] Where ε′=(ε-u) is the relative velocity, It is the non-equilibrium contribution to scalar flux, (fq) eq It is a balanced distribution of the total scalar, and (fq) neq It is an imbalance of the total scalar.

[0137] For a given set of lattices with a finite number of lattices, the above expression can be rewritten in a compact form as:

[0138]

[0139] Where i is the index number of the lattice velocity in the set, ε′ i =(ε i -u) is the relative velocity of the flow, f i eq It is the equilibrium distribution of particles in the i-th lattice. It is an imbalance of the total scalar, and It is the non-equilibrium contribution to scalar flux.

[0140] Similar to flow distributions, the above form cannot be realized in its actual form due to the limitation of the order of isotropy. For a given lattice with isotropy of finite order, the above equation is truncated and, after a certain derivation, yields the following final form as in equation (5.3).

[0141]

[0142] Among them, w i It is a weighting factor, where u is the dimensionless fluid velocity. It is a Hermitian polynomial. It is an imbalance of the total scalar, and It is the non-equilibrium contribution to scalar flux.

[0143] The zeroth-order form of the above expression (i.e., n=1) will recover the filtered (regularized) collision operator. The first-order and second-order forms of equation (5.3) explicitly expressed are given below:

[0144]

[0145]

[0146] Reference Figure 5 and Figure 6 The diagram shows a processing flow 60 for the flow solver 34c and a processing flow 70 for one or more scalar solvers 34c'.

[0147] from Figure 5 Initially, the flow solver process 60 provides a lattice velocity set 62 to support the necessary hydrodynamic torques up to a specified order. The process 60 simulates the movement 64 of particles within the fluid volume within the lattice velocity set and determines the deviation 66 of the particle distribution relative to one or more equilibrium values, which is the non-equilibrium momentum flux of the particles. By determining the deviation (one or more) of the particle distribution, the process determines a Galilean-invariant post-collision distribution function 68, which is a function of the non-equilibrium flux and the equilibrium particle distribution. Details of the flow solver process are described in U.S. Patent No. 9,576,087 above.

[0148] Reference Figure 6The diagram illustrates a process 70 for one or more scalar solvers. Process 70 provides additional sets of lattice velocities 72 to support the necessary moments for the additional scalars, e.g., one additional set of lattice velocities per scalar. Process 70 simulates the movement 74 of one or more scalar functions carried by the flow particles using the additional lattice velocities and determines any deviations 76 of the scalar functions relative to their respective averages, which are the non-equilibrium contribution fluxes of the scalars. Process 70 for the scalar solver determines a Galilean-invariant post-collision distribution function 78 for the scalars as a function of the non-equilibrium fluxes and the equilibrium values ​​of the scalars.

[0149] The following provides a general discussion of LBM-based simulation systems, including the scalar solver process 70 used for fluid flow simulation.

[0150] Reference Figure 7 The first model (2D-1) 100 is a two-dimensional model comprising 21 velocities. Among these 21 velocities, one velocity (105) represents a particle that is not moving; three sets of four velocities represent particles moving along the x or y axis of the lattice in the positive or negative direction at a normalized rate (r) (110-113), twice the normalized rate (2r) (120-123), or three times the normalized rate (3r) (130-133); and two sets of four velocities represent particles moving relative to both the x and y lattice axes at a normalized rate (r) (140-143) or twice the normalized rate (2r) (150-153).

[0151] For example Figure 8 As shown in the diagram, the second model (3D-1)200 is a three-dimensional model comprising 39 velocities, each of which is represented by... Figure 8 One of the arrows indicates that the particle is not moving. Of these 39 velocities, one velocity represents a particle that is not moving; three groups of six velocities represent particles moving along the x, y, or z axes of the lattice in the positive or negative direction at a normalized rate (r), twice the normalized rate (2r), or three times the normalized rate (3r); eight velocities represent particles moving at a normalized rate (r) relative to all three x, y, z lattice axes; and twelve velocities represent particles moving at twice the normalized rate (2r) relative to two of the x, y, z lattice axes.

[0152] More complex models, such as a 3D-2 model with 101 velocities and a 2D-2 model with 37 velocities, can also be used. Velocity is described more clearly by the components of velocity along each axis, as recorded in Tables 1 and 2, respectively.

[0153] For the 3D-2 model with 101 velocities, one velocity represents a particle that is not moving (Group 1); three groups of six velocities represent particles moving along the x, y, or z axes of the lattice in the positive or negative direction at a normalized rate (r), twice the normalized rate (2r), or three times the normalized rate (3r) (Groups 2, 4, and 7); and three groups of eight velocities represent particles moving relative to all three x, y, and z lattice axes at a normalized rate (r), twice the normalized rate (2r), or three times the normalized rate (3r) (Groups 3, 8, and 9). 10); Twelve velocities represent two particles moving at twice the normalized rate (2r) relative to the x, y, z lattice axes (group 6); Twenty-four velocities represent two particles moving at the normalized rate (r) and twice the normalized rate (2r) relative to the x, y, z lattice axes without moving relative to the other axes (group 5); and twenty-four velocities represent two particles moving at the normalized rate (r) relative to the x, y, z lattice axes and three times the normalized rate (3r) relative to the other axes (group 9).

[0154] For the 2D-2 model with 37 velocities, one velocity represents a particle that is not moving (Group 1); three groups of four velocities represent particles moving along the x or y axis of the lattice in the positive or negative direction at a normalized rate (r), twice the normalized rate (2r), or three times the normalized rate (3r) (Groups 2, 4, and 7); two groups of four velocities represent particles moving at a normalized rate (r) or twice the normalized rate (2r) relative to both the x and y lattice axes; eight velocities represent particles moving at a normalized rate (r) relative to one of the x and y lattice axes and twice the normalized rate (2r) relative to the other axis; and eight velocities represent particles moving at a normalized rate (r) relative to one of the x and y lattice axes and three times the normalized rate (3r) relative to the other axis.

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

[0156] A. Example

[0157] Reference Figure 9The physical process simulation system operates according to process 300 to simulate physical processes such as fluid flow. Prior to simulation, the simulation space is modeled as a collection of volume elements (302). Typically, a computer-aided design (CAD) program is used to generate the simulation space. For example, a CAD program can be used to draw an airfoil located in a wind tunnel. The data generated by the CAD program is then processed to add a lattice structure with appropriate resolution and to account for the airfoil and its surfaces within the simulation space. As mentioned above, any physically formed device can serve as the subject of the fluid flow simulation, and the scalar properties of the physically formed device can be evaluated using a scalar solver.

[0158] The lattice resolution 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 (L) of the objects in the flow, and the characteristic velocity (u) of the flow.

[0159] Re = uL / ν. Equation (I-2)

[0160] The feature length of an object represents a large-scale feature of the object. For example, if simulating flow around a micro-device, the height of the micro-device can be considered as the feature length. When the flow of interest is around a small region of an object (e.g., a side mirror of a car), the simulation resolution can be increased, or a region with increased resolution can be used around the region of interest. The dimension of a voxel decreases as the resolution of the lattice increases.

[0161] The state space is represented as f i (x,t), where f i This represents the number of elements or particles per unit volume at a lattice point represented by a three-dimensional vector x at time t, in state i (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 a lattice site is represented as f(x).

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

[0163] Each state i represents a different velocity vector at a specific energy level (i.e., energy level zero, one, or two). The velocity c of each state... i Its "rate" in each of the three dimensions is indicated as follows:

[0164] c i =(c i,x ,c i,y ,c i,z ). Formula (I-3)

[0165] The zero state of an energy level represents no movement in any dimension (i.e., c). 停止 A particle is stationary at (0,0,0). Energy level one represents a particle with a velocity of ±1 in one of the three dimensions and zero velocity in the other two dimensions. Energy level two 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.

[0166] The generation of these three energy levels by all possible permutations gives a total of 39 possible states (1 energy zero state, 6 energy one states, 8 energy three states, 6 energy four states, 12 energy eight states and 6 energy nine states).

[0167] Each volume element (i.e., each lattice site) is represented by a state vector f(x). The state vector fully defines the state of the volume element and consists of 39 entries. These 39 entries correspond to one energy zero state, six energy one states, eight energy three states, six energy four states, twelve energy eight states, and six energy nine states. By using this set of velocities, the system can generate Maxwell-Boltzmann statistics for the realized equilibrium state vector.

[0168] B. Micro-blocks

[0169] Now refer to Figure 10 The diagram illustrates microblocks. For processing efficiency, voxels are grouped into 2×2×2 volumes called microblocks. Microblocks are organized to allow for parallel processing of voxels and to minimize the overhead associated with data structures. The shorthand notation for voxels within a microblock is defined as N. i (n), where n represents the relative position of the lattice site within the microblock, and n∈{0,1,2,…,7}.

[0170] Reference Figure 11A and Figure 11B Surface S( Figure 11A In the simulated space ( Figure 11B In the representation, it is called a face element F. α The set of:

[0171] S={F α} Formula (I-4)

[0172] Here, α is the index enumerating a specific surface element. Surface elements are not limited to volume element boundaries, but are typically approximately equal to or slightly smaller than the dimensions of adjacent volume elements, such that the surface element influences a relatively small number of volume elements. Properties are assigned to surface elements for the purpose of achieving surface dynamics. Specifically, each surface element F... α All have unit normal (n) α ), surface area (A α), center position (x) α ) and the surface distribution function (f) that describes the surface dynamics properties of the surface element. i (α)).

[0173] Reference Figure 12 Different levels of resolution can be used in different regions of the simulation space to improve processing efficiency. Typically, the region 350 surrounding object 352 is of the greatest interest and is therefore simulated at the highest resolution. Since the effect of viscosity decreases with distance from the object, a lower level of resolution (i.e., an expanded volumetric volume) is used to simulate regions 354 and 356 spaced at increased distances from object 352.

[0174] Similarly, such as Figure 13 As illustrated in the diagram, a lower level of resolution can be used to simulate the region 360 surrounding less important features of object 362, while the highest level of resolution can be used to simulate the region 364 surrounding the most important features of object 362 (e.g., the front and rear surfaces). The lowest level of resolution and the largest voxels are used to simulate the outer region 366.

[0175] C. Identify volume elements affected by surface elements

[0176] Refer again Figure 9 Once the simulation space has been modeled (302), volume elements affected by one or more surface elements are identified (304). Volume elements can be affected by surface elements in several ways. First, volume elements intersecting with one or more surface elements are affected because they have a reduced volume relative to non-intersecting volume elements. This occurs because the surface element and the material beneath the surface it represents occupy a portion of the volume element. Fraction factor P f (x) indicates the portion of a volume element unaffected by surface elements (i.e., the portion that can be occupied by the flow or other material being simulated against it). For non-intersecting volume elements, P f (x) equals 1.

[0177] A volume element that interacts with one or more surface elements by transferring particles to or receiving particles from a surface element is also identified as a volume element affected by the surface element. All volume elements intersecting with a surface element will include at least one state of receiving particles from the surface element and at least one state of transferring particles to the surface element. In most cases, additional volume elements will also include such states.

[0178] Reference Figure 14 For a non-zero velocity vector c i For each state i, the surface element F α From the parallelepiped G iα A defined region receives particles or transfers particles to a parallelepiped G.iα The defined region, the parallelepiped G iα Having a unit normal n of surface elements α and velocity vector c i The vector dot product (|c i n i The height is limited by the size of |) and the surface area A of the element. α The base is defined such that the parallelepiped G iα Volume V iα equal:

[0179] V iα =|c i n α |A α Formula (I-5)

[0180] Surface element F α The velocity vector in the state points towards the surface element (|c) i n i When |<0), from volume V iα Receives particles, and the velocity vector of the state points away from the surface element (|c i n i When |>0), the particle is transferred to that region. As will be discussed below, when another facet occupies the parallelepiped G iα When this occurs in part of a feature (such as near a non-convex feature like an interior angle), the expression must be modified.

[0181] Surface element F α parallelepiped G iα It can partially or completely overlap with multiple voxels. The number of voxels or portions thereof depends on the size of the facet relative to the voxel size, the energy of the state, and the orientation of the facet relative to the lattice structure. The number of affected voxels increases with the size of the facet. Therefore, as mentioned above, the size of the facet is usually chosen to be approximately equal to or smaller than the size of the voxels located near the facet.

[0182] The volume element N(x) is subjected to the parallelepiped G iα The overlapping portion is defined as V iα (x). Using this term, in volume element N(x) and surface element F α The flux Γ of the i-th particle moving between states iα (x) is equal to the density (N) of state i particles in the volume element. i (x) multiplied by the volume (V) of the region overlapping with the volume element. iα (x)):

[0183] Γ ia (x)=N i (x)V ia(x) Equation (I-6).

[0184] When parallelepiped G iα The following condition is true when intersected by one or more face elements:

[0185] V ia =∑V a (x)+ΣV ia (β) Formula (I-7)

[0186] The first summation considers all values ​​of G. iα Overlapping volume elements, and the second term considers all elements related to G. iα Intersecting surface elements. When the parallelepiped G iα When not intersected by another face element, the expression simplifies to:

[0187] V ia =∑V ia (x) Equation (I-8).

[0188] D. Perform simulation

[0189] Once a volume element affected by one or more surface elements is identified (step 304), a timer is initialized to begin the simulation (step 306). During each time increment of the simulation, a set of elements 307 is executed, including the simulation of particle movement from volume element to volume element by considering the advection phase (steps 308-316) of particle interaction with surface elements. Next, a collision phase (step 318) simulates the interaction of particles within each volume element. Thereafter, the timer is incremented (step 320). If the incremented timer does not indicate that the simulation is complete (step 322), the advection and collision phases are repeated (steps 308-320). If the incremented timer indicates that the simulation is complete (step 322), the simulation results are stored and / or displayed (step 324). A scalar solver procedure 330 implementing the features discussed above is also shown. The scalar procedure 330 includes the instantiation of element 307, but is instantiated and executed using an additional set of lattice velocities (one or more) supporting the necessary moments of the additional (one or more) scalar(s) as discussed above.

[0190] 1. Surface boundary conditions

[0191] To correctly simulate interactions with surfaces, each surface element should satisfy four boundary conditions. First, the combined mass of particles received by the surface element should be equal to the combined mass of particles transferred from the surface element (i.e., the net mass flux to the surface element should be zero). Second, the combined energy of particles received by the surface element should be equal to the combined energy of particles transferred from the surface element (i.e., the net energy flux to the surface element should be zero). These two conditions can be satisfied by requiring that the net mass flux at each energy level (i.e., energy levels one and two) be zero.

[0192] The other two boundary conditions relate to the net momentum of the particles interacting with the surface element. For a surface without surface friction (referred to as a sliding surface in this paper), the net tangential momentum flux should be zero and the net normal momentum flux should be equal to the local pressure at the surface element. Therefore, the combined received momentum and rotational momentum interact with the normal n of the surface element. α The perpendicular components (i.e., the tangential components) should be equal, while the combined received momentum and rotational momentum should be equal to the normal n of the surface element. α The difference between the parallel components (i.e., the normal components) should be equal to the local pressure at the surface element. For a non-slip surface, surface friction causes the combined tangential momentum of the particles transferred from the surface element to decrease relative to the combined tangential momentum of the particles received by the surface element by a factor related to the amount of friction.

[0193] 2. From volume elements to surface elements

[0194] As a first step in simulating the interaction between particles and a surface, particles are gathered from a volume element and provided to a surface element (308). As described above, the volume element N(x) and the surface element F α The flux of the particle in state i is:

[0195] Γ iα (x)=N i (x)V iα (x) Equation (I-9)

[0196] Therefore, for the pointing element F α (c i n α For each state i of <0), the volume element provides it to the surface element F. α The number of particles is:

[0197] Γ iαV→F =∑ X Γ iα (x)=∑ X N i (x)V iα (x) Equation (I-10)

[0198] Only V should be used iα (x) Summation is performed on volume elements with non-zero values. As mentioned above, the size of the surface elements is chosen such that for only a small number of volume elements, V iα (x) has a non-zero value. Because V iα (x) and P f (x) can have non-integer values, so Γ α (x) is stored and processed as a real number.

[0199] 3. Move from one element to another.

[0200] Next, the particle moves between the facets (310). If for facet F... α The incoming state (c) i n α Parallelix G with <0) iα By another face F β If they intersect, then it is determined by the surface element F. α A portion of the received state i particle will originate from the surface element F. β Specifically, element F α Received from surface element F during the previous time increment β A portion of the generated state i particle.

[0201] Now refer to Figure 16 The illustration shows the area formed by the element F during the previous time increment. β The relationship between the generated state i particles. Figure 16 The diagram shows a parallelepiped G. iα The surface element F β The intersecting portion 380 is equal to the parallelepiped G. iβ The surface element F α The intersecting portion is 382. As mentioned above, the intersecting portion is represented by V. iα (β). Using this item, the element F β Mixing Element F α The flux of particle i in state i can be described as:

[0202] Γ iα (β,t-1)=Γ i (β)V iα (β) / V iα Formula (I-11)

[0203] Among them, Γ i (β,t-1) is the value of the surface element F during the previous time increment. β The measure of the generated state i particle. Therefore, for the pointing surface element F... α (c i n α For each state i of <0), it is provided to the surface element F by other surface elements. α The number of particles is:

[0204] Γ iαF→F =∑ β Γ iα (β)=∑ β Γ i (β,t-1)V iα (β) / V iα Formula (I-12)

[0205] And the total flux of the particles entering state i of the surface element is:

[0206]

[0207] The state vector N(α) of the surface element, also known as the surface element distribution function, has M entries corresponding to the M entries of the volume element state vector. M is the number of discrete lattice velocities. The input states of the surface element distribution function N(α) are set to be equal to the flux of particles entering those states divided by the volume V. iα For c i n α <0,

[0208] N i (α)=Γ i进 (α) / V iα Formula (I-14).

[0209] The surface distribution function is a simulation tool used to generate the output flux from a surface element, and does not necessarily represent the actual particle. To generate an accurate output flux, values ​​are assigned to other states of the distribution function. The outward states are filled using the techniques described above for filling inward states: for c i n α ≥0,

[0210] N i (α)=Γ i其它 (α) / V iα Formula (I-15)

[0211] Among them, the above-mentioned method for generating Γ is used. i进 (α) technology but in addition to the input state (c) i n α States other than <0) (c i n α ≥0) This technique is applied to determine Γ i其它 (α). In the alternative approach, Γ from a previous time can be used. i出 (α) value to generate Γ i其它 (α), such that:

[0212] Γ i其它 (α,t)=Γ i出 Equation (I-16) (α,t-1)

[0213] For parallel state (c) i n α =0), V iα and V iα (x) Both are zero. In N i In the expression for (α), V iα (x) appears in the molecule (according to Γ) i其它(α) expression), and V iα Appears in the denominator (according to N) i (the expression for α). Therefore, when V iα and V iα When (x) approaches zero, for N in the parallel state i (α) was determined to be N i The limit of (α). At the start of the simulation, the values ​​of the states with zero velocity (i.e., the rest 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.

[0214] 4. Perform surface dynamics of surface elements

[0215] Next, surface dynamics are performed for each surface element to satisfy the four boundary conditions (312) discussed above. Figure 17 The diagram illustrates the process for performing surface dynamics on a surface element. As shown, this process is performed on convective particles and scalar particles. Initially, the momentum P(α) of the combined momentum of the particles at the surface element is determined by the following equation for the direction perpendicular to the surface element F. α The combined momentum (382): for all i,

[0216]

[0217] Therefore, the normal momentum P n (α) is determined to be:

[0218] P n (α)=n α P(α) Equation (I-18).

[0219] The normal momentum (384) is eliminated using a push / pull technique to generate N. n- (α). According to this technique, particles move between states in a manner that affects only their normal momentum. The push / pull technique is described in U.S. Patent No. 5,594,671, which is incorporated herein by reference.

[0220] After that, N n- (α) particle collisions to produce the Boltzmann distribution N n-β (α)(386). As shown below with respect to the fluid dynamics description, it can be achieved by targeting N. n- The set of collision rules (α) is applied to each of the flow distribution and scalar distribution to realize the Boltzmann distribution.

[0221] The surface element F is determined based on the input flux distribution and Boltzmann distribution. α The outgoing flux distribution (388).

[0222] First, the input flux distribution Γ i The difference between (α) and the Boltzmann distribution is determined as:

[0223] ΔΓ i (α)=Γ i进 (α)-N n-βi (α)V iα Formula (I-19)

[0224] Using this difference, the outgoing flux distribution is: for n α c i >0,

[0225] Γ i出 (α)=N n-βi (α)V iα -.Δ.Γ i *(α) Formula (I-20)

[0226] Furthermore, i* represents a state with the opposite direction to state i. For example, if state i is (1,1,0,0), then state i* is (-1,-1,0,0). Considering surface friction and other factors, the outflow flux distribution can be further refined to: for n α c i >0,

[0227] Γ i出 (α)=N n-Bi (α)V iα -ΔΓ i *(α)+

[0228] C f (n α ·c i )-[N n-βi *(α)-N n-βi (α)]V iα +(n α ·c i )(t 1α ·c i )ΔN j,1 V iα +(n α ·c i )(t 2α ·c i )ΔN j,2 V iα Formula (I-21)

[0229] Among them, C f It is a function of surface friction, t iα It is perpendicular to n α The first tangential vector, t 2αIs with n α and t 1α The two perpendicular second tangential vectors, and ΔN j,1 and ΔN j,2 It is the distribution function corresponding to the energy (j) of state i and the indicated tangential vector. The distribution function is determined according to the following formula:

[0230]

[0231] For state 1, j equals 1, while for state 2, j equals 2.

[0232] Γ i出 The functions of the terms in equation (α) are as follows. The first and second terms enforce the normal momentum flux boundary condition to such an extent that the collisions effectively produce a Boltzmann distribution, but include an anomaly in the tangential momentum flux. The fourth and fifth terms correct for this anomaly, which can be caused by discrete effects or non-Boltzmann structures resulting from insufficient collisions. Finally, the third term adds a specified amount of surface friction to force a desired change in the tangential momentum flux on the surface. The coefficient of friction C is described below. f The generation of vectors. Note that all terms involving vector manipulation are geometric factors that can be calculated before the simulation begins.

[0233] Therefore, the tangential velocity is determined as:

[0234] u i (α)=(P(α)-P n (α)n α ) / ρ, formula (I-23)

[0235] Where ρ is the density of the surface element distribution:

[0236]

[0237] As before, the difference between the input flux distribution and the Boltzmann distribution is defined as:

[0238] ΔΓ i (α)=Γ i进 (α)-N n-βi (α)V iα Formula (I-25).

[0239] Then, the outgoing flux distribution becomes:

[0240] Γ i出 (α)=N n-βi (α)V iα -ΔΓ i *(α)+C f (n α ci )[N n-βi *(α)-N n-βi (α)]V iα Equation (I-26) corresponds to the first two rows of the outgoing flux distribution determined by prior art, but does not require correction for anomalous tangential flux.

[0241] Using any method, the obtained flux distribution satisfies all momentum-flux conditions, i.e.:

[0242]

[0243] Where, p α It is surface element F α The equilibrium pressure at the point, and based on the average density and temperature values ​​of the volume elements providing particles to the surface element, and u α It is the average velocity at the surface element.

[0244] To ensure that the mass and energy boundary conditions are met, for each energy level j, the difference between the measured input energy and the output energy is:

[0245]

[0246] Here, index j represents the energy of state i. Then, this energy difference is used to generate a difference term: for c ji n α >0,

[0247]

[0248] Use this difference term to modify the outgoing flux, so that the flux becomes: for c ji n α >0,

[0249] Γ αji出f =Γ αji出 +δΓ αji Formula (I-30).

[0250] This operation corrects for mass and energy fluxes while keeping the tangential momentum flux constant. This adjustment is small if the flow (fluid and scalar) is approximately uniform and close to equilibrium near the surface element. After adjustment, the resulting normal momentum flux is slightly altered as the equilibrium pressure based on the average properties of the vicinity, plus a correction due to non-uniform or non-equilibrium properties in the vicinity.

[0251] 5. Move from voxel to voxel

[0252] Refer again Figure 9The particle moves between voxels along a three-dimensional linear lattice (314). This voxel-to-voxel movement is a movement operation performed only on voxels that do not interact with surface elements (i.e., voxels not located near the surface). In a typical simulation, most voxels are not positioned close enough to the surface to interact with it.

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

[0254] For volume cells that do not interact with the surface, the movement operation is computationally straightforward. During each time increment, the entire state fills from its current volume cell to its destination volume cell. Simultaneously, particles in that destination volume cell move from that volume cell to their own destination volume cell. For example, a level 1 particle moving (1,0,0) in the +1x and +1y directions moves from its current volume cell to a volume cell that is +1 in the x direction and 0 in all other directions. The particle terminates at its destination volume cell in the same state (1,0,0) as it had before the movement. Interactions within the volume cell may alter the particle count of that state based on local interactions with other particles and the surface. Otherwise, the particle continues to move along the lattice at the same speed and direction.

[0255] For volume elements interacting with one or more surfaces, the movement operation becomes slightly more complex. This can result in one or more fractional particles being transferred to a surface element. Such a transfer of fractional particles to a surface element results in the fractional particles remaining in the volume element. These fractional particles are then transferred to the volume element occupied by the surface element.

[0256] Reference Figure 15 When part 360 of the particles in state i of volume element 362 moves to surface element 364 (278), the remaining part 366 moves to volume element 368 where surface element 364 is located, and the particles in state i from volume element 368 are guided to surface element 364. Therefore, if the state fill is equal to 25 and V iα (x) equals 0.25 (that is, one-quarter of the volume element and the parallelepiped G) iα If they intersect, then 6.25 particles will move to surface element F. α And 18.75 particles will be moved to the surface element F α The number of particles that occupy a volume element. Since multiple surface elements can intersect with a single volume element, the number of particles that transition to state i of volume element N(f) occupied by one or more surface elements is:

[0257]

[0258] Where N(x) is the source element.

[0259] 6. From surface elements to volume elements

[0260] Next, the outgoing particles from each surface element are dispersed into the volume element (316). Essentially, this is the reverse of the aggregation of particles moving from the volume element to the surface element. From surface element F... α The number of particles that have moved to state i of volume element N(x) is:

[0261]

[0262] Among them, P f (x) illustrates the reduction in volume of a portion of the volume element. Therefore, for each state i, the total number of particles guided from the surface element to the volume element N(x) is:

[0263]

[0264] After dispersing particles from surface elements to volume elements, they are combined with particles advection from surrounding volume elements, and the result is integerized. It is possible that certain directions in some volume elements may either underflow (become negative) or overflow (exceeding 255 in an 8-bit implementation). After these quantities are truncated to fit within the allowable range of values, this will result in a gain or loss in mass, momentum, and energy.

[0265] To prevent this from happening, excess mass, momentum, and energy are accumulated before truncating the violating state. For the energy to which the state belongs, an amount of mass equal to the value of 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 truncated momentum. Both mass and energy are corrected when the mass counter reaches zero by only adding mass to states with the same energy. Finally, a push / pull technique is used to correct the momentum until the momentum accumulator returns to zero.

[0266] 7. Perform fluid dynamics

[0267] Perform fluid dynamics (318). This can be referred to as microdynamics or intra-volume operation. Similarly, advection processes can be referred to as inter-volume operation. The microdynamic operations described below can also be used on particles at colliding surfaces to produce a Boltzmann distribution.

[0268] Fluid dynamics are ensured in the lattice Boltzmann equation model using a specific collision operator known as the BGK collision model. This collision model simulates the dynamics of the distribution in a real fluid system. The collision process can be well described by the right-hand sides of Equations I-1 and I-2 above. After the advection step, the conserved quantities of the fluid system, specifically density, momentum, and energy, are obtained from the distribution function using Equation I-3. Based on these quantities, f in Equation (2) is fully specified by Equation I-4. eq The equilibrium distribution function is represented by the set of velocity vectors c. i The selection of weights (both listed in Table 1), together with Equation I-2, ensures that macroscopic behavior follows the correct hydrodynamic equations.

[0269] E. Variable resolution

[0270] Variable resolution (as discussed in US 2013 / 0151221 A1) can also be adopted, and different sizes of voxels (e.g., coarse voxels and fine voxels) will be used, and can be applied to both the flow and scalar particle interactions with the voxels.

[0271] By leveraging unique transient lattice Boltzmann-based physics, this system can perform simulations that accurately predict real-world conditions. For example, engineers can assess product performance early in the design process, before building any prototypes, when the impact of changes is most meaningful for design and budget. The system can use CAD geometry to perform aerodynamic, aeroacoustic, and thermal management simulations accurately and efficiently.

[0272] Using a scalar solver, the system can perform simulations to handle high Mach number applications, which are those involving Mach numbers greater than 0.3 or multiples of 1.0. Such applications include aerodynamics (aerodynamic efficiency; vehicle handling; dirt and water management; panel deformation; driving dynamics), aeroacoustics (greenhouse wind noise; chassis wind noise; gap / seal noise; mirror, whistling, and tone noise; sunroof and window flutter; passing / external noise; cooling fan noise), thermal management (cooling airflow; thermal protection; brake cooling; driving cycle simulation; key-off and soaking; electronics and battery cooling; ROA / intake), climate control (cabin comfort; HVAC unit & power distribution system performance; HVAC system and fan noise; defrosting and defogging), powertrain (driveway cooling; exhaust system; cooling sleeves; engine pack), and dirt and water management (pillar overflow, dirt and dust accumulation, tire spray).

[0273] Embodiments of the subject matter and functional operation described in this specification may be implemented as digital electronic circuit systems, tangibly implemented computer software or firmware, computer hardware (including the structures disclosed in this specification and their equivalents), or combinations thereof. 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 apparatus or for controlling the operation of a data processing apparatus). Computer storage media may be machine-readable storage devices, machine-readable storage substrates, random or serial access memory devices, or combinations thereof.

[0274] The term "data processing apparatus" refers to data processing hardware and encompasses all kinds of devices, apparatuses, and machines for processing data, including (for example) programmable processors, computers, or multiple processors or computers. The apparatus may also be or further include special-purpose logic circuit systems (e.g., FPGAs (Field-Programmable Gate Arrays) or ASICs (Application-Specific Integrated Circuits)). In addition to hardware, the apparatus may optionally include code that creates the execution environment for computer programs (e.g., code constituting processor firmware, protocol stacks, database management systems, operating systems, or combinations thereof).

[0275] Computer programs (also referred to or described as programs, software, software applications, modules, software modules, scripts, or code) can be written in any form of programming language (including compiled or interpreted languages, or declarative or procedural languages), and can be deployed in any form, including as standalone programs or as modules, components, subroutines, or other units suitable for use in a computing environment. A computer program may, but does not need to, correspond to a file in a file system. A program may be stored as a portion of a file that holds other programs or data (e.g., in a markup language document, in a single file dedicated to the program in question, or in one or more scripts within multiple coordinating files (e.g., files storing portions of one or more modules, subroutines, or code). Computer programs can be deployed such that they execute on one computer or on multiple computers located at one site or distributed across multiple sites and interconnected by a data communication network.

[0276] The processing and logic flows described in this specification can be executed by one or more programmable computers that execute one or more computer programs to perform functions by manipulating input data and generating output. The processing and logic flows can also be executed by a special-purpose logic circuit system (e.g., a FPGA (Field-Programmable Gate Array) or an ASIC (Application-Specific Integrated Circuit)), and the apparatus can also be implemented as a special-purpose logic circuit system (e.g., a FPGA or an ASIC).

[0277] A computer suitable for executing computer programs can be based on a general-purpose or special-purpose microprocessor, or both, or any other type of central processing unit. Typically, the central processing unit receives instructions and data from read-only memory or random access memory, or both. The basic components of a computer are the central processing unit for executing or fulfilling instructions and one or more memory devices for storing instructions and data. Typically, a computer will also include one or more mass storage devices (e.g., magnetic, magneto-optical, or optical discs) for storing data, or will be operatively coupled to receive data from or transfer data to such mass storage devices, or both; however, a computer does not need to have such devices. Furthermore, a computer can be embedded in another device (e.g., to name just a few, mobile phones, personal digital assistants (PDAs), mobile audio or video players, game consoles, GPS receivers, or portable storage devices (e.g., Universal Serial Bus (USB) flash drives)).

[0278] Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory on media and memory devices, including (for example) semiconductor memory devices (e.g., EPROM, EEPROM, and flash memory devices), magnetic disks (e.g., internal hard disks or removable disks), magneto-optical disks, and CD-ROM and DVD-ROM disks. Processors and memory may be supplemented by or contained within dedicated logic circuitry systems.

[0279] To provide interaction with the user, embodiments of the subject matter described in this specification can be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user and a keyboard and pointing device (e.g., a mouse or trackball), through which the user provides input to the computer. Other types of devices can also be used to provide interaction with the user; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback), and input from the user can be received in any form including acoustic, speech, or tactile input. Additionally, the computer can interact with the user by sending and receiving documents to and from the device used by the user (e.g., by sending a webpage to a webpage in response to a request received from a webpage on the user's device).

[0280] 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), middleware components (e.g., an application server), or front-end components (e.g., a client computer having a graphical user interface or web browser through which a user can interact with an implementation 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 via 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).

[0281] A computing system may include clients and servers. Clients and servers are often geographically separated and typically interact via a communication network. The client-server relationship arises from computer programs running on their respective computers and having a client-server relationship with each other. In some embodiments, the server sends data (e.g., HTML pages) to a user device acting as a client (e.g., for the purpose of displaying data to a user interacting with the user device and receiving user input from the user). Data generated at the user device (e.g., the result of user interaction) may be received at the server from the user device.

[0282] While this specification contains numerous details of specific implementations, these should not be construed as limiting the scope of any invention or the scope that can be claimed, but rather as descriptions of features that may be specific to particular embodiments of a particular invention. Certain features described in this specification in the context of separate embodiments may also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented separately or in any suitable sub-combination in multiple embodiments. Furthermore, while features may be described above as functioning in certain combinations and even initially claimed in this way, in some cases, one or more features from the claimed combination may be removed from the combination, and the claimed combination may involve sub-combinations or variations thereof.

[0283] Similarly, although the operations are depicted in a specific order in the accompanying drawings, this should not be construed as requiring these operations to be performed in the specific order shown or in sequential order, or to perform all the illustrated operations to achieve the desired result. In some cases, multitasking and parallel processing can be advantageous. Furthermore, the separation of the various system modules and components in the above embodiments should not be construed as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.

[0284] Specific embodiments of the subject matter have been described. Other embodiments are within the scope of the following claims. For example, the actions recited in the claims can be performed in a different order and still achieve the desired result. As an example, the processes depicted in the drawings do not necessarily require the specific order or sequence shown to achieve the desired result. In some cases, multitasking and parallel processing can be advantageous.

Claims

1. A computer-implemented method for simulating fluid flow and evaluating scalar properties of physical objects, comprising: The scalar solver of the computing system uses a scalar lattice velocity set to simulate the movement of scalar particles representing the physical objects in the fluid volume, wherein the scalar particles represent scalars, wherein the scalar particles are carried by the flow particles of the fluid volume, and wherein the movement of the scalar particles causes collisions between the scalar particles. The scalar solver evaluates a nonequilibrium collision post-collision scalar distribution function of a specified order representing a scalar collision, wherein the nonequilibrium collision post-collision scalar distribution function is proportional to the sum of Hermitian polynomials divided by the factorial of the specified order and multiplied by the dimensionless velocity of the fluid within the scalar lattice velocity set. The flow solver of the computational system uses a set of flow lattice velocities to simulate the movement of flow particles representing the fluid volume, wherein the movement of flow particles causes collisions between them; and The flow solver evaluates the post-collision flow distribution function of a specified order, representing the flow collision. The scalar solver and the stream solver are executed in parallel. The flow solver simulates the evolution of the flow particle distribution according to the first lattice Boltzmann equation, and the scalar solver simulates the evolution of the scalar particle distribution according to the second lattice Boltzmann equation. The computing system can be configured to simulate scalars including at least one of temperature, concentration, and density.

2. The method of 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 the non-equilibrium collision is related to the relative velocity of the flow particles in the fluid volume.

4. The method of claim 1, wherein, The movement of the scalar particles that cause collisions between them results in scalar diffusion through the volume.

5. The method of claim 1, wherein, The scalar lattice velocity set, the scalar, and the scalar distribution function after the non-equilibrium collision are respectively the first scalar lattice velocity set, the first scalar, and the first scalar distribution function after the non-equilibrium collision, and the method further includes: In the computational system, different sets of second scalar lattice velocities are used to simulate the movement of second scalar particles representing different second scalars in the fluid volume, wherein the second scalar particles are carried by flow particles in the fluid volume, and wherein the movement of the second scalar particles causes collisions between the second scalar particles; and based on the movement of the second scalar particles; The evaluation represents the scalar distribution function after a second nonequilibrium collision of a specified order, representing the second scalar collision.

6. The method of claim 1, wherein the scalar distribution function after the unbalanced collision retains the unbalanced moments with respect to the scalar and eliminates unbalanced moments with respect to the scalar that are higher than the specified order.

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

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

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

10. The method according to claim 1, further comprising: The relative particle velocity at a specific location within the fluid volume is determined 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 conditions in the fluid within the volume and the average velocity of the particle at the specific location within the volume. as well as The non-equilibrium collision post-distribution, representing a specified order of particle collision, is determined based on the relative particle velocities.

11. The method of claim 1, wherein, For fluid flow in a macroscopic state, the specified order is the first moment that is proportional to the gradient of the scalar.

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

13. A computer system for simulating fluid flow and evaluating scalar properties of physical objects, comprising: One or more processors; as well as The memory is operatively coupled to the one or more processors; A computer storage device that stores instructions for causing the one or more processors to perform the following operations: The scalar solver uses a scalar lattice velocity set to simulate the movement of scalar particles representing the physical objects in the fluid volume, wherein the scalar particles represent scalars, wherein the scalar particles are carried by the flow particles of the fluid volume, and wherein the movement of the scalar particles causes collisions between the scalar particles. The scalar solver evaluates a nonequilibrium collision post-collision scalar distribution function of a specified order representing a scalar collision, wherein the nonequilibrium collision post-collision scalar distribution function is proportional to the sum of Hermitian polynomials divided by the factorial of the specified order and multiplied by the dimensionless velocity of the fluid within the scalar lattice velocity set. The flow solver uses a set of flow lattice velocities to simulate the movement of flow particles representing the fluid volume, where the movement of flow particles causes collisions between them; and The flow solver evaluates the post-collision flow distribution function of a specified order, representing the flow collision. The scalar solver and the stream solver are executed in parallel. The flow solver simulates the evolution of the flow particle distribution according to the first lattice Boltzmann equation, and the scalar solver simulates the evolution of the scalar particle distribution according to the second lattice Boltzmann equation. The computer system can be configured to simulate scalars including at least one of temperature, concentration, and density.

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

15. The computer system of claim 13, wherein, The scalar distribution function after the non-equilibrium collision is related to the relative velocity of the flow particles in the fluid volume.

16. The computer system of claim 13, wherein, The movement of the scalar particles that cause collisions between them results in scalar diffusion through the volume.

17. The computer system of claim 13, wherein, The scalar lattice velocity set, the scalar, and the scalar distribution function after the non-equilibrium collision are respectively the first scalar lattice velocity set, the first scalar, and the first scalar distribution function after the non-equilibrium collision, and the computer system further includes instructions for performing the following operations: In the computer system, different sets of second scalar lattice velocities are used to simulate the movement of second scalar particles representing different second scalars in the fluid volume, wherein the second scalar particles are carried by flow particles in the fluid volume, and wherein the movement of the second scalar particles causes collisions between the second scalar particles; and based on the movement of the second scalar particles; The evaluation represents the scalar distribution function after a second nonequilibrium collision of a specified order, representing the second scalar collision.

18. A computer program product for simulating fluid flow and evaluating scalar properties of a physical object, the computer program product being stored on a non-transitory computer-readable medium, the computer program product comprising instructions for causing a system including one or more processors and a memory storing the program to perform the following operations: The scalar solver uses a scalar lattice velocity set to simulate the movement of scalar particles representing the physical objects in the fluid volume, wherein the scalar particles represent scalars, wherein the scalar particles are carried by the flow particles of the fluid volume, and wherein the movement of the scalar particles causes collisions between the scalar particles. The scalar solver evaluates the scalar distribution function of a specified order after a nonequilibrium collision, representing the scalar collision, where, The scalar distribution function after the non-equilibrium collision is proportional to the sum of the Hermitian polynomials divided by the specified order and multiplied by the dimensionless velocity of the fluid within the scalar lattice velocity set. The flow solver uses a set of flow lattice velocities to simulate the movement of flow particles representing the fluid volume, where the movement of flow particles causes collisions between flow particles; as well as The flow solver evaluates the post-collision flow distribution function of a specified order, representing the flow collision. The scalar solver and the stream solver are executed in parallel. The flow solver simulates the evolution of the flow particle distribution according to the first lattice Boltzmann equation, and the scalar solver simulates the evolution of the scalar particle distribution according to the second lattice Boltzmann equation. The system can be configured to simulate a scalar quantity including at least one of temperature, concentration, and density.

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

20. The computer program product of claim 18, wherein, The scalar distribution function after the non-equilibrium collision is related to the relative velocity of the flow particles in the fluid volume.

21. The computer program product of claim 18, wherein, The movement of the scalar particles that cause collisions between them results in scalar diffusion through the volume.

22. The computer program product of claim 18, wherein, The scalar lattice velocity set, the scalar, and the scalar distribution function after the non-equilibrium collision are respectively the first scalar lattice velocity set, the first scalar, and the first scalar distribution function after the non-equilibrium collision, and the computer program product further includes instructions for performing the following operations: In the system, different sets of second scalar lattice velocities are used to simulate the movement of second scalar particles representing different second scalars in the fluid volume, wherein the second scalar particles are carried by flow particles in the fluid volume, and wherein the movement of the second scalar particles causes collisions between the second scalar particles; and based on the movement of the second scalar particles; The evaluation represents the scalar distribution function after a second nonequilibrium collision of a specified order, representing the second scalar collision.