Computer system for digitally simulating quasi-incompressible fluid flow in a computer-aided design model
The modified LBM approach addresses truncation errors in fluid flow simulations by using the zeroth and first moments of the distribution function, enhancing accuracy and stability for incompressible and multiphase flows.
Patent Information
- Application Number
- JP2025110348
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2025-06-24
- Filing Date
- 2025-06-30
- Publication Date
- 2026-01-19
AI Technical Summary
Existing fluid flow simulations, particularly those using the Lattice Boltzmann Method (LBM), suffer from truncation errors when simulating incompressible or multiphase fluid flows with high density ratios, leading to unphysical results and instability.
The approach improves fluid flow simulations by using a modified LBM that accounts for Galilean invariance and absolute pressure value independence, utilizing the zeroth and first moments of the distribution function to reduce truncation errors, and implementing a data processing system to simulate fluid flow in a 3D CAD model.
This method enhances the accuracy and stability of fluid flow simulations by reducing truncation errors, improving Galilean invariance, and allowing for efficient simulation of pseudo-incompressible and multiphase fluid flows.
Smart Images

Figure 2026009015000001_ABST
Abstract
Description
[Technical Field]
[0001] The present description relates to simulating physical processes, such as fluid flow. [Background technology]
[0002] Fluid flow can be simulated by generating discretized solutions to the Navier-Stokes difference equations by performing high-precision floating-point arithmetic on variables representing macroscopic physical quantities (e.g., density, temperature, flow velocity) at each of many distinct spatial locations. Another approach is to replace the difference equations with what is commonly known as a lattice gas (or cellular) automaton, in which 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 sites on a lattice. Summary of the Invention
[0003] The present disclosure describes an approach for improving the accuracy of digital simulations of fluid flow. The Lattice Boltzmann Method (LBM) is one approach for digitally simulating fluid flow. Standard LBM is based on compressible fluid assumptions, which can lead to errors in simulation results due to the effects of truncation errors when simulating certain types of fluid flow, such as incompressible fluid flow or multiphase fluid flow with high density ratios. The disclosed approach reduces truncation errors, which can lead to unphysical results in digital simulations. Removing undesirable truncation errors can also improve the stability of digital simulations.
[0004] In one example implementation, a computer system for digitally simulating fluid flow in a three-dimensional computer-aided design (CAD) model of a simulation space includes one or more processors and a memory including a mesh preparation engine for generating and storing a digital representation of the simulation space based on the digital three-dimensional CAD model, the digital representation including a mesh comprising a plurality of voxels, and a simulation engine for reading the digital representation of the mesh in the simulation space from the mesh preparation engine. The simulation engine stores instructions for digitally simulating fluid flow. When executed by the one or more processors, the instructions cause the one or more processors to perform operations including reading the digital representation of the mesh in the simulation space from the mesh preparation engine and digitally simulating the movement of one or more digital particles representing a fluid from one or more first voxels to one or more second voxels in the digital representation of the mesh. The one or more digital particles are associated with an energy state and a lattice velocity. The operations include performing one or more interaction operations on the one or more digital particles in the one or more second voxels to determine a distribution of the one or more digital particles, wherein the first quantity represented by the distribution of the one or more digital particles in the one or more second voxels is based on the temperature and pressure in the one or more second voxels and a reference fluid density, and the second quantity represented by the distribution of the one or more digital particles is based on the reference fluid density, the velocity of the one or more digital particles, and an average fluid velocity.
[0005] In one aspect that can be combined with the example implementation, the first quantity is represented by the zeroth moment of a distribution of one or more digital particles, the zeroth moment being proportional to pressure independent of local density.
[0006] In another aspect that may be combined with one, some, or all of the previous aspects, the second quantity is represented by a first moment of a distribution of one or more digital particles, the first moment being proportional to the average fluid velocity independent of local density dependence.
[0007] In another aspect that may be combined with one, some, or all of the previous aspects, the first quantity and the second quantity improve accuracy of digitally simulating fluid flow by reducing truncation error by improving Galilean invariance of the digital simulation relative to simulations that do not include a reference fluid density in the first quantity and the second quantity.
[0008] In another embodiment that may be combined with one, some, or all of the previous embodiments, the fluid flow is a multiphase fluid flow with a high density ratio between the phases of the fluid flow.
[0009] In another aspect that may be combined with one, some, or all of the previous aspects, the instructions include storing in a memory results of a digital simulation of the fluid flow, the digital simulation based on digitally simulating movement of one or more digital particles from one or more first voxels to one or more second voxels in a digital representation of a mesh, and performing an interaction operation on the one or more digital particles in the one or more second voxels to determine a distribution of the one or more digital particles.
[0010] In another aspect that may be combined with one, some, or all of the previous aspects, digitally simulating the fluid flow using the first quantity improves independence of the fluid flow from absolute pressure values for digital simulations using a first quantity that is not based on pressure and a reference fluid density.
[0011] In another example implementation, a method for digitally simulating fluid flow in a three-dimensional computer-aided design (CAD) model of a simulation space includes reading, with a data processing system, a digital representation of the simulation space based on the digital three-dimensional CAD model, the digital representation including a mesh having a plurality of voxels; and digitally simulating, with the data processing system, the movement of one or more digital particles representing a fluid from one or more first voxels to one or more second voxels in the digital representation of the mesh. The one or more digital particles are associated with an energy state and a lattice velocity. The method includes performing, with the data processing system, one or more interaction operations on the one or more digital particles in the one or more second voxels to determine a distribution of the one or more digital particles. A first quantity represented by the distribution of the one or more digital particles in the one or more second voxels is based on the temperature and pressure in the one or more second voxels and a reference fluid density, and a second quantity represented by the distribution of the one or more digital particles is based on the reference fluid density, the velocity of the one or more digital particles, and an average fluid velocity.
[0012] In one aspect that can be combined with the example implementation, the first quantity is represented by the zeroth moment of a distribution of one or more digital particles, the zeroth moment being proportional to pressure independent of local density.
[0013] In another aspect that may be combined with one, some, or all of the previous aspects, the second quantity is represented by a first moment of a distribution of one or more digital particles, the first moment being proportional to the average fluid velocity independent of local density dependence.
[0014] In another aspect that may be combined with one, some, or all of the previous aspects, the first quantity and the second quantity improve accuracy of digitally simulating fluid flow by reducing truncation error by improving Galilean invariance of the digital simulation relative to simulations that do not include a reference fluid density in the first quantity and the second quantity.
[0015] In another embodiment that may be combined with one, some, or all of the previous embodiments, the fluid flow is a multiphase fluid flow with a high density ratio between the phases of the fluid flow.
[0016] Another aspect that may be combined with one, some, or all of the previous aspects includes storing, by a data processing system in a hardware storage device, results of a digital simulation of a fluid flow, the digital simulation being based on digitally simulating movement of one or more digital particles from one or more first voxels to one or more second voxels in a digital representation of a mesh, and performing an interaction operation on the one or more digital particles in the one or more second voxels to determine a distribution of the one or more digital particles.
[0017] In another aspect that may be combined with one, some, or all of the previous aspects, digitally simulating the fluid flow using the first quantity improves independence of the fluid flow from absolute pressure values for digital simulations using a first quantity that is not based on pressure and a reference fluid density.
[0018] In another example implementation, one or more non-transitory machine-readable storage devices store instructions for digitally simulating fluid flow in a three-dimensional computer-aided design (CAD) model of a simulation space. The instructions are executable by one or more processors to cause performance of operations including reading a digital representation of the simulation space based on the digital three-dimensional CAD model. The digital representation includes a mesh including a plurality of voxels. The operations include digitally simulating movement of one or more digital particles representing a fluid from one or more first voxels to one or more second voxels in the digital representation of the mesh. The one or more digital particles are associated with an energy state and a lattice velocity. The operations include performing one or more interaction operations on the one or more digital particles in the one or more second voxels to determine a distribution of the one or more digital particles. The first quantity represented by the distribution of the one or more digital particles in the one or more second voxels is based on the temperature and pressure in the one or more second voxels and the reference fluid density, and the second quantity represented by the distribution of the one or more digital particles is based on the reference fluid density, the velocity of the one or more digital particles, and the average fluid velocity.
[0019] In one aspect that can be combined with the example implementation, the first quantity is represented by the zeroth moment of a distribution of one or more digital particles, the zeroth moment being proportional to pressure independent of local density.
[0020] In another aspect that may be combined with one, some, or all of the previous aspects, the second quantity is represented by a first moment of a distribution of one or more digital particles, the first moment being proportional to the average fluid velocity independent of local density dependence.
[0021] In another embodiment that may be combined with one, some, or all of the previous embodiments, the fluid flow is a multiphase fluid flow with a high density ratio between the phases of the fluid flow.
[0022] In another aspect that may be combined with one, some, or all of the previous aspects, the instructions include storing, in a hardware storage device, results of a digital simulation of the fluid flow, the digital simulation based on digitally simulating movement of one or more digital particles from one or more first voxels to one or more second voxels in a digital representation of a mesh, and performing an interaction operation on the one or more digital particles in the one or more second voxels to determine a distribution of the one or more digital particles.
[0023] In another aspect that may be combined with one, some, or all of the previous aspects, digitally simulating the fluid flow using the first quantity improves independence of the fluid flow from absolute pressure values relative to digital simulations using a first quantity that is not based on pressure and a reference fluid density, and the first quantity and the second quantity improve accuracy of digitally simulating the fluid flow by reducing truncation error by improving Galilean invariance of the digital simulation relative to simulations that do not include a reference fluid density in the first quantity and the second quantity.
[0024] One or more of the above aspects may provide one or more of the advantages disclosed herein. The present approach may reduce the computational resources required to digitally simulate fluid flow by removing undesired truncation errors from the computation. Removal of undesired truncation errors also improves the stability of the digital simulation. The disclosed approach may implement LBM to solve pseudo-incompressible fluid flows with improved Galilean invariance and absolute pressure value dependence.
[0025] Other features and advantages of this approach will be apparent from the following detailed description and claims. [Brief explanation of the drawings]
[0026] [Figure 1] FIG. 1 is a diagram of a system for simulation of fluid flow including a novel surface dynamics conversion. [Figure 2] 1 is a flowchart showing operations for formulating a Lattice Boltzmann Model simulation. [Figure 3] FIG. 1 is a diagram of the velocity components of two LBMs represented in Euclidean space (prior art). [Figure 4] FIG. 1 is a diagram of the velocity components of two LBMs represented in Euclidean space (prior art). [Figure 5] 1 is a flowchart of the procedure followed by a physical process simulation system using a corrected computer-aided design (CAD) drawing. [Figure 6] FIG. 1 is a perspective view of a microblock (prior art). [Figure 7A] FIG. 2 is a diagram of a lattice structure used by the system of FIG. 1 (prior art). [Figure 7B] FIG. 2 is a diagram of a lattice structure used by the system of FIG. 1 (prior art). [Figure 8] FIG. 1 is a diagram of a variable resolution technique (prior art). [Figure 9] FIG. 1 is a diagram of a variable resolution technique (prior art). [Figure 10] FIG. 1 is a diagram of particle migration (prior art). [Figure 11] FIG. 1 is a diagram of the area affected by the facets of a surface (prior art). [Figure 12] FIG. 1 is a diagram of particle transfer from surface to surface (prior art). [Figure 13] 1 is a flowchart of a procedure for performing surface dynamics. [Figure 14A] FIG. 10 is a visualization of density profiles resulting from digital simulations of static and dynamic droplets. [Figure 14B]FIG. 10 is a visualization of density profiles resulting from digital simulations of static and dynamic droplets. [Figure 15A] FIG. 10 is a visualization of density profiles resulting from digital simulations of static and dynamic droplets. [Figure 15B] FIG. 10 is a visualization of density profiles resulting from digital simulations of static and dynamic droplets. DETAILED DESCRIPTION OF THE INVENTION
[0027] The details of one or more embodiments of the invention are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the invention will be apparent from the description and drawings, and from the claims.
[0028] The present disclosure describes an approach for digitally simulating fluid flow, such as multiphase fluid flow with high density ratios or pseudo-incompressible fluid flow. The approach can improve the stability and accuracy of fluid flow simulations by removing effects caused by truncation errors. The approach can be implemented on a data processing system. The data processing system can obtain a mesh, which is a digital representation of a simulation space based on a 3D CAD model. The mesh includes a plurality of voxels. The data processing system can digitally simulate one or more digital particles representing a fluid from one or more first voxels to one or more second voxels in the mesh. The data processing system can perform one or more interaction operations on the digital particles in the one or more second voxels to determine a distribution of the one or more digital particles. A first quantity (e.g., fluid density) represented by the distribution of the one or more digital particles can be based on the temperature and pressure at the one or more second voxels and a reference fluid density. A second quantity (e.g., momentum density) can be represented by a distribution of particles based on the reference fluid density, the velocity of the one or more digital particles, and the average fluid velocity.
[0029] One method for simulating fluid flow is the so-called Lattice Boltzmann Model (LBM). In an LBM-based physical process simulation system, the fluid flow is represented by a distribution function value that is evaluated at a set of discrete velocities using the well-known lattice Boltzmann equation, which describes the time evolution of the distribution function. The distribution function involves two processes: streaming and collision.
[0030] 1 illustrates a schematic of an example data processing system 10 for performing a Lattice Boltzmann (LB)-based simulation on a digital representation of a simulation space. In this implementation, system 10 is based on a client-server or cloud-based architecture and includes a server system 12 implemented as a massively parallel computing system 16 (standalone or cloud-based) and client systems 14 coupled via a network 15. Server system 12 includes memory 18, a bus system 22, 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 mesh preparation engine 32 and a simulation engine 34.
[0031] 1 shows mesh preparation engine 32 in memory 18, the mesh preparation engine can be a third-party application running on a different system than server 12. Whether mesh preparation engine 32 runs in memory 18 or on a different system than server 12, mesh preparation engine 32 receives a user-supplied mesh definition 30 based on a CAD-generated drawing 31, then prepares the mesh and sends the prepared mesh to (and / or stores) simulation engine 34.
[0032] The simulation engine 34 includes a collision interaction module 34a, which includes a surface dynamics conversion module 34b, a boundary processing module 34c, and an advection operation 34d. The system 10 accesses a data repository 38, which stores 2D and / or 3D meshes (Cartesian and / or curvilinear), coordinate systems, and libraries. For example, system 10 writes data to and reads data from data repository 38, including, for example, data representing a digital simulation of the movement of one or more digital particles representing a fluid from one or more first voxels to one or more second voxels in the digital representation of the mesh, data representing the performance of one or more interaction operations on the one or more digital particles in one or more second voxels to determine a distribution of the one or more digital particles, data representing the distribution of the one or more digital particles, data representing a first density represented by a distribution of one or more digital particles in one or more second voxels based on the temperature and pressure in the one or more second voxels and a reference fluid density, and data representing a second density represented by a distribution of one or more digital particles based on the reference fluid density, the velocity of one or more digital particles, and the average fluid velocity, each of which may be read from and / or written to data repository 38 as needed.
[0033] Referring to FIG. 2 , a process 40 for simulating fluid flow for a representation of a physics object is shown. In the example to be discussed herein, the physics object is an airfoil. Nevertheless, the use of an airfoil is merely illustrative, as the physics object can be of any shape, particularly having flat and / or curved surfaces. The process 40 receives 42 a mesh (or grid) of the simulated physics object, for example, from the client system 14 or retrieves it from the data repository 38. In other embodiments, an external system or server 12 generates the mesh of the simulated physics object based on user input. The process pre-computes 44 geometric quantities from the retrieved mesh and performs 46 a dynamic LBM simulation using the pre-computed geometric quantities corresponding to the retrieved mesh. The LBM simulation includes surface dynamics conversion, boundary modeling, and simulation 46 of the evolution of particle distribution, including advection of particles to the next cell or voxel within the LBM mesh.
[0034] Detailed example The procedure discussed in Figure 5 below describes a flow simulation process using a CAD drawing with vacuums identified to configure the simulation space. In the previous Figures 3 and 4, as well as Figures 6, 7A, 7B, 8, 9, 10, 11, and 12, these figures are labeled as prior art because they appear in U.S. Pat. No. 5,848,260 (the '260 patent) or U.S. Pat. No. 11,847,391 (the '391 patent), both of which are hereby incorporated in their entirety.
[0035] Yet the figure does not take into account any corrections that would be made to the flow simulation using Galilean invariance and absolute pressure value independence, as they appear in the above-referenced patents, since this process described herein is not explained in the above-referenced patents.
[0036] Model simulation space In an LBM-based physical process simulation system, fluid flow is represented by a distribution function value evaluated at a set of discrete velocities. The dynamics of the distribution function are governed by the Lattice Boltzmann Equation (LBE), which relates the change in distribution function due to a "collision process" to the change in distribution due to a so-called "streaming process." A streaming process occurs when a small amount of fluid starts moving at a mesh location and then moves to the next mesh location along one of several velocity vectors. At that point, a "collision factor"—the effect of nearby small amounts of fluid on the starting small amount of fluid—is calculated. Fluids can only move to another mesh location, so an appropriate choice of velocity vector is required, such that all velocity components are multiples of a common speed. The collision process uses a "collision operator" to represent the change in distribution function due to collisions between small amounts of fluid. A specific form of the collision operator is the Bhatnagar, Gross, and Krook (BGK) operator. The collision operator drives the distribution function toward a specified value.
[0037] The BGK operator is constructed according to the physical argument that the distribution function approaches a well-defined local equilibrium through collisions according to a characteristic relaxation time that will result in equilibrium being reached through collisions, whatever the details of the collisions. When dealing with particles (e.g., atoms or molecules), the relaxation time is typically taken to be constant.
[0038] From this simulation, conventional fluid variables such as mass and fluid velocity are obtained based on a simple summation of products of distribution functions. Due to symmetry considerations, the set of velocity values is chosen to form a specific lattice structure when spanning the configuration space. The dynamics of such individual systems follows LBE, and the collision operators typically take the BGK form as described above. With appropriate selection of the equilibrium distribution form, it can be theoretically shown that the lattice Boltzmann equation gives rise to correct hydrodynamics and thermohydrodynamics. That is, the hydrodynamic moments derived from the distribution functions follow the Navier-Stokes equations in the macroscopic limit.
[0039] LBM is a kinetic-based method for simulating fluid flow based on the compressible fluid assumption, which leads asymptotically to the compressible Navier-Stokes (or Stokes) equations. A correspondence can be derived using a Taylor or Chapman-Enskog expansion of the BGK-Boltzmann equation. The first moment expansion of the BGK-Boltzmann equation is
[0040]
number
number
number
[0041]
number
[0042] Under this expression for the moments of the distribution function, the truncated error term has the form
number
number
[0043]
number
[0044]
number
number
[0045] By appropriately setting the expansion factors, the incompressible Stokes equations can be written as
number
number
number
[0046] A pseudo-incompressible flow solver using LBM was developed to mitigate compressibility issues. Σ i f i =P / ρT This is formulated using the definition of the 0th moment of the distribution function as follows:
[0047] Nevertheless, similar to the velocity field, this definition leads to the following undesirable truncation error term in the pressure equation: Specifically, the derived macroscopic equation for the pressure field is:
number
[0048] By appropriately setting the expansion factors C and D, the pressure equation becomes
number
[0049] Here, the nth order
number
number
[0050] To improve the Galilean invariance and absolute pressure value dependence, the zeroth and first moments of the distribution function are
number
[0051] The collective values of the lattice velocities and associated weights define the LBM, which can be run efficiently on scalable computer platforms and with great robustness to time-unstable flows and complex boundary conditions.
[0052] A general discussion of an LBM-based simulation system including a kinetics conversion 34b for performing fluid flow simulations is provided below. See the '260 patent for a further description of an LBM-based physical process simulation system.
[0053] Referring to Figure 3, the first model (2D-1) 200 is a two-dimensional model containing 21 velocities. Of these 21 velocities, one (205) represents a particle that is not moving, three sets of four velocities represent particles moving in either the positive or negative direction along the x or y axis of the lattice at a normalized speed (r) (210-213), double the normalized speed (2r) (220-223), or triple the normalized speed (3r) (230-233), and two sets of four velocities represent particles moving at a normalized speed (r) (240-243) or double the normalized speed (2r) (250-253) relative to both the x and y lattice axes.
[0054] Referring to Figure 4, a second model (3D-1) 260 is illustrated, which is a three-dimensional model that includes 39 velocities, each represented by one of the arrows in Figure 4. 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 speed (r), twice the normalized speed (2r), or three times the normalized speed (3r), eight represent particles moving at a normalized speed (r) relative to all three of the x, y, and z lattice axes, and twelve represent particles moving at twice the normalized speed (2r) relative to two of the x, y, and z lattice axes.
[0055] More complex models, such as the 3D-2 model containing 101 velocities, and the 2D-2 model containing 37 velocities, may also be used. For the 3D model 3D-2, of the 101 velocities, one represents particles that are not moving (Group 1), three sets of six velocities represent particles moving at normalized speed (r), twice normalized speed (2r), or three times normalized speed (3r) in the positive or negative direction along the x, y, or z axis of the lattice (Groups 2, 4, and 7), and three sets of eight represent particles moving at normalized speed (r), twice normalized speed (2r), or three times normalized speed (3r) relative to all three of the x, y, and z lattice axes. 12 represent particles moving at twice the normalized speed (2r) along two of the x, y, and z lattice axes (Group 6); 24 represent particles moving at normalized speed (r) and twice the normalized speed (2r) along two of the x, y, and z lattice axes and not moving along the remaining axes (Group 5); and 24 represent particles moving at normalized speed (r) along two of the x, y, and z lattice axes and three times the normalized speed (3r) along the remaining axes (Group 9).
[0056] For the two-dimensional model 2D-2, of the 37 velocities, one represents particles that are not moving (Group 1); three sets of four velocities represent particles moving at normalized speed (r), double normalized speed (2r), or triple normalized speed (3r) in the positive or negative direction along the x or y axis of the lattice (Groups 2, 4, and 7); two sets of four velocities represent particles moving at normalized speed (r) or double normalized speed (2r) for both the x and y lattice axes; eight velocities represent particles moving at normalized speed (r) for one of the x and y lattice axes and double normalized speed (2r) for the other axis; and eight velocities represent particles moving at normalized speed (r) for one of the x and y lattice axes and triple normalized speed (3r) for the other axis.
[0057] The LB model described above provides a unique class of efficient and robust discrete velocity kinetic models for the numerical simulation of flows in both two and three dimensions. This type of model includes a specific set of discrete velocities and weights associated with these velocities. The velocities correspond to Cartesian grid points in velocity space, which facilitates accurate and efficient implementation of discrete velocity models, particularly those of the type known as lattice Boltzmann models. Using such models, flows can be simulated with high fidelity.
[0058] Referring to Figure 5, a physical process simulation system is described that operates according to procedure 270 to simulate a physical process such as fluid flow. Prior to flow simulation, a simulation space is modeled 272 as a collection of voxels using a CAD drawing as discussed above. The simulation space is generated using a computer-aided design (CAD) program and a gap correction process for the CAD-generated drawing. For example, a CAD program can be used to draw an airfoil placed in a wind tunnel.
[0059] The grid resolution may be selected based on the Reynolds number of the system being simulated, which relates the viscosity of the flow, the characteristic length of objects in the flow, and the characteristic velocity of the flow.
[0060] The characteristic length of an object represents a large-scale feature of the object. For example, if flow around a microdevice is being simulated, the height of the microdevice may be considered to be the characteristic length. When flow around a small area object (e.g., an automobile side mirror) is of interest, the resolution of the simulation may be increased, or an area of increased resolution may be employed around the region of interest. The dimensions of the voxels decrease as the grid resolution increases.
[0061] The state space is expressed as a distribution function of particles per unit volume of a given state at a lattice site, represented by a space vector at a given time. The number of states is determined by the number of possible velocity vectors within each energy level. A velocity vector is an integer linear speed in a space with three dimensions: x, y, and z. For multi-species simulations, the number of states is increased. Each state represents a different velocity vector at a unique energy level (i.e., energy level zero, one, or two). The velocity of each state is dictated by the "speed" of each state in each of the three dimensions.
[0062] An energy level zero state represents a particle that is stopped and not moving in any dimension, meaning the particle's speed in each dimension is zero. An energy level one state represents a particle that has a ±1 speed in one of the three dimensions and zero speed in the other two. An energy level two state represents a particle that has a ±1 speed in all three dimensions, or a ±2 speed in one of the three dimensions and zero speed in the other two.
[0063] Generating all possible permutations of the three energy levels gives a total of 39 possible states (one zero-energy state, six energy-1 states, eight energy-3 states, six energy-4 states, twelve energy-8 states, and six energy-9 states). Each voxel (i.e., each lattice site) is represented by a state vector. The state vector completely defines the status of the voxel and contains 39 entries. The 39 entries correspond to one zero-energy state, six energy-1 states, eight energy-3 states, six energy-4 states, twelve energy-8 states, and six energy-9 states. Using this velocity set, the system can generate Maxwell-Boltzmann statistics for the achieved equilibrium state vector.
[0064] For processing efficiency, voxels are grouped into 2x2x2 volumes called microblocks, which are organized to allow parallel processing of voxels and to minimize overhead associated with data structures.
[0065] A microblock is illustrated in Figure 6. Voxels are represented at the corners of the microblock.
[0066] Referring to FIGS. 7A and 7B, facet F α A surface S (Fig. 7A) is represented in the simulation space (Fig. 7B) as a collection of facets, where α is an index that lists a particular facet. Facets are not limited to voxel boundaries and are typically sized approximately the same as or slightly smaller than the size of the voxels adjacent to the facet, so that facets affect a relatively small number of voxels. Properties are assigned to the facets to implement surface dynamics. In particular, each facet F α The unit normal (n α ), surface area (A α ), central location (x α ), and the facet distribution function (f i (α)). The total energy distribution function is treated similarly to the flux distribution for facet and voxel interactions.
[0067] 8, different levels of resolution can be used for different regions of the simulation space to improve processing efficiency. Typically, the region 320 around the object 322 is of most interest and is therefore simulated at the highest resolution. Because viscous effects decrease with distance from the object, reduced levels of resolution (i.e., enlarged voxel volumes) are employed to simulate regions 324, 326 spaced at increasing distances from the object 322.
[0068] 9, lower levels of resolution may be used to simulate regions 340 around less important features of object 342, while the highest level of resolution is used to simulate regions 344 around the most important features (e.g., leading and trailing surfaces) of object 342. A remote region 346 is simulated using the lowest level of resolution and the largest number of voxels.
[0069] C. Identify voxels affected by facets Referring again to FIG. 5, once the simulation space is modeled (272), voxels influenced by one or more facets are identified (274). Voxels can be influenced by facets in several ways. First, voxels intersected by one or more facets are affected in that they have a reduced volume compared to non-intersected voxels. This occurs because the facets and the underlying material of the surfaces represented by the facets occupy a fraction of the voxel. A fractional factor indicates the portion of the voxel that is not influenced by the facet (i.e., the portion that may be occupied by the fluid or other material whose flow is being simulated). For non-intersected voxels, the fractional factor is equal to 1.
[0070] 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. All voxels 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.
[0071] Referring to Figure 10, the non-zero velocity vector c i For each state i with facet F αis the velocity vector of the facet c i and the unit normal n α The height is defined by the scale of the vector dot product of iα Volume V iα The surface area A of the facets where is equal to the base times the height α A parallelepiped G with a base defined by iα Receive particles from or transfer particles to a region defined by
[0072] Facet F α is the velocity vector of the volume V when the state is directed towards the facet. iα and transfers particles into the region when the velocity vector of the state is directed away from the facet. As discussed below, this relationship is not true when another facet is in contact with the parallelepiped G, a condition that can occur near non-convex features of the surface, such as an internal corner. iα It is corrected when it occupies a part of
[0073] Facet F α Parallelepiped G iα may overlap some or all of many voxels. The number of voxels or fraction 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 is typically chosen to be approximately the same as or smaller than the size of the voxels near the facet, as discussed above.
[0074] Voxels and Facets F α The flux of particles of a given state moving between and is equal to the density of particles of this state in a voxel multiplied by the volume of the area of overlap with the voxel.
[0075] parallelepiped G iα When is intersected by one or more facets, the volume of the parallelepiped V iα is Giα the sum of the volumes associated with each of the overlapped voxels by, and G iα is equal to the sum of the volumes associated with all of the facets that intersect with
[0076] D. Conduct a simulation Once voxels affected by one or more facets have been identified (274), a timer is initialized (276) to begin the simulation. During each time increment of the simulation, an advection stage (278-286) that takes into account particle interactions with surface facets simulates particle movement from voxel to voxel. A subsequent collision stage (288) simulates particle interactions within each voxel. A timer is then incremented (290). If the incremented timer does not indicate that the simulation is complete (292), the advection and collision stages (278-288) are repeated. If the incremented timer indicates that the simulation is complete (292), the results of the simulation are stored and / or displayed (294).
[0077] 1. Surface boundary conditions To correctly simulate interactions with the surface, each facet satisfies four boundary conditions. First, the combined mass of the particles received by the facet equals the combined mass of the particles transported by the facet (i.e., the net mass flux into the facet equals zero). Second, the combined energy of the particles received by the facet equals the combined energy of the particles transported by the facet (i.e., the net energy flux into the facet equals 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.
[0078] 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 a slip surface, the net tangential momentum flux is equal to zero, and the net normal momentum flux is equal to 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) are equal, while the normal to the facet n α The difference between the components of the combined, received, and transferred momentum parallel to (i.e., the normal components) is equal to the local pressure at the facet. For non-slip surfaces, surface friction reduces the combined tangential momentum of particles transferred by the facet compared to the combined tangential momentum of particles received by the facet by a factor related to the amount of friction.
[0079] 2. Converging voxels into facets When simulating interactions between particles and surfaces, particles are collected from voxels and provided to facets (278). As noted above, the particle flux between a voxel of a given state and a facet is with respect to the parallelepiped overlap of the facet and voxel of the given state. Only voxels whose parallelepipeds have non-zero values are summed. As noted above, the size of the facet is selected so that the parallelepiped volume of the facet has only a small number of voxels with non-zero values. The parallelepiped volume and particle flux can have non-integer values; therefore, data processing systems store and process these quantities as real numbers.
[0080] 3. Move from facet to facet The particles are then transferred between the facets (280). α The parallelepiped G in the incoming state iα is another facet F β If intersected by a facet F α The fraction of particles in the incoming state received by facet Fβ In particular, facet F α is the facet F during the previous time increment. β This relationship is illustrated in Figure 12, where the facet F β A parallelepiped G intersected by iα Part 380 of the facet F α A parallelepiped G intersected by iβ is equal to a portion 382 of the facet F α For each state oriented towards facet F, other facets α The number of particles provided to the facet F of the given state and other facets is α The overlap volume between the parallelepipeds of and the facets F of this state α is equal to the flux of particles from other facets from the previous time step multiplied by the ratio of the total volume of the parallelepiped to the volume of the other facets from the previous time step.
[0081] Facet F α The total flux of particles of a given state into the facet F is the sum of particles from all of the voxels overlapping with the facet parallelepiped, and the α is equal to the sum of the fluxes from all of the facets whose parallelepiped volumes overlap with the parallelepiped volume of . The state vector of a facet, also called the facet distribution function, has a number of entries corresponding to the number of entries in the state vector of a voxel, where the number of entries is the number of distinct lattice speeds in the LBM. The input state of the facet distribution function is the iα is set equal to the flux of particles into these states divided by
[0082] The facet distribution function is a simulation tool for generating output flux from a facet and does not necessarily represent an actual particle. To generate accurate output flux, values are assigned to other states of the distribution function. The outgoing states are populated using the techniques described above to populate the inward states. In an alternative approach, flux from states other than the incoming state can be generated using outgoing flux values from the previous time step.
[0083] For parallel states (e.g., states where the velocity is parallel to the facets), the volume of the associated parallelepiped is zero. The facet distribution function for the parallel states is determined as the limit of the facet distribution function, as the volume of the parallelepiped and any overlapping parallelepipeds approaches zero. The values of the states with zero velocity (i.e., the remaining states and states (0,0,0,2) and (0,0,0,-2)) are initialized at the beginning of the simulation based on the initial conditions of temperature and pressure. These values are then adjusted over time.
[0084] 4. Performing Faceted Surface Dynamics Surface dynamics are then performed 282 to ensure that each facet satisfies the boundary conditions. The procedure 390 for performing surface dynamics on a facet is illustrated in FIG.
[0085] Velocity and density are collected from voxels to facets F during the collection step 278 (FIG. 5). α The densities are sampled to the surface. The velocities are then projected along the surface. A Boltzmann equilibrium distribution is computed (392) based on the sampled densities and projected velocities, and the densities and velocities are scaled to satisfy the constraints. The resulting densities and velocities are then used to compute a new Boltzmann equilibrium distribution (392). The difference between the incoming distribution and the new Boltzmann distribution is determined (394), and the combined momentum difference between all incoming states and the corresponding Boltzmann distributions of the facets is computed (396).
[0086] The momentum difference is projected along the tangent direction of the facet. (398) From the momentum difference and the Boltzmann distribution, the flux out of the facet is computed to satisfy the perfect slip boundary condition by satisfying zero tangential flux. (399)
[0087] To take into account skin friction and other factors, the outgoing flux distribution can be expanded with a skin friction component based on the product of the skin friction coefficient of the surface and the difference in the equilibrium fraction of the outgoing and incoming particle fluxes. A more detailed description of the application of skin friction and corrections to the different energy levels of the lattice required for perfect mass and energy conservation is presented in the '260 and '391 patents.
[0088] 5. Moving from voxel to voxel Referring again to Figure 5, particles are moved between voxels along a 3D rectilinear grid (284). This movement between voxels is the only movement 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.
[0089] Each distinct state represents a particle moving along the lattice at an integer speed in each of the three dimensions: x, y, and z. Integer speeds include 0, ±1, and ±2. The sign of the speed indicates the direction in which the particle is moving along the corresponding axis.
[0090] For voxels that do not interact with surfaces, the movement operation is computationally very simple. The entire population of states is moved from its current voxel to its destination voxel at each time increment. At the same time, particles in the destination voxel are moved from this voxel to their own destination voxel. For example, an energy level 1 particle moving in a +1x and +1y direction (1,0,0) is moved from its current voxel to a voxel that is +1 in the x direction and 0 in other directions. The particle ends up in its destination voxel in the same state it had before the move (1,0,0). Interactions within the voxel are likely to change the particle count for this state based on local interactions with other particles and surfaces. Otherwise, the particle will continue moving along the grid at the same speed and direction.
[0091] 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 being transferred to the facet. The transfer of such fractional particles to the facet results in fractional particles remaining in the voxel. These fractional particles are transferred to the voxels occupied by the facet.
[0092] 11, when a portion 360 of the particles of a given state in voxel 362 is moved 278 to facet 364, the remaining portion 366 is moved to voxel 368 where facet 364 is located, and from voxel 368 the particles of the state are directed to facet 364. Thus, if the state population is made equal to 25 and the volume of the parallelepiped overlapping the voxel is made equal to 0.25 (i.e., one-quarter of the voxel intersects the parallelepiped), then 6.25 particles should be moved to facet 364 and 18.75 particles should be moved to voxel 368 occupied by facet 364. Because multiple facets can intersect with a single voxel, the number of particles of a given state that are transferred to a voxel occupied by one or more facets is related to the fraction of the voxel's volume that is not overlapped by the parallelepipeds of the intersecting facets (e.g., the number of particles transferred to a voxel is equal to the total number of particles coming in from the source voxel multiplied by the fraction of the voxel's volume that is not overlapped by the parallelepipeds of the intersecting facets).
[0093] 6. Scattering from facets to voxels Next, particles leaving each facet are scattered to voxels (286). Essentially, this scattering is the inverse of the concentration, where particles are moved from voxels to facets. The number of particles of a given state moving from a facet to a voxel is proportional to the outgoing flux of particles from the facet multiplied by the ratio of the parallelepiped volume overlapping the voxel to the total parallelepiped volume. A proportionality factor can also be included to account for partial voxel volume reduction. For each state, the total number of particles directed from a facet to a voxel is determined based on the sum of the particles moving from each facet to this voxel.
[0094] After scattering particles from facets into voxels, combining these particles with particles advected from surrounding voxels, and integerizing the result, it is possible that a particular orientation at a particular voxel may underflow (go negative) or overflow (e.g., exceed 255 in an 8-bit implementation). This would result in a gain or loss of mass, momentum, and energy after the amounts are truncated to fit within the allowed range of values. To protect against this, mass, momentum, and energy that cross the boundary are accumulated before truncating the offending state. For the energy to which the state belongs, an amount of mass equal to the value gained (by underflow) or lost (by overflow) 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 accumulated and added to the momentum from the truncation. Only by adding mass to the same energy state are both mass and energy corrected when the mass counter reaches zero. Finally, the momentum is corrected using a push / pull technique until the momentum accumulator is returned to zero.
[0095] 7. Conducting Fluid Dynamics Fluid dynamics is performed 288 (FIG. 5). This is sometimes referred to as microdynamics or intravoxel operations. Similarly, advection procedures are sometimes referred to as intervoxel operations. The microdynamic operations described below can similarly be used to collide particles at facets to produce a Boltzmann distribution.
[0096] 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. After the advection step, the conserved quantities of the fluid system, specifically density, momentum, and energy, are obtained from the distribution function. From these quantities, the equilibrium distribution function can be fully specified. The choice of velocity vector set and weights, together with the lattice Boltzmann equation, ensures that the macroscopic behavior follows the correct hydrodynamic equations.
[0097] Variable Resolution Variable resolution (as discussed in U.S. Pat. No. 10,360,324, incorporated herein in its entirety) can also be employed, using different sizes of voxels, e.g., coarse and fine voxels, for different regions of the mesh depending on the region of interest. For example, the region of interest can include fine voxels to solve fluid dynamics at a smaller scale and with higher resolution. Outside the region of interest, coarse voxels can be used in the mesh to reduce the number of computations without reducing the accuracy of the fluid flow simulation in the region of interest. During the simulation of a physical process, particles can be advected between regions with different resolutions.
[0098] example Figures 14A-15B show visualizations of simulation results for two test cases. The first case (Figures 14A and 15A) is a static droplet in free space with initial pressures of 1.0 and 0.0 in lattice units (LU) everywhere. The second case (Figures 14B and 15B) is a dynamic droplet in free space realized with a periodic boundary. Since the initial x-velocity is set to 0.025 LU everywhere, the Galilean invariant simulation should show no effect on droplet shape. The density ratio was set to 1000 in both the first and second cases.
[0099] Figures 14A and 14B show results from simulations performed without removing the undesired truncation error term. Therefore, the simulations are not Galilean invariant but have absolute pressure dependence. Referring to Figure 14A, in contrast to simulation result 1400 for an initial pressure of 0, simulation result 1402 shows that the circular droplet changes shape when the initial pressure is 1.0 LU everywhere. This illustrates the absolute pressure dependence on interface dynamics. Figure 14B shows the density profile for dynamic droplets with an initial x-velocity of 0.025 everywhere at 0, 32k, and 33.6k time steps. The shading indicates the order parameter, which corresponds to the fluid density. Here, the droplet shape should remain unchanged, but its shape becomes distorted over time, illustrating imperfect Galilean invariance.
[0100] By applying the systems and methods of the present disclosure, the problems with static and dynamic droplets shown in FIGS. 14A and 14B are improved, as shown in FIGS. 15A and 15B. Referring to FIG. 15A, simulation results 1500 show the density profile of a static droplet with an initial pressure of 1.0 everywhere. As expected, and reflecting physical reality, the droplet maintains its circular shape. Referring to FIG. 15B, simulation results produce visualizations of the density profile for dynamic droplets with an initial x-velocity of 0.025 everywhere at 32k time steps and 33.6k time steps. Again, as expected for a Galilean-invariant simulation, the simulation results show no deformation of the droplet shape.
[0101] Following the LBM for solving pseudo-incompressible fluid flows, the approach described herein provides a suitable scheme for defining the zeroth and first moments of the distribution function to improve Galilean invariance and absolute pressure dependence. The zeroth moment of the distribution function is defined to be proportional to pressure in leading order without any local density dependence. The first moment of the distribution function is defined to be proportional to velocity in leading order without any local density dependence.
[0102] Simulation of multiphase flows with high density ratios using the Lattice Boltzmann Method remains very challenging in practice. The disclosed system and method includes both Galilean invariance and absolute pressure value independence to more accurately represent the flow dynamics of incompressible fluids in digital simulations using LBM solvers.
[0103] Embodiments of the subject matter and functional operations described herein can be implemented in digital electronic circuitry, tangibly embodied computer software or firmware, computer hardware (including the structures disclosed herein and structural equivalents thereof), or a combination of one or more of these. 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 for controlling the operation of, a data processing apparatus) generated and executed to implement the techniques described herein, including, for example, the features of FIGS. 2, 5, and 13. A computer storage medium can be a machine-readable storage device, a machine-readable storage substrate, a random or serial access memory device, or a combination of one or more of these.
[0104] 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 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 a computer program (e.g., code comprising processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of these).
[0105] A computer program, which may also be called or described as a program, software, software application, module, software module, script, or code, may be written in any form of programming language, including compiled or interpreted languages, or declarative or procedural languages, and may be deployed in any form, including as a 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 in one or more scripts stored in multiple coordinated files (e.g., files containing one or more modules, subprograms, or portions of code)). A computer program may be deployed so that the program is executed on one computer or on multiple computers located at one site or distributed across multiple sites and interconnected by a data communications network.
[0106] Computers suitable for running computer programs can be based on general-purpose or special-purpose microprocessors, or both, or any other type of central processing unit. Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory on media and memory devices, including, by way of example, semiconductor memory devices (e.g., EPROM, EEPROM, and flash memory devices), magnetic disks (e.g., internal hard disks or removable disks), magneto-optical disks, and CD-ROM and DVD-ROM disks. The processor and memory can be supplemented by, or incorporated in, special-purpose logic circuitry.
[0107] Embodiments of the subject matter described herein may be implemented in a computing system that includes back-end components (e.g., such 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 any combination of one or more such back-end, middleware, or front-end components. The components of the system may be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network (LAN) and a wide area network (WAN) (e.g., the Internet).
[0108] A computing system may include clients and servers. Clients and servers are generally remote from each other and typically interact through a communications 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 data to and receive user input from users interacting with the user devices). Data generated at the user devices (e.g., results of user interactions) may be received from the user devices at the server.
[0109] 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]
[0110] 10 Systems 12 Server Systems 14 Client Systems 15 Network 16 Parallel Computing Systems, Massively Parallel Computing Systems 18 Memory 20 Interface 22 Bus System 24 Processing Device 30 User-supplied mesh definition 31 CAD-generated drawings 32 mesh preparation engines 34 Simulation Engine 34a Collision Interaction Module, Collision Interaction 34b Surface Dynamics Conversion, Dynamics Conversion 34c Boundary Processing Module, Boundary Processing 34d advection operation 38 Data Repositories 40 Processes 200 First Model (2D-1) 205 Non-moving particles 210 Particle moving at normalized speed (r) 211 A particle moving at normalized speed (r) 212 Particle moving at normalized speed (r) 213 Particle moving at normalized speed (r) 220 Particle moving at twice the normalized speed (2r) 221 Particle moving at twice the normalized speed (2r) 222 A particle moving at twice the normalized speed (2r) 223 Particle moving at twice the normalized speed (2r) 230 Particles moving at 3 times normalized speed (3r) 231 Particle moving at 3 times normalized speed (3r) 232 Particle moving at 3 times normalized speed (3r) 233 Particle moving at 3 times normalized speed (3r) 240 Particle moving at normalized speed (r) 241 Particle moving at normalized speed (r) 242 Particle moving at normalized speed (r) 243 Particle moving at normalized speed (r) 250 Particles moving at twice the normalized speed (2r) 251 Particles moving at twice the normalized speed (2r) 252 Particles moving at twice the normalized speed (2r) 253 Particles moving at twice the normalized speed (2r) 260 Second Model (3D-1) 270 Procedures 320 areas 322 objects 324 areas 326 areas 340 areas 342 objects 344 areas 346 Remote Area 360 part 362 voxels 364 Facets 366 Rest 368 voxels 380 part 382 part 390 Procedures 1400 Simulation Results 1402 Simulation Results 1500 Simulation Results
Claims
1. 1. A computer system for digitally simulating fluid flow in a three-dimensional computer-aided design (CAD) model of a simulation space, comprising: one or more processors; A memory, a mesh preparation engine for generating and storing a digital representation of a simulation space based on a digital three-dimensional CAD model, the digital representation including a mesh comprising a plurality of voxels; a simulation engine for reading the digital representation of the mesh in the simulation space from the mesh preparation engine; Including, the simulation engine for storing instructions for digitally simulating a fluid flow, the instructions, when executed by the one or more processors, reading the digital representation of the mesh in the simulation space from the mesh preparation engine; digitally simulating the movement of one or more digital particles representing the fluid from one or more first voxels to one or more second voxels in the digital representation of the mesh, the one or more digital particles being associated with an energy state and a lattice velocity; performing one or more interaction operations on the one or more digital particles in the one or more second voxels to determine a distribution of the one or more digital particles; causing the one or more processors to perform operations including a first quantity represented by the distribution of the one or more digital particles in the one or more second voxels based on a temperature and a pressure and a reference fluid density at the one or more second voxels; the second quantity represented by the distribution of the one or more digital particles is based on the reference fluid density, the velocity of the one or more digital particles, and a mean fluid velocity; Memory and A computer system comprising:
2. The system of claim 1 , wherein the first quantity is represented by a zeroth moment of the distribution of the one or more digital particles, the zeroth moment being proportional to the pressure without local density dependence.
3. 2. The system of claim 1, wherein the second quantity is represented by a first moment of the distribution of the one or more digital particles, the first moment being proportional to the average fluid velocity independent of local density.
4. 2. The system of claim 1, wherein the first quantity and the second quantity improve the accuracy of the digitally simulating the fluid flow by reducing truncation error by improving Galilean invariance of the digital simulation relative to simulations that do not include a reference fluid density in the first quantity and the second quantity.
5. The system of claim 1 , wherein the fluid flow is a multiphase fluid flow with a high density ratio between the phases of the fluid flow.
6. 2. The system of claim 1, wherein the instructions further comprise storing in the memory results of the digital simulation of the fluid flow, the digital simulation being based on digitally simulating movement of the one or more digital particles from one or more first voxels to one or more second voxels in the digital representation of the mesh and performing an interaction operation on the one or more digital particles in the one or more second voxels to determine the distribution of the one or more digital particles.
7. 2. The system of claim 1, wherein digitally simulating the fluid flow using the first quantity improves independence of the fluid flow from absolute pressure values relative to digital simulations using a first quantity that is not based on pressure and a reference fluid density.
8. 1. A method for digitally simulating fluid flow in a three-dimensional computer-aided design (CAD) model of a simulation space, comprising: reading, by a data processing system, a digital representation of a simulation space based on a digital three-dimensional CAD model, said digital representation including a mesh comprising a plurality of voxels; digitally simulating, by the data processing system, the movement of one or more digital particles representing the fluid from one or more first voxels to one or more second voxels in the digital representation of the mesh, the one or more digital particles being associated with an energy state and a lattice velocity; performing, by the data processing system, one or more interaction operations on the one or more digital particles in the one or more second voxels to determine a distribution of the one or more digital particles; Including, a first quantity represented by the distribution of the one or more digital particles in the one or more second voxels based on a temperature and a pressure and a reference fluid density at the one or more second voxels; The method, wherein the second quantity represented by the distribution of the one or more digital particles is based on the reference fluid density, the velocity of the one or more digital particles, and an average fluid velocity.
9. 9. The method of claim 8, wherein the first quantity is represented by a zeroth moment of the distribution of the one or more digital particles, the zeroth moment being proportional to the pressure without local density dependence.
10. 9. The method of claim 8, wherein the second quantity is represented by a first moment of the distribution of the one or more digital particles, the first moment being proportional to the average fluid velocity independent of local density.
11. 9. The method of claim 8, wherein the first quantity and the second quantity improve the accuracy of the step of digitally simulating the fluid flow by reducing truncation error by improving the Galilean invariance of the digital simulation relative to simulations that do not include a reference fluid density in the first quantity and the second quantity.
12. The method of claim 8 , wherein the fluid flow is a multiphase fluid flow with a high density ratio between the phases of the fluid flow.
13. storing, by the data processing system in a hardware storage device, results of the digital simulation of the fluid flow, the digital simulation being based on digitally simulating movement of the one or more digital particles from one or more first voxels to one or more second voxels in the digital representation of the mesh, and performing an interaction operation on the one or more digital particles in the one or more second voxels to determine the distribution of the one or more digital particles. The method of claim 8 further comprising:
14. 9. The method of claim 8, wherein the step of digitally simulating the fluid flow using the first quantity improves independence of the fluid flow from absolute pressure values for digital simulations using a first quantity that is not based on pressure and a reference fluid density.
15. One or more non-transitory machine-readable storage devices storing instructions for digitally simulating fluid flow in a three-dimensional computer-aided design (CAD) model of a simulation space, the instructions comprising: reading a digital representation of a simulation space based on a digital three-dimensional CAD model, the digital representation including a mesh comprising a plurality of voxels; digitally simulating the movement of one or more digital particles representing the fluid from one or more first voxels to one or more second voxels in the digital representation of the mesh, the one or more digital particles being associated with an energy state and a lattice velocity; performing one or more interaction operations on the one or more digital particles in the one or more second voxels to determine a distribution of the one or more digital particles; executable by one or more processors to cause the performance of operations including a first quantity represented by the distribution of the one or more digital particles in the one or more second voxels based on a temperature and a pressure and a reference fluid density at the one or more second voxels; the second quantity represented by the distribution of the one or more digital particles is based on the reference fluid density, the velocity of the one or more digital particles, and a mean fluid velocity; One or more non-transitory machine-readable storage devices.
16. 16. The one or more non-transitory machine-readable storage devices of claim 15, wherein the first quantity is represented by a zeroth moment of the distribution of the one or more digital particles, the zeroth moment being proportional to the pressure without local density dependence.
17. 16. The one or more non-transitory machine-readable storage devices of claim 15, wherein the second quantity is represented by a first moment of the distribution of the one or more digital particles, the first moment being proportional to the average fluid velocity independent of local density dependence.
18. 16. The one or more non-transitory machine-readable storage devices of claim 15, wherein the fluid flow is a multiphase fluid flow with a high density ratio between phases of the fluid flow.
19. The instruction: storing results of the digital simulation of the fluid flow in a hardware storage device, the digital simulation being based on digitally simulating movement of the one or more digital particles from one or more first voxels to one or more second voxels in the digital representation of the mesh and performing an interaction operation on the one or more digital particles in the one or more second voxels to determine the distribution of the one or more digital particles.
16. The one or more non-transitory machine-readable storage devices of claim 15, further comprising:
20. digitally simulating the fluid flow using the first quantity improves independence of the fluid flow from absolute pressure values relative to digital simulations using first quantities that are not based on pressure and reference fluid density; improving the accuracy of the digitally simulating the fluid flow by reducing truncation error by improving the Galilean invariance of the digital simulation for simulations that do not include a reference fluid density in the first and second quantities; 16. One or more non-transitory machine-readable storage devices according to claim 15.