Computer system for simulating physical process using lattice boltzmann-based scalar transport enforcing galilean invariance for scalar transport
The Galilean invariant lattice Boltzmann method with a scalar solver addresses the limitations of LBM for high-speed flows, enabling efficient simulation of scalar quantities in high-speed fluid dynamics.
Patent Information
- Application Number
- JP2025101400
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2020-08-07
- Filing Date
- 2025-06-17
- Publication Date
- 2025-09-29
- Estimated Expiration
- Not applicable · inactive patent
AI Technical Summary
Existing Lattice Boltzmann Method (LBM) approaches are limited to low Mach number flows and lose computational advantages when used for high-speed flows, such as finite-difference-based solvers that fail to maintain localized computation and grid-independent solutions.
A Galilean invariant lattice Boltzmann method is developed using additional distribution functions for scalars, incorporating a scalar solver that preserves the advantages of LBM by simulating scalar quantities through non-equilibrium post-collision distribution functions, which are strongly coupled to flow distribution.
Enables the simulation of high-speed flows, including supersonic and hypersonic conditions, while maintaining the computational efficiency and scalability of LBM by using a Galilean invariant scalar solver that accurately models scalar quantities like temperature, concentration, and density.
Smart Images

Figure 2025141967000001_ABST
Abstract
Description
[Technical Field]
[0001] Priority claims This application claims priority under 35 U.S.C. § 119 to U.S. Provisional Patent Application No. 62 / 927,828, entitled "Galilean Invariant Lattice Boltzmann Collision Formulation for Scalar Transport in High Speed Flow Simulations," filed October 30, 2019, the entire contents of which are hereby incorporated by reference. [Background technology]
[0002] The present description relates to computer simulation of physical processes such as physical fluid flow.
[0003] High Reynolds number flows have been simulated by generating discretized solutions to the Navier-Stokes differential equations by performing high-precision floating-point operations at each of many discrete spatial locations on variables representing macroscopic quantities (e.g., density, temperature, flow velocity). Another approach replaces the differential equations with what is commonly known as a lattice gas (or cellular) automaton, in which the macroscopic simulation obtained by solving the Navier-Stokes equations is replaced by a microscopic model that performs operations on particles moving between sites on a lattice.
[0004] The Lattice Boltzmann Method (LBM) has been used for a wide range of industrial applications involving complex geometries. Nevertheless, in some cases, LBM is often limited to low Mach number flows (or Mach flows), for example, in applications involving low-speed flows (less than approximately Mach number 0.3). Existing LBM approaches use finite-difference-based solvers to solve for scalars, such as energy or scalar concentrations in multi-species flows. These finite-difference-based solvers eliminate many of the advantages of the LBM approach, such as localized computation, high scalability, and grid-independent solutions. Summary of the Invention
[0005] Discussed below are techniques that can overcome many of the above fundamental limitations of LBM for high-speed flows, thus enabling LBM to be used for simulating a wide range of applications, including not only low-speed flows (e.g., Mach numbers less than 0.3), but also high-speed flows, e.g., Mach numbers greater than 0.3, as well as supersonic flows (e.g., Mach greater than 1.0, and hypersonic, or at least multiples of the Mach number).
[0006] Instead of using a finite difference approach, the technique discussed below uses additional distribution functions for scalars, and a scalar solver. The use of a scalar solver preserves those advantages of the LBM technique that are otherwise lost by using a finite difference-based solver. These distribution functions are strongly coupled to the flow distribution, i.e., they are carried along the grid directions by the flow particles.
[0007] According to one aspect, a computer-implemented method includes simulating, by a computing system, the motion of scalar particles representing scalar quantities in a volume of fluid using a scalar grid velocity set, the scalar particles being carried by flow particles in the volume of fluid, the motion of the scalar particles causing collisions between the scalar particles, and evaluating a non-equilibrium post-collide scalar distribution function of a specified order representing the scalar collisions.
[0008] The following are some of the features among other features as disclosed herein within the above aspects:
[0009] The non-equilibrium post-collision scalar distribution function is Galilean invariant. The non-equilibrium post-collision scalar distribution function is related to the relative velocities of the flow particles within a volume of fluid. The motion of the scalar particles causes collisions between them, resulting in the diffusion of the scalar quantity throughout the volume.
[0010] The method further includes simulating, by a computing system, the motion of flow particles representing a volume of fluid using the flow grid velocity set, where the motion of the flow particles causes collisions between the flow particles, and evaluating a non-equilibrium post-collision flow distribution function of a specified order representing the flow collisions.
[0011] The scalar lattice velocity set, the scalar quantity, and the non-equilibrium post-collision scalar distribution function are a first scalar lattice velocity set, a first scalar quantity, and a first non-equilibrium post-collision scalar distribution function, respectively, and the method further includes simulating, on a computer, the motion of second scalar particles representing the second different scalar quantity within the volume of fluid using a second different scalar lattice velocity set, wherein the second scalar particles are carried by flow particles within the volume of fluid, and the motion of the second scalar particles causes collisions between the second scalar particles; and evaluating a second different non-equilibrium post-collision scalar distribution function of a specified order representing the second scalar collisions based on the motion of the second scalar particles.
[0012] The non-equilibrium post-collision scalar distribution function preserves the non-equilibrium moments for the scalar quantities and eliminates the non-equilibrium moments for scalar quantities higher than a specified order. The scalar lattice velocity set supports hydrodynamic motion up to a specified order of the scalar particle speed. The specified order is an exponential value related to the ratio of the fluid velocity to the lattice sound speed, and the lattice velocity set supports exponential values. The specified order is selected from zeroth, first, and second orders.
[0013] The method further includes determining a relative particle velocity of a particle at a specific location within a volume of fluid using the flow grid velocity set, where the relative particle velocity is the difference between the absolute velocity of the particle at the specific location measured under zero flow of fluid in the volume and the average velocity of the particle at the specific location within the volume, and determining a non-equilibrium post-collision distribution of a specified order representing a collision of the particle based on the relative particle velocities.
[0014] For macroscopic regime fluid flow, the specified order is a first moment proportional to the gradient of the scalar. The non-equilibrium post-collision scalar distribution is proportional to the sum of a set of scalar lattice velocities divided by a Hermite polynomial times the factorial of the order of the dimensionless velocity of the fluid.
[0015] The non-equilibrium post-collision scalar distribution is related to the sum multiplied by a weighting factor corresponding to the weighting coefficients of the particle distribution function.
[0016] According to a further aspect, a computer system includes one or more processors; a memory operatively coupled to the one or more processors; and a computer storage device that stores instructions for causing the one or more processors to simulate, using a scalar grating velocity set, the motion of scalar particles representing a scalar quantity in a volume of fluid, the scalar particles being carried by flow particles in the volume of fluid, the motion of the scalar particles causing collisions between the scalar particles; and to evaluate a non-equilibrium post-collision scalar distribution function of a specified order representing the scalar collisions.
[0017] The non-equilibrium post-collision scalar distribution function is Galilean invariant. The non-equilibrium post-collision scalar distribution function is related to the relative velocities of the flow particles within a volume of fluid. The motion of the scalar particles causes collisions between them, resulting in the diffusion of the scalar quantity throughout the volume.
[0018] The computer system further includes instructions for simulating, using the flow grid velocity set, the motion of flow particles representing the volume of fluid, where the motion of the flow particles causes collisions between the flow particles, and evaluating a non-equilibrium post-collision flow distribution function of a specified order representing the flow collisions.
[0019] The scalar lattice velocity set, the scalar quantity, and the non-equilibrium post-collision scalar distribution function are a first scalar lattice velocity set, a first scalar quantity, and a first non-equilibrium post-collision scalar distribution function, respectively, and the computer system further includes instructions for: simulating, on the computer, the motion of second scalar particles representing the second different scalar quantity within the volume of fluid using a second different scalar lattice velocity set, wherein the second scalar particles are carried by flow particles within the volume of fluid, and the motion of the second scalar particles causes collisions between the second scalar particles; and evaluating, based on the motion of the second scalar particles, a second different non-equilibrium post-collision scalar distribution function of a specified order representing the second scalar collisions.
[0020] The following are some of the features among other features as disclosed herein within the above aspects:
[0021] According to a further aspect, a computer program product stored on a non-transitory computer-readable medium includes instructions for causing a system having one or more processors and a memory storing the program to simulate, using a scalar grating velocity set, the motion of scalar particles representing a scalar quantity in a volume of fluid, the scalar particles being carried by flow particles in the volume of fluid, the motion of the scalar particles causing collisions between the scalar particles, and evaluating a non-equilibrium post-collision scalar distribution function of a specified order representing the scalar collisions.
[0022] The following are some of the features among other features disclosed herein that fall within the above aspects:
[0023] The non-equilibrium post-collision scalar distribution function is Galilean invariant. The non-equilibrium post-collision scalar distribution function is related to the relative velocities of the flow particles within the volume of the fluid.
[0024] The motion of the scalar particles causes collisions between the scalar particles, resulting in a diffusion of the scalar quantity throughout the volume. The computer program product further includes instructions for simulating the motion of flow particles representing the volume of fluid using the flow grid velocity set, the motion of the flow particles causing collisions between the flow particles, and evaluating a non-equilibrium post-collision flow distribution function of a specified order representing the flow collisions.
[0025] The scalar lattice velocity set, the scalar quantity, and the non-equilibrium post-collision scalar distribution function are a first scalar lattice velocity set, a first scalar quantity, and a first non-equilibrium post-collision scalar distribution function, respectively, and the computer system further includes instructions for: simulating, on the computer, the motion of second scalar particles representing the second different scalar quantity within the volume of fluid using a second different scalar lattice velocity set, wherein the second scalar particles are carried by flow particles within the volume of fluid, and the motion of the second scalar particles causes collisions between the second scalar particles; and evaluating, based on the motion of the second scalar particles, a second different non-equilibrium post-collision scalar distribution function of a specified order representing the second scalar collisions.
[0026] One or more of the embodiments can include one or more of the following advantages.
[0027] The techniques disclosed herein can be used in complex fluid flow simulations to simultaneously solve for scalar quantities, such as temperature distribution, concentration distribution, and / or density, along with solving for fluid flow. In the systems and methods described herein, modeling of scalar quantities (as opposed to vector quantities) is coupled with modeling of fluid flow based on an LBM-based physical process simulation system. Exemplary scalar quantities that can be simulated include temperature, concentration, and density.
[0028] Other features and advantages will become apparent from the following description, including the drawings, and from the claims. [Brief explanation of the drawings]
[0029] [Figure 1] FIG. 1 depicts a system for simulating fluid flow, including a scalar solver. [Figure 2] 1 is a flow diagram illustrating the operation of a scalar solver on a lattice Boltzmann model simulation equation. [Figure 3] 1 is a flowchart showing a simulation operation using a lattice Boltzmann model. [Figure 4] 1 is a flow diagram illustrating a simulation operation using a scalar solver. [Figure 5] 1 is a flow diagram of a process for generating a distribution function for collision transport. [Figure 6] 1 is a flow diagram of a process for generating a scalar solver that can be used in a variety of high-speed fluid simulation applications. [Figure 7] FIG. 1 illustrates velocity components of two LBM models (prior art). [Figure 8] FIG. 1 illustrates velocity components of two LBM models (prior art). [Figure 9] 1 is a flow diagram of a procedure followed by a physical process simulation system. [Figure 10] FIG. 1 is a perspective view of a microblock (prior art). [Figure 11A] FIG. 1 is a diagram of a lattice structure (prior art). [Figure 11B] FIG. 1 is a diagram of a lattice structure (prior art). [Figure 12] FIG. 1 illustrates a variable resolution technique (prior art). [Figure 13] FIG. 1 illustrates a variable resolution technique (prior art). [Figure 14] FIG. 1 shows the area affected by surface facets (prior art). [Figure 15] FIG. 1 illustrates the movement of particles from a voxel to a surface. [Figure 16] FIG. 1 illustrates the movement of particles from surface to surface. [Figure 17] 1 is a flow diagram of a procedure for performing surface dynamics. DETAILED DESCRIPTION OF THE INVENTION
[0030] A general approach to solving for scalar quantities In the systems and methods described herein, modeling of scalar quantities (as opposed to vector quantities) is coupled with modeling of fluid flow using an LBM-based physical process simulation system. Exemplary scalar quantities that can be simulated include temperature, concentration, and density.
[0031] For example, an automated process for fluid flow simulation, as described in U.S. patent application Ser. No. 11 / 463,673, entitled Computer Simulation of Physical Process (now issued as U.S. Pat. No. 7,558,714), which is incorporated herein by reference in its entirety, is performed by the simulation engine 34. However, the simulation engine also includes a scalar solver for solving for scalar quantities such as temperature, concentration, and density.
[0032] The procedure discussed in FIG. 9 below describes a flow simulation process using a flow solver and a scalar solver for collisional transport. In FIGS. 7, 8, and 10-16, these figures are labeled "Prior Art." These figures are labeled Prior Art because they are found in the patents referenced herein in their entirety. Nevertheless, these figures, as found in the referenced patents, do not take into account any modifications that would be made to a flow simulation using the scalar solver approach described below, since such a scalar solver approach is not described in the referenced patents.
[0033] 1. Model simulation space In an LBM-based physical process simulation system, the fluid flow is represented by a distribution function value f i and the discrete speed c i The dynamics of the distribution function is governed by the equation below, where:
number
number
number
[0034] The right-hand side of the first equation is the aforementioned "collision operator" which describes the change in the distribution function due to collisions between pockets of fluid. The particular form of the collision operator used here is due to Bhatnagar, Gross, and Krook (BGK). It forces the "equilibrium" form of the distribution function to a prescribed value given in the second equation.
[0035] From this simulation, traditional fluid variables such as mass ρ and fluid velocity u are obtained as simple summations. The LBM model can be efficiently realized on scalable computational platforms and run with great robustness to time-irregular flows and complex boundary conditions.
[0036] The standard technique for deriving the macroscopic equations of motion for fluid systems from the Boltzmann equation is the Chapman-Enskog method, in which successive approximations of the full Boltzmann equation are taken.
[0037] In fluid systems, low-density disturbances travel at the speed of sound. In gas systems, the speed of sound is generally determined by temperature. The importance of the effect of compressibility on a flow is measured by the ratio of the characteristic velocity to the speed of sound, known as the Mach number.
[0038] 1, a system 10 including a flow solver 34c and a scalar solver 34c' for high-speed flows will be described. System 10, in this implementation, is based on a client-server or cloud-based architecture and includes a server system 12, which is 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, an interface 20 (e.g., a user interface / network interface / display or monitor interface, etc.), and a processing device 24. Within memory 18 are a meshing engine 32 and a simulation engine 34.
[0039] 1 shows meshing engine 32 in memory 18, the meshing engine can also be a third-party application running on a system separate from server 12. Whether meshing engine 32 runs in memory 18 or on a system separate from server 12, meshing engine 32 receives a user-supplied mesh definition 30, creates a mesh, and sends the created mesh to (and / or stores) simulation engine 34 depending on the object being modeled for simulation by simulation engine 34. System 10 has access to a data repository 38 that stores 2D and / or 3D meshes (Cartesian and / or curvilinear), coordinate systems, and libraries.
[0040] The simulation engine includes a collision interaction module 34a for flow particles and a collision interaction module 34a' for scalar particles, and a boundary module 34b and the simulation engine 34 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 an advection-flow collision interaction module 34d and an advection-scalar particle collision interaction module 34d', which advance the flow particles along with the scalar particles to the next cell in the mesh.
[0041] A discussion of flow solver 34c is presented in the above-mentioned patent and in FIG. 5. A discussion of scalar solver 34c' is presented below and in FIG.
[0042] Referring now to FIG. 2 , a process 40 for simulating fluid flow through a representation of an object is shown. In the example discussed herein, the object is an airfoil. However, the use of an airfoil is merely illustrative, as the object can be any shape and, in particular, can have planar and / or curved surfaces. The process 40 receives 42 a mesh (or grid) for the object to be simulated, e.g., the airfoil, from, for example, the client system 14 or retrieves it from the data repository 38. In other embodiments, the external system or server 12 generates the mesh for the object to be simulated based on user input.
[0043] The process 40 receives 42 a three-dimensional representation of the airfoil, for example, from the client system 14, or retrieves it from the data repository 38. The process precomputes 44 geometric quantities from the retrieved mesh and performs a dynamic Lattice Boltzmann model simulation 45 using the precomputed geometric quantities corresponding to the retrieved mesh. The Lattice Boltzmann model simulation 45 includes simulation evolution 46 of particle flow distribution and performing boundary layer processing 48 as the flow impacts physical surfaces. The motion of the flow particles causes collisions between the flow particles, which are used in the flow solver 34c.
[0044] Process 40 also uses the scalar grid velocity set to simulate 47 one or more additional scalar particle distributions and performs boundary layer processing 48 of the scalar particles when the flow carrying the scalar particles impacts a physical surface, as described above. These scalar particles represent the movement of scalar quantities within a volume of fluid, which are carried by the flow of particles in the volume of fluid. The movement of the scalar particles causes collisions between the scalar particles, which are used in scalar solver 34c'. The process performs advection 52 of the flow particles and scalar particles to the next cell in the LBM mesh.
[0045] 3, a lattice Boltzmann simulation process 46 simulates the evolution of flow particle distributions according to the lattice Boltzmann equation (LBE) 46a. Process 46 (see FIG. 2) performs collision calculations (and collects sets of incoming distributions from neighboring mesh locations through collision calculations) 46b, evaluates flow at physical boundaries through boundary modeling 46c, and advects particles to the next cell in LBM space 46d. Details of the LB collision solver 34c are provided in U.S. Pat. No. 9,576,087 (incorporated by reference in its entirety) and as part of the discussion below.
[0046] 4, the lattice Boltzmann simulation process 45 also includes a scalar particle distribution 47 according to the Lattice Boltzmann Equation (LBE). The LB scalar distribution is executed simultaneously with the flow distributions 45a-45c of the simulation 45. The LB scalar solver portion 47 simulates the evolution of the scalar particle distribution according to the Lattice Boltzmann Equation (LBE) 47a, performs collision calculations (collecting sets of incoming distributions from neighboring mesh locations through collision calculations) 47b, evaluates flow at physical boundaries through boundary modeling using a scalar solver 34c', and performs advection of the scalar particles to the next cell in LBM space 47d.
[0047] Details of the Lattice Boltzmann Scalar Solver (LB Scalar Solver, or simply, Scalar Solver) are presented below and in Figure 6.
[0048] The time evaluation of the flow distribution and the scalar distribution function are, respectively,
number
number
number
number
[0049] We can visualize the scalar quantity carried along with the flow particles by multiplying the scalar distribution by the flow distribution, as given in Eq. (1.2). The total scalar quantity (specific scalar multiplied by density) is (ρq) = Σ i (f i q i ) The equilibrium particle density distribution is given by, in terms of Hermite polynomials,
number
number
number
number
[0050] The equilibrium distribution of a scalar value is simply
number
[0051] 2. Collision Process The collision process 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. The collision process in LBM serves the same purpose as that of molecular collisions in real fluid systems. The collision process obeys basic physics requirements such as the conservation of mass and momentum. In the case of scalar solvers, the scalar solver must preserve scalar concentrations. The above quantities such as velocity, density, and scalar concentrations are calculated by taking moments of the distribution functions (sums of the distribution functions multiplied by the lattice velocity).
[0052]
number
number
[0053] The collision process is extremely complex and highly nonlinear. A simple collision operator, the so-called BGK collision, describes the collision in linear form as:
number
number
number
number
[0054] The choice of relaxation time depends on the true physical properties of the fluid. For flow solver 34c, the value of the relaxation time τ is a function of the fluid viscosity,
number
number
[0055] The moments of the equilibrium distribution functions (1.3) and (1.4) are related to conserved quantities and are identical to the moments of the actual distributions as defined in (2.1) and (2.2), respectively. Hence, the BGK collision formalism satisfies all necessary physical constraints, i.e., conservation of mass, momentum, and scalar concentrations.
number
[0056] Any collision operator used must satisfy the above constraints in order to simulate real physics.
[0057] 3. Normalized Collision Operator In addition to the moments discussed previously, the following higher order moments related to momentum and scalar fluxes are equally important:
number
number
number
number
[0058] Similarly, the higher order moments for the real particle distribution function and the scalar distribution function are
number
number
[0059]
number
number
[0060] The set of lattices used for LBM has a finite number of lattice directions and therefore supports a finite number of moments, known as the "order" of the lattice. This limitation of the lattice set causes BGK collisions with all higher-order moments of non-equilibrium to result in a low stability range.
[0061] A regularized collision operator, also known as a filtered collision operator, can be used to enhance the stability of an LBM by calculating only the necessary moments and relaxing these moments during the collision process, as presented in U.S. Patent No. 9,576,087, which is incorporated by reference in its entirety. The filtered collision operator has the form:
number
number
[0062] 4. Galilean invariance in collision operators The above filtered collision formalism is useful in applications involving relatively low fluid flow velocities (e.g., less than Mach 0.3). From the basic principle of Galilean invariance, the distribution functions, both equilibrium and nonequilibrium distributions of a multi-particle system, should be functions of particle velocities relative to the local fluid velocity, rather than any particular reference frame (e.g., the reference frame of a lattice at rest). In fact, it can be shown that the infinite Hermitian expansion of the equilibrium distribution function admits a compact and Galilean invariant form similar to the Maxwell-Boltzmann distribution, such as Eq. (4.1).
[0063]
number
number
[0064] Eq.(4.1) is (ε i -u), and (ε i-u) is the particle velocity relative to the local fluid velocity. Clearly, ε i is the particle velocity in the reference frame of the grid at rest. Therefore, we can use a similar compact Galilean invariant expression for the non-equilibrium distribution function. The first task in doing this is to redefine the normal hydrodynamic moment.
[0065] Instead of Eq. (3.5) and Eq. (3.6) being defined in a particular absolute reference frame of the lattice at rest, they must be replaced by their counterparts in a relative reference frame in terms of relative particle velocities,
number
number
number
number
[0066] Nevertheless, non-equilibrium momentum and scalar fluxes in the reference frame are governed by the conservation of momentum and scalar concentrations, i.e.,
number
number
[0067] It is therefore desirable to obtain a normal Galilean invariant form for a non-equilibrium distribution: the complete functional form of an equilibrium distribution is Galilean invariant, and the goal is therefore to connect a non-equilibrium distribution to its equilibrium counterpart.
[0068] Below, we briefly discuss the basic concepts of how non-equilibrium distributions can be expressed in terms of equilibrium distributions within the framework of fundamental kinetic physics. Equilibrium and non-equilibrium distributions are intrinsically related to each other through the dynamics of the Boltzmann kinetic equation. Non-equilibrium distributions can, in principle, be expressed in terms of equilibrium distribution functions. In practice, such explicit functional forms can be expressed as infinite series in powers of spatial and temporal derivatives via the so-called Chapman-Enskog expansion, or as exact compact forms in some specific microscopic conditions. In U.S. Patent No. 9,576,087, a new expression for non-equilibrium, such as the multiplication of the equilibrium distribution by the non-equilibrium momentum flux, is proposed, which is relevant to the Navier-Stokes fluid regime.
[0069]
number
[0070] By comparing terms,
number
number
[0071] The complete Galilean invariant formulas for the equilibrium distribution (Eq. (1.3)) and the non-equilibrium distribution (Eq. (4.5)) can be used when the supporting grid velocity set has infinite order isotropy. For any given grid with finite order accuracy, these functions are truncated. After some derivation, for any given grid with finite order isotropy, the following formulas are obtained:
[0072]
number
number
[0073] The zeroth order of the above form, i.e., n=2, recovers the normalized collision operator. The first and second orders of Eq. (4.6) are
number
number
[0074] 5. Extension to scalar solvers Galilean invariant filtered collision for the flow solver extends the stability of the flow collision solver, allowing it to simulate transonic and supersonic applications. Like flow solver 34c, scalar solver 34c' is Galilean invariant because the underlying governing equations satisfy the Galilean invariance requirement. Similar to this theory, nonequilibrium scalar fluxes can be expressed in terms of their equilibrium distributions and relative velocities and associated moments. For normal flow in the macroscopic context, only the first-order moments proportional to the gradient of the scalar are relevant. An approximate nonequilibrium form, such as an infinite series, can be given as follows:
[0075]
number
[0076] For a given lattice set with a finite number of lattices, the above equation reduces to
number
number
number
[0077] As with the flow distribution, the above form is not realizable in its practical form due to the restriction on the degree of isotropy. For a given grid with finite degree of isotropy, the above equations can be truncated and after some derivations, the following final form is obtained, as in Eq. (5.3):
[0078]
number
number
[0079] The zeroth-order form of the above equation (i.e., n=1) will recover the filtered (normalized) collision operator. The first and second-order forms of Eq. (5.3) are explicitly given by:
number
number
[0080] 5 and 6, a process flow 60 for the flow solver 34c and a process flow 70 for one or more scalar solvers 34c' are shown.
[0081] Starting with FIG. 5, a flow solver process 60 provides a set of grid velocities that support the required hydraulic moment up to a specified order 62, and the process 60 simulates the motion of particles within a volume of fluid with the set of grid velocities 64 and determines the deviation of the particle distribution from an equilibrium value, which is the particle's non-equilibrium momentum flux 66. From determining the deviation of the particle distribution, the process determines a Galilean-invariant post-collision distribution function 68 as a function of the non-equilibrium flux and the particle equilibrium distribution. Details of the flow solver process are described in the above-referenced U.S. Patent No. 9,576,087.
[0082] Referring to Figure 6, a process 70 for a scalar solver is shown. Process 70 provides additional grid velocity sets 72 to support the moments required for additional scalars, e.g., additional grid velocity sets per scalar. Process 70 simulates the motion of scalar particles carried by flow particles at the additional grid velocity sets 74 and determines any deviations of the scalar function from the mean value of each of the deviations, which are the non-equilibrium contributing fluxes of the scalars 76. Process 70 for a scalar solver determines a Galilean-invariant post-collision distribution function for the scalar 78 as a function of the non-equilibrium fluxes and the scalar equilibrium values.
[0083] A general discussion of an LBM-based simulation system including a scalar solver process 70 for performing fluid flow simulations is provided below.
[0084] Referring to Figure 7, the first model (2D-1) 100 is a two-dimensional model containing 21 velocities. Of these 21 velocities, one (105) represents a particle that is not moving, three sets of four velocities represent particles moving in the positive or negative direction along the x or y axis of the lattice with normalized velocity (r) (110-113), double normalized velocity (2r) (120-123), or triple normalized velocity (3r) (130-133), and two sets of four velocities represent particles moving relative to both the x and y lattice axes with normalized velocity (r) (140-143) or double normalized velocity (2r) (150-153).
[0085] As also shown in Figure 8, the second model (3D-1) 200 is a three-dimensional model that includes 39 velocities, where each velocity is represented by one of the arrows in Figure 8. Of these 39 velocities, one represents a particle that is not moving, three sets of six velocities represent particles moving in the positive or negative direction along the x-, y-, or z-axis of the lattice at a normalized velocity (r), a two-fold normalized velocity (2r), or a three-fold normalized velocity (3r), eight represent particles moving with a normalized velocity (r) relative to all three of the x-, y-, and z-lattice axes, and twelve represent particles moving with a two-fold normalized velocity (2r) relative to two of the x-, y-, and z-lattice axes.
[0086] More complex models can also be used, such as a 3D-2 model containing 101 velocities and a 2D-2 model containing 37 velocities. The velocities are more clearly described by the components of the velocity along each axis, as provided in Tables 1 and 2, respectively.
[0087] For the three-dimensional model 3D-2, one of the 101 velocities represents particles that are not moving (Group 1); three sets of six velocities represent particles moving in the positive or negative direction along the x-, y-, or z-axis of the lattice with normalized velocity (r), double-normalized velocity (2r), or triple-normalized velocity (3r) (Groups 2, 4, and 7); and three sets of eight represent particles moving with normalized velocity (r), double-normalized velocity (2r), or triple-normalized velocity (3r) relative to all three of the x-, y-, and z-lattice axes. 12 represent particles moving with a normalized velocity (r) and a normalized velocity (2r) along two of the x, y, and z lattice axes, but not along the remaining axes (Group 6); 24 represent particles moving with a normalized velocity (r) and a normalized velocity (2r) along two of the x, y, and z lattice axes, but not along the remaining axes (Group 5); and 24 represent particles moving with a normalized velocity (r) along two of the x, y, and z lattice axes and a normalized velocity (3r) along the remaining axes (Group 9).
[0088] For the two-dimensional model 2D-2, one of the 37 velocities represents a particle that is not moving (Group 1); three sets of four velocities represent particles moving in the positive or negative direction along the x or y axis of the lattice with normalized velocity (r), double-normalized velocity (2r), or triple-normalized velocity (3r) (Groups 2, 4, and 7); two sets of four velocities represent particles moving with normalized velocity (r) or double-normalized velocity (2r) relative to both the x and y lattice axes; eight velocities represent particles moving with normalized velocity (r) relative to one of the x and y lattice axes and double-normalized velocity (2r) relative to the other axis; and eight velocities represent particles moving with normalized velocity (r) relative to one of the x and y lattice axes and triple-normalized velocity (3r) relative to the other axis.
[0089] The LBM model described above provides a particular class of efficient and robust discrete velocity dynamics models for numerical simulation of flows in both two and three dimensions. This type of model contains a particular set of discrete velocities and weights associated with these velocities. The velocities correspond to Cartesian grid points in velocity space, which facilitates accurate and efficient implementation of discrete velocity models, particularly the class known as lattice Boltzmann models. Such models can be used to simulate flows with high fidelity. [Example]
[0090] A. Working Example Referring to FIG. 9 , a physical process simulation system operates according to procedure 300 to simulate a physical process, such as fluid flow. Prior to simulation, a simulation space is modeled as a collection of voxels (302). Typically, the simulation space is generated using a computer-aided design (CAD) program. For example, a CAD program can be used to map an airfoil in a wind tunnel. The data generated by the CAD program is then processed to add a grid structure with appropriate resolution to account for the airfoil and airfoil surfaces in the simulation space. As described above, any physically shaped device can be the subject of a fluid flow simulation, and a scalar solver can be used to evaluate scalar properties for physically shaped devices.
[0091] The grid resolution can be chosen based on the Reynolds number of the system being simulated, which relates the viscosity of the flow (ν), the characteristic length of an object in the flow (L), and the characteristic velocity of the flow (u). Re=uL / ν Eq.(I-2)
[0092] The characteristic length of an object represents a global feature of the object. For example, if one were simulating flow around a microdevice, the height of the microdevice might be considered a characteristic length. When the flow is around a small region of the object of interest (e.g., a car side mirror), the resolution of the simulation can be increased, or an area of increased resolution can be used around the region of interest. As the grid resolution increases, the voxel dimension decreases.
[0093] The state space is f i (x, t), where f irepresents the number of elements or particles per unit volume of state i at the lattice site described by the three-dimensional vector x at time t (i.e., the density of particles in state i). For a known time increment, the number of particles is simply f i (x). The combination of all states of the lattice sites is denoted as f(x).
[0094] The number of states is determined by the number of possible velocity vectors within each energy level. A velocity vector consists of integer linear velocities in a space with three dimensions x, y, and z. The number of states is increased for multiple types of simulations.
[0095] Each state i represents a different velocity vector at a particular energy level (i.e., energy level zero, one, or two). The velocity c of each state i is expressed in terms of its "speed" in each of the three dimensions as follows: c i =(c i,x ,c i,y ,c i,z ) Eq.(I-3)
[0096] The zero energy level state represents a particle at rest, not moving in any dimension, i.e., c stopped =(0,0,0). A state of energy level 1 represents a particle with a speed of ±1 in one of the three dimensions and zero in the other two. A state of energy level 2 represents a particle with a speed of ±1 in all three dimensions, or a speed of ±2 in one of the three dimensions and zero in the other two.
[0097] Generating all possible permutations of the three energy levels results in a total of 39 possible states (1 energy-zero state, 6 energy-1 states, 8 energy-3 states, 6 energy-4 states, 12 energy-8 states, and 6 energy-9 states).
[0098] Each voxel (i.e., each lattice site) is represented by a state vector f(x). The state vector completely defines the status of the voxel and contains 39 entries. The 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. Using this set of velocities, the system can produce Maxwell-Boltzmann statistics for the equilibrium state vector achieved.
[0099] B. Micro Blocks Referring now to Figure 10, a microblock is shown. For processing efficiency, voxels are grouped into 2x2x2 volumes called microblocks. Microblocks are organized to allow parallel processing of voxels and minimize overhead associated with data structures. A simple notation for the voxels in a microblock is N i (n), where n represents the relative position of the lattice site within the microblock, n∈{0, 1, 2, ..., 7}.
[0100] 11A and 11B, surface S (FIG. 11A) is connected to facet F α It is expressed in the simulation space (Figure 11B) as a set of S={F α} Eq.(I-4) where α is an index that lists a particular facet. Facets are not constrained by voxel boundaries and are typically sized similar to or slightly smaller than their neighbors, so that the facet's influence extends to a relatively small number of voxels. To achieve surface dynamics, properties are assigned to facets. Specifically, each facet F α is the unit normal (n α ), surface area (A α ), center position (x α ), and the facet distribution function (f i (α)).
[0101] 12, different levels of resolution can be used in different regions of the simulation space to improve processing efficiency. Typically, the region 350 surrounding the object 352 is of most interest and is therefore simulated with the highest resolution. Because the effects of viscosity decrease with distance from the object, reduced levels of resolution (i.e., enlarged voxel volumes) are used to simulate regions 354, 356 spaced at increasing distances from the object 352.
[0102] 13, a lower level of resolution can be used to simulate regions 360 around less important features of an object 362, while the highest level of resolution is used to simulate regions 364 around the most important features (e.g., leading and trailing surfaces) of the object 362. An outlying region 366 is simulated using the lowest level of resolution and the largest number of voxels.
[0103] C. Identify voxels influenced by facets Referring again to FIG. 9, once the simulation space has been modeled (302), voxels that are influenced by one or more facets are identified (304). Voxels can be influenced by facets in several ways. First, voxels that are intersected by one or more facets are influenced in that the voxel has less volume than voxels that are not intersected. This occurs because the facets, and the material underlying the surfaces represented by the facets, occupy a portion of the voxel. The partial factor P f (x) indicates the portion of the voxel that is not affected by the facet (i.e., the portion that can be occupied by the fluid or other material whose flow is being simulated). For the non-intersecting voxels, P f (x) is equal to 1.
[0104] Voxels that interact with one or more facets by transferring particles to the facets or receiving particles from the facets are also identified as voxels influenced by the facets. Every voxel intersected by a facet will contain at least one state that receives particles from the facet and at least one state that transfers particles to the facet. In most cases, additional voxels will also contain such states.
[0105] Referring to Figure 14, a non-zero velocity vector c i For each state i with facet F α is a facet (|c i n i |) velocity vector c i and the unit normal n α A parallelepiped G with height defined by the magnitude of the dot product of the vectors iα , and parallelepiped G iα Volume V iα The surface area of the facet A is equal to a Receive particles from or transfer particles into a region defined by a base defined by V iα =|c i n α |A a Eq.(I-5)
[0106] Facet F α is the velocity vector of the state directed towards the facet (|c i n i |<0) to volume V iα When a particle is received from the facet and the velocity vector of the state is directed away from the facet (|c i n i |>0). As discussed below, this formula is iα When occupying a portion of a surface, we must correct for conditions that may occur near non-convex features such as interior corners.
[0107] Facet Fα Parallelepiped G iα may overlap some or all of multiple voxels. The number of voxels or portions thereof depends on the size of the facet relative to the size of the voxel, 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, the size of the facet, as mentioned above, is typically selected to be similar to or smaller than the size of voxels near the facet.
[0108] parallelepiped G iα The overlapped voxel N(x) is V iα (x). Using this term, we can calculate the relationship between voxel N(x) and facet F α The flux Γ of particles in state i moving between iα (x) is the number of voxels (V iα (x)) multiplied by the volume of the overlapped region (N i (x) is equal to the density of particles of state i in Gamma iα (x)=N i (x)+V iα (x) Eq.(I-6)
[0109] parallelepiped G iα When intersects with one or more facets, the following conditions are true: V iα =ΣV α (x)+ΣV iα (β) Eq.(I-7) where the first summation is G iα The second term considers all voxels where G overlaps. iα Consider all facets that intersect with the parallelepiped G iα When there is no intersection of and another facet, this expression becomes V iα =ΣV iα (x) Eq.(I-8) It decreases to.
[0110] D. Run the simulation Once voxels affected by one or more facets are 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, which includes the voxel-to-voxel particle movement simulated in the advection stage (308-316), which accounts for particle interaction with surface facets. Next, a collision stage (step 318) simulates particle interactions within each voxel. A timer is then incremented (step 320). If the incremented timer does not indicate that the simulation is complete (step 322), the advection and collision stages (steps 308-320) are repeated. If the incremented timer indicates that the simulation is complete (step 322), the results of the simulation are stored and / or displayed (step 324). A scalar solver process 330, which implements the above features, is also shown. Scalar processing 330 includes an embodiment of element 307, but is embodied and performed using an additional set of grid velocities that support the moments required for the additional scalars as described above.
[0111] 1. Surface boundary conditions To correctly simulate interactions with the surface, each facet should satisfy four boundary conditions. First, the resultant mass of particles received by the facet should equal the resultant mass of particles transferred by the facet (i.e., the net mass flux to the facet should equal zero). Second, the resultant energy of particles received by the facet should equal the resultant energy of particles transferred by the facet (i.e., the net energy flux to the facet should equal zero). These two conditions can be satisfied by requiring the net mass flux at each energy level (i.e., energy levels 1 and 2) to equal zero.
[0112] The other two boundary conditions relate to the net momentum of the particles interacting with the facet. For a frictionless surface, referred to herein as the slip surface, the net tangential momentum flux should equal zero, and the net normal momentum flux should equal the local pressure at the facet. Thus, the normal to the facet, n α The components of the combined received and transferred momentum perpendicular to (i.e., tangential components) should be equal, while the facet normal n α The difference between the combined received and transferred momentum components parallel to (i.e., the normal components) should equal the local pressure at the facet. For a non-slip surface, surface friction reduces the combined tangential momentum of particles transferred by the facet relative to the combined tangential momentum of particles received by the facet by a factor related to the amount of friction.
[0113] 2. Collecting from voxels to facets First, when simulating interactions between particles and surfaces, particles are collected from voxels and presented to facets (308). As mentioned above, voxels N(x) and facets F α The flux of particles in state i between Gamma iα (x)=N i (x)V iα (x) Eq.(I-9) is.
[0114] From here, Facet F α For each state i directed to (c i n α <0), voxels facet F α The number of particles provided to Gamma iαV→F =Σ X Gamma iα (x)=Σ X N i (x)V iα (x) Eq.(I-10) is.
[0115] V iα Only voxels with non-zero values of (x) should be summed. As mentioned above, the facet magnitude is only large for a small number of voxels, V iα (x) is chosen to have a non-zero value. iα (x) and P f Since (x) can have non-integer values, Γ α (x) is stored and processed as a real number.
[0116] 3. Moving from facet to facet Next, the particles are moved between the facets (310). α The incoming state (c i n α <0) for the parallelepiped G iα and another facet F β intersect, then facet F α The part of particles in state i received by facet F β Specifically, facet F α is the facet F during the previous time increment. β will receive a portion of the particles in state i produced by
[0117] Referring now to FIG. 16, where facet F β In Figure 16, the relationship between particles in state i generated by facet F β Intersecting parallelepiped G iα Part 380 of the facet F α Intersecting parallelepiped G iβ As mentioned above, the intersection is equal to the part 382 of V iα (β). Using this term, the facet F β and facet F α The flux of particles in state i between Gamma iα (β,t-1)=Γ i (β)V iα (β) / V iα Eq.(I-11) where Γ i (β,t-1) is the facet F during the previous time increment β is the measurement of the particle in state i produced by the facet F α Each state i(c i n α <0), facet F is determined by other facets. α The number of particles provided to Gamma iaF→F =Σ β Gamma iα (β)=Σ β Gamma i (β,t-1)V iα (β) / V iα Eq.(I-12) and the total flux of particles of state i into the facet is Gamma iIN(α) =Γ iaF→F +Γ iaF→F =Σ x N i (x)V iα +Σ β Gamma i (β,t-1)V iα (β) / V iα Eq.(I-13) is.
[0118] The state vector for a facet, N(α), also called the facet distribution function, has M entries corresponding to the M entries of the voxel state vector, where M is the number of discrete lattice velocities. The input states of the facet distribution function, N(α), are given by iα is set equal to the flux of particles into these states divided by c i n α For <0, N i (α)=Γ iIN (α) / V iα Eq.(I-14) is.
[0119] The facet distribution function is a simulation tool for generating output flux from the facet and does not necessarily represent actual particles. To generate accurate output flux, assign values to the other states of the distribution function. Use the techniques described above for populating the inner states to populate the outer states. i n α For ≧0, N i (α)=Γ iOTHER (α) / V iα Eq.(I-15) where Γ iIN Using the techniques described above to generate (α), iOTHER (α), but the incoming state (c i n α <0)) other than the state (c i n α ≥ 0). An alternative approach is to Gamma iOTHER (α,t)=Γ iOUT (α,t-1) Eq.(I-16) Γ from the previous time so that iOUT Using the value of (α), iOTHER (α) can be generated.
[0120] Parallel state (c i n α =0), V iα and V iα (x) are both zero. i In the formula for (α), V iα (x) is (Γ iOTHER (from the formula for α) appears in the numerator, and V iα is (N i (from the equation for α) appears in the denominator. Therefore, N for the parallel state i (α) is V iα and V iα As (x) approaches zero, N iThe 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 at the beginning of the simulation based on the initial conditions for temperature and pressure. These values are then adjusted over time.
[0121] 4. Performing Faceted Surface Dynamics Next, we perform surface dynamics on each facet (312) to satisfy the four boundary conditions mentioned above. The procedure for performing surface dynamics on a facet is shown in Figure 17. This procedure is performed for flow particles and for scalar particles as shown. First, for all i,
number
[0122] Using the push / pull technique, we eliminate this normal momentum (384) and obtain N n- (α). According to this technique, particles move between states in a manner that affects only normal momentum. The push / pull technique is described in U.S. Patent No. 5,594,671, which is incorporated by reference.
[0123] Then, N n- (α) particles are collided, and the Boltzmann distribution N n-β (α) (386). As explained below, for implementing fluid dynamics, N n- By applying a set of collision rules to (α) to the flow and scalar distributions respectively, a Boltzmann distribution can be achieved.
[0124] Based on the incoming flux distribution and the Boltzmann distribution, the facet F α Determine the outgoing flux distribution for (388).
[0125] First, the incoming flux distribution Γ i The difference between (α) and the Boltzmann distribution is ΔΓ i (α)=Γ iIN (α)-N n-βi (α)V iα Eq.(I-19) It is decided that:
[0126] Using this difference, the outgoing flux distribution is α c i > Regarding 0, Gamma iOUT (α)=N n-βi (α)V iα -.Δ.Γ i *(α) Eq.(I-20) where i * is the state that has the opposite direction to state i. For example, if state i is (1, 1, 0, 0), then state i * is (-1, -1, 0, 0). To account for skin friction and other factors, the outgoing flux distribution is n α c i > Regarding 0, Gamma iOUT (α)=N n-βi (α)V iα -ΔΓ i *(α)+ C f (n α ·c i )-[N n-βi *(α)-N n-βi (α)]V ia + (n α ·c i )(t 1α ·c i )ΔN j,1 V iα + (n a ·ci )(t 2α ·c i )ΔN j,2 V iα Eq.(I-21) can be further refined to, where C f is a function of skin friction, and t iα is n α is the first tangential vector perpendicular to t 2α is n α and t 1α is the second tangential vector perpendicular to both the j,1 and ΔN j,2 is the distribution function corresponding to the energy of state i (j) and the tangential vector shown. The distribution function is
number
[0127] Gamma iOUT The functions of each term in the equation for (α) are as follows: The first and second terms enforce the normal momentum flux boundary condition to the extent that collisions are effective in producing a Boltzmann distribution, but include anomalies in the tangential momentum flux. The fourth and fifth terms correct for this anomaly, which may be caused by discreteness effects due to insufficient collisions or non-Boltzmann structures. Finally, the third term adds a specified amount of skin fraction to enforce the desired change in tangential momentum flux on the surface. The friction coefficient C f The generation of is described below. Note that all terms involving vector manipulation are geometric factors that can be calculated before starting the simulation.
[0128] From this, the tangential velocity is u i (α)=(P(α)-P n (α)n α ) / ρ Eq.(I-23) where ρ is the density of the facet distribution.
number
[0129] As mentioned before, we define the difference between the incoming flux distribution and the Boltzmann distribution as ΔΓ i (α)=Γ iIN (α)-N n-βi (α)V iα Eq.(I-25) And so it is decided.
[0130] The outgoing flux distribution is then Gamma iOUT (α)=N n-βi (α)V iα -ΔΓ i *(α)+C f (n α c i )[N n-βi *(α)-N n-βi (α)]V iα Eq.(I-26) which corresponds to the first two lines of outgoing flux distribution determined by previous techniques, but does not require correction for anomalous tangential flux.
[0131] Using either approach, the resulting flux distribution satisfies all of the momentum flux conditions, i.e.,
number
[0132] To ensure that the mass and energy boundary conditions are satisfied, the difference between the input and output energies is measured for each energy level j as follows:
number
number
[0133] 5. Moving from voxel to voxel Referring again to Figure 9, particles move between voxels along a three-dimensional rectilinear grid (314). This voxel-to-voxel movement is the only translation operation performed on voxels that do not interact with facets (i.e., voxels that are not near the surface). In a typical simulation, the majority of voxels are not close enough to the surface to interact with it.
[0134] Each distinct state represents a particle moving along the lattice with an integer velocity in each of the three dimensions: x, y, and z. Integer velocities include 0, ±1, and ±2. The sign of the velocity indicates the direction the particle is moving along the corresponding axis.
[0135] For voxels that do not interact with surfaces, the movement operation is computationally fairly simple. During every time increment, we move the entire population of states from its current voxel to its destination voxel. At the same time, the particle in the destination voxel moves from this voxel to its own destination voxel. For example, a particle with energy level 1 moving in the +1x and +1y directions (1,0,0) will move from its current voxel to a voxel that is +1 or greater in the x direction and 0 in other directions. The particle will eventually end up in its destination voxel in the same state (1,0,0) it had before the move. Interactions within the voxel will likely change the particle count for this state based on local interactions with other particles and surfaces. Otherwise, the particle will continue to move along the grid at the same speed and direction.
[0136] The movement behavior is slightly more complex for voxels that interact with one or more surfaces. This can result in one or more fractional particles moving to a facet. When such fractional particles move to a facet, they will remain in the voxel. These fractional particles will move into the voxels occupied by the facet.
[0137] 15, when a portion 360 of the particles in state i for voxel 362 moves to facet 364 (278), the remaining portion 366 moves to voxel 368, which contains facet 364 and to which the particles in state i are directed. Thus, if the state population is equal to 25 and V iα (x) is equal to 0.25 (i.e., one-quarter of the voxels are parallelepiped G iα , 6.25 particles are on facet F α 18.75 particles move to facet Fα Since multiple facets may intersect a single voxel, the number of particles in state i that move to a voxel N(f) occupied by one or more facets is given by
number
[0138] 6. Facet-to-voxel scattering The particles leaving each facet are then scattered into voxels (316). Essentially, this is the reverse of the collection in which particles were moved from voxels to facets. α The number of particles in state i moving from to voxel N(x) is
number
number
[0139] After scattering particles from a facet into a voxel, compositing the scattered particles with particles advected from surrounding voxels, and integer-scaling the result, it is possible that certain directions at certain voxels may underflow (become negative) or overflow (exceed 255 in 8-bit implementations). This will result in a gain or loss of mass, momentum, and energy after truncating the mass, momentum, and energy amounts to fit within the allowed range of values.
[0140] To guard against such occurrences, the excess mass, momentum, and energy are collected before truncating the state in question. An amount of mass equal to the value gained (due to underflow) or lost (due to overflow) from the energy to which the state belongs is added back to a randomly (or sequentially) selected state that has the same energy and that does not itself undergo overflow or underflow. The additional momentum resulting from this addition of mass and energy is collected and added to the momentum from the truncation. By adding mass only to the same energy state, both mass and energy are corrected when the mass counter reaches zero. Finally, momentum is corrected using a push / pull technique until the momentum accumulator returns to zero.
[0141] 7. Performing Fluid Dynamics Perform fluid dynamics (318), which is sometimes called microdynamics or intravoxel operations. Similarly, advection procedures are sometimes called intervoxel operations. The microdynamic operations described below can also be used to collide particles with facets, producing a Boltzmann distribution.
[0142] Fluid dynamics is guaranteed in the Lattice Boltzmann equation model by a specific collision operator known as the BGK collision model. This collision model mimics the distribution dynamics in real fluid systems. The collision process can be well described by the right-hand side of Eq. I-1 and Eq. 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 Eq. I-3. From these quantities, f in Eq. (2) can be calculated. eq The equilibrium distribution function, denoted by , is fully specified by Eq. I-4. The velocity vector set c i ,Weights ,Both choices are listed in Table 1 and together with ,Eq.I-2, ensure that the macroscopic behavior follows the ,correct hydraulic equations.
[0143] E. Variable resolution Variable resolution (as discussed in U.S. Patent Application Publication No. 2013 / 0151221) can also be employed, which would involve using voxels of different sizes, for example, coarse and fine voxels, and can apply to both flow and scalar particle interactions with the voxels.
[0144] By leveraging unique transient Lattice Boltzmann-based physics, the system can perform simulations that accurately predict real-world conditions. For example, engineers can evaluate product performance early in the design process before any prototypes are built, when the impact of changes is most significant to the design and budget. Using CAD geometry, the system can accurately and efficiently perform aerodynamics, aeroacoustics, and thermal management simulations.
[0145] Using a scalar solver, the system can perform simulations to address high Mach number applications, such as those involving Mach numbers greater than 0.3, or greater than 1.0, or greater than multiples of 1.0. Such applications can be found in aerodynamics (aerodynamic efficiency, vehicle handling, soil and water management, panel deformation, driving dynamics), aeroacoustics (greenhouse wind noise, underbody wind noise, gap / seal noise, mirror, whistle and tonal noise, sunroof and window buffeting, pass-by / community noise, cooling fan noise), thermal management (cooling airflow, thermal protection, brake cooling, drive cycle simulation, key-off and soak, electronics and battery cooling, ROA / intake port), environmental control (cabin comfort, HVAC unit & distribution system performance, HVAC system and fan noise, defrost and demist), powertrain (driveline cooling, exhaust system, cooling jacket, engine block), and soil and water management (pillar overflow, dirt and dust accumulation, tire spray).
[0146] Embodiments of the subject matter and functional operations described herein can be realized in digital electronic circuitry, tangibly embodied computer software or firmware, computer hardware (including the structures disclosed herein and their structural equivalents), or one or more combinations thereof. Embodiments of the subject matter described herein can be implemented as one or more computer programs (i.e., one or more modules of computer program instructions encoded on a tangible, non-transitory program carrier for execution by or to control the operation of a data processing apparatus). A computer storage medium can be a machine-readable storage device, a machine-readable storage substrate, a random or serial access memory device, or one or more combinations thereof.
[0147] The term "data processing apparatus" refers to data processing hardware and encompasses all types of apparatus, devices, and machines for processing data, including, by way of example, a programmable processor, a computer, or multiple processors or computers. An apparatus can also be or further include special-purpose logic circuitry (e.g., an FPGA (field-programmable gate array) or an ASIC (application-specific integrated circuit)). In addition to hardware, an apparatus optionally includes code that creates an execution environment for computer programs (e.g., code essential to processor firmware, a protocol stack, a database management system, an operating system, or any combination of one or more of these).
[0148] A computer program may also be called or described as a program, software, software application, module, software module, script, or code, and may be written in any form of programming language, including compiled or interpreted languages, or declarative or procedural languages, and may be distributed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program may, but need not, correspond to a file in a file system. A program may be stored in part of a file that holds other programs or data (e.g., in a markup language document, in a single file dedicated to the program, or as one or more scripts stored in multiple interlocking files (e.g., files that store one or more modules, subprograms, or portions of code)). A computer program may be distributed to be executed on one computer or on multiple computers, either at one site or distributed across multiple sites and interconnected by a data communications network.
[0149] The processes and logic flows described herein may be performed by one or more programmable computers executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows may also be performed by, and apparatus may be implemented as, special purpose logic circuitry (e.g., an FPGA (Field Programmable Gate Array) or an ASIC (Application Specific Integrated Circuit)).
[0150] A computer suitable for running a computer program 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 will receive instructions and data from a read-only memory, a random-access memory, or both. The essential elements of a computer are a central processing unit for performing or executing instructions, and one or more memory devices for storing instructions and data. Typically, a computer will also include one or more mass storage devices for storing data (such as, for example, magnetic, magneto-optical, or optical disks), or be operatively coupled to receive data from or move data to the mass storage devices, or both, although a computer need not have such devices. Furthermore, a computer can be incorporated into another device (such as, for example, a mobile phone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a global positioning system (GPS) receiver, or a portable storage device (e.g., a universal serial bus (USB) flash drive), to name just a few).
[0151] Computer-readable media suitable for storing computer program instructions and data include, by way of example, all forms of non-volatile memory on media and memory devices, including semiconductor memory devices (e.g., EPROM, EEPROM, and flash memory devices), magnetic disks (e.g., internal hard disks or removable disks), magneto-optical disks, and CD-ROM and DVD-ROM disks. The processor and memory may be supplemented by, or incorporated in, special purpose logic circuitry.
[0152] To interact with a user, embodiments of the subject matter described herein 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, as well as a keyboard and pointing device (e.g., a mouse or trackball) through which the user can provide input to the computer. Other types of devices can be used to interact with the user as well; for example, feedback provided to the user can be in the 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, spoken, or tactile input. Additionally, a computer can interact with a user by sending documents to and receiving documents from a device used by the user, such as, for example, by sending a web page to a web browser on the user's device in response to a request received from the web browser.
[0153] Embodiments of the subject matter described herein can be implemented in a computing system that includes back-end components (e.g., as a data server), or that includes middleware components (e.g., an application server), or that includes 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 herein), or that includes any combination of one or more such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network (LAN) and a wide area network (WAN) (e.g., the Internet).
[0154] A computing system may include clients and servers. Clients and servers are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. In some embodiments, a server transmits data (e.g., HTML pages) to user devices that act as clients (e.g., to display the data to and receive user input from users interacting with the user devices). Data generated by the user devices (e.g., results of user interactions) may be received by the server from the user devices.
[0155] While the specification contains details of many specific implementations, these should not be construed as limitations on the scope of any invention or on the scope that may be claimed, but rather as descriptions of features that may be specific to particular embodiments of a particular invention. Certain features that are described herein in the context of separate embodiments may also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment may also be implemented in multiple embodiments separately or in any suitable subcombination. Furthermore, while features may be described above as functioning in a certain combination and therefore may be initially claimed, one or more features from a claimed combination may, in some cases, be deleted from the combination, and the claimed combination may be subject to subcombinations or variations of subcombinations.
[0156] Similarly, while the figures depict acts in a particular order, this should not be understood as requiring such acts to be performed in the particular order or sequence shown, or that all of the shown acts be performed to achieve desirable results. In certain situations, multitasking and parallel processing may be advantageous. Furthermore, the separation of various system modules and components in the above-described embodiments should not be understood as requiring such separation in all embodiments, and it will be understood that the program components and systems described may generally be integrated together in a single software product or packaged in multiple software products.
[0157] Specific embodiments of the subject matter have been described. Other embodiments are within the scope of the following claims. For example, the actions recited in the claims may be performed in a different order and still achieve desirable results. As one example, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In some cases, multitasking and parallel processing may be advantageous. [Explanation of symbols]
[0158] 10 Systems 11 Bus System 12 Server systems, large-scale parallel computing systems 14 Client Systems 18 Memory 20 Interface 24 Processing Device 30 User-supplied mesh definition 32 Mesh Creation Engines 34 Simulation Engine 34a Collision interaction flow particles 34a' Collision interaction module, collision interaction scalar particle 34b Boundary module, boundary modeling flow particles and scalar particles 34c Flow Solver 34c' Scalar solver 34d Advection-flow collision interaction module, advection-flow particles 34d' Advection scalar particle collision interaction module, advection scalar particle 38 Data Repositories 45 Lattice Boltzmann model simulation 45a~45c Flow Distribution 46 Simulation development of particle flow distribution, simulation of fluid particle distribution, Lattice Boltzmann simulation processing 47 Simulation of scalar particle distribution, scalar particle distribution, simulation, LB scalar solver part 48 Boundary Layer Processing 52 Advection 100 First Model (2D-1) 200 Second Model (3D-1) 350 areas 352 Object 354 areas 356 areas 360 areas, some 362 Objects, Voxels 364 Areas, Facets 366 area, the rest 368 voxels 380 parts 382 parts
Claims
1. simulating, by a computing system, the motion of scalar particles representing scalar quantities in a volume of fluid using a scalar grid velocity set, the scalar particles being carried by flow particles in the volume of fluid, the motion of the scalar particles causing collisions between the scalar particles; evaluating a non-equilibrium post-collision scalar distribution function of a specified order representing said scalar collision; 20. A computer-implemented method comprising:
2. The method of claim 1 , wherein the non-equilibrium post-collision scalar distribution function is Galilean invariant.
3. The method of claim 1 , wherein the non-equilibrium post-collision scalar distribution function is related to the relative velocities of the flow particles within the volume of fluid.
4. The method of claim 1 , wherein the movement of the scalar particles causing collisions between the scalar particles results in a diffusion of a scalar quantity throughout the volume.
5. simulating, by the computing system, the movement of flow particles representing the volume of fluid using a flow grid velocity set, the movement of the flow particles causing collisions between the flow particles; evaluating a non-equilibrium post-collision flow distribution function of a specified order that represents said flow collision; The method of claim 1 further comprising:
6. the scalar grating velocity set, the scalar quantity, and the non-equilibrium post-collision scalar distribution function are a first scalar grating velocity set, a first scalar quantity, and a first non-equilibrium post-collision scalar distribution function, respectively; and the method comprises: simulating, on the computer, the motion of second scalar particles representing a second different scalar quantity within the volume of fluid using a second different set of scalar grating velocities, the second scalar particles being carried by the flow particles within the volume of fluid, the motion of the second scalar particles causing collisions between the second scalar particles; and evaluating a second different non-equilibrium post-collision scalar distribution function of a specified order representing the second scalar collision; The method of claim 1 further comprising:
7. The method of claim 1 , wherein the non-equilibrium post-collision scalar distribution function preserves non-equilibrium moments for the scalar quantities and eliminates non-equilibrium moments for the scalar quantities higher than the specified order.
8. The method of claim 8 , wherein the scalar lattice velocity set supports hydrodynamic motion up to a specified order of the scalar particle speed.
9. The method of claim 8 , wherein the specified order is an exponential value associated with the ratio of the fluid velocity to the lattice sound speed, and the lattice velocity set supports the exponential value.
10. The method of claim 8 , wherein the specified order is selected from zeroth order, first order, and second order.
11. using the flow grid velocity set to determine a relative particle velocity of a particle at a particular location within the volume of fluid, the relative particle velocity being the difference between the absolute velocity of the particle at the particular location measured under zero flow of the fluid within the volume and the average velocity of the particle at the particular location within the volume; determining a non-equilibrium post-collision distribution of a specified order representing said collision of said particles based on said relative particle velocities; The method of claim 1 further comprising:
12. The method of claim 1 , wherein for macroscopic fluid flow, the specified order is a first moment proportional to the gradient of the scalar.
13. 2. The method of claim 1, wherein the non-equilibrium post-collision scalar distribution is proportional to the sum of the set of scalar lattice velocities divided by a Hermite polynomial factorial of the order multiple of the dimensionless velocity of the fluid.
14. The method of claim 1 , wherein the non-equilibrium post-collision scalar distribution is related to the sum multiplied by a weighting factor corresponding to a weighting coefficient of a particle distribution function.
15. one or more processors; a memory operatively coupled to the one or more processors; 1. A computer storage device, comprising: simulating the motion of scalar particles representing scalar quantities in a volume of fluid using a scalar grid velocity set, the scalar particles being carried by flow particles in the volume of fluid, the motion of the scalar particles causing collisions between the scalar particles; and Evaluating a non-equilibrium post-collision scalar distribution function of a specified order representing said scalar collision. a computer storage device storing instructions for causing the one or more processors to perform the A computer system comprising:
16. 16. The computer system of claim 15, wherein the non-equilibrium post-collision scalar distribution function is Galilean invariant.
17. 16. The computer system of claim 15, wherein the non-equilibrium post-collision scalar distribution function is related to the relative velocities of the flow particles within the volume of fluid.
18. 16. The computer system of claim 15, wherein the movement of the scalar particles causing collisions between the scalar particles causes a diffusion of a scalar quantity throughout the volume.
19. simulating the movement of flow particles representing the volume of fluid using a flow grid velocity set, wherein the movement of the flow particles causes collisions between the flow particles; evaluating a non-equilibrium post-collision flow distribution function of a specified order representing said flow collision; 16. The computer system of claim 15, further comprising instructions for:
20. the scalar grating velocity set, the scalar quantity, and the non-equilibrium post-collision scalar distribution function are a first scalar grating velocity set, a first scalar quantity, and a first non-equilibrium post-collision scalar distribution function, respectively; and the computer system: simulating, on the computer, the motion of second scalar particles representing a second different scalar quantity within the volume of fluid using a second different set of scalar grating velocities, the second scalar particles being carried by the flow particles within the volume of fluid, the motion of the second scalar particles causing collisions between the second scalar particles; and based on the motion of the second scalar particles, evaluating a second different non-equilibrium post-collision scalar distribution function of a specified order representing the second scalar collision; and 16. The computer system of claim 15, further comprising instructions for:
21. 1. A computer program product stored on a non-transitory computer-readable medium, comprising: simulating the motion of scalar particles representing scalar quantities in a volume of fluid using a scalar grid velocity set, the scalar particles being carried by flow particles in the volume of fluid, the motion of the scalar particles causing collisions between the scalar particles; evaluating a non-equilibrium post-collision scalar distribution function of a specified order representing said scalar collision; on a system having one or more processors and a memory for storing the program.
22. 22. The computer program product of claim 21, wherein the non-equilibrium post-collision scalar distribution function is Galilean invariant.
23. 22. The computer program product of claim 21, wherein the non-equilibrium post-collision scalar distribution function is related to the relative velocity of the flow particles within the volume of fluid.
24. 22. The computer program product of claim 21, wherein the movement of the scalar particles causing collisions between the scalar particles causes a diffusion of a scalar quantity throughout the volume.
25. simulating the movement of flow particles representing the volume of fluid using a flow grid velocity set, wherein the movement of the flow particles causes collisions between the flow particles; evaluating a non-equilibrium post-collision flow distribution function of a specified order representing said flow collision; 22. The computer program product of claim 21, further comprising instructions for:
26. the scalar grating velocity set, the scalar quantity, and the non-equilibrium post-collision scalar distribution function are a first scalar grating velocity set, a first scalar quantity, and a first non-equilibrium post-collision scalar distribution function, respectively; and the computer system: simulating, on the computer, the motion of second scalar particles representing a second different scalar quantity within the volume of fluid using a second different set of scalar grating velocities, the second scalar particles being carried by the flow particles within the volume of fluid, the motion of the second scalar particles causing collisions between the second scalar particles; and based on the motion of the second scalar particles, evaluating a second different non-equilibrium post-collision scalar distribution function of a specified order representing the second scalar collision; and 22. The computer program product of claim 21, further comprising instructions for: