Reducing unnatural compressibility in digital internal fluid flow simulation
By decoupling density and pressure changes using conformal volume forces, the method addresses artificial compressibility issues in fluid flow simulations, enhancing accuracy and reducing computational complexity.
Patent Information
- Application Number
- JP2025104631
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-06-21
- Filing Date
- 2025-06-20
- Publication Date
- 2026-01-08
AI Technical Summary
Existing fluid flow simulations using compressible flow solvers introduce artificial compressibility effects when high simulation Mach numbers are used, leading to reduced accuracy and increased computational complexity, especially in simulating incompressible fluid flows.
A method that decouples density and pressure changes by applying conformal volume forces to voxels in a simulation grid, using a preliminary simulation to determine pressure gradients and a main simulation to drive fluid flow, reducing artificial compressibility effects.
This approach improves the accuracy of incompressible fluid flow simulations by reducing computational complexity and resources, allowing for faster and more accurate predictions while maintaining high simulation fidelity.
Smart Images

Figure 2026002830000001_ABST
Abstract
Description
[Technical Field]
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims the benefit of U.S. Patent Application No. 18 / 749,798, filed June 21, 2024, which is incorporated herein by reference in its entirety.
[0002] The present description relates to simulating physical processes, such as fluid flow. [Background technology]
[0003] Fluid flow can be simulated by generating discretized solutions to the Navier-Stokes differential equations by performing high-precision floating-point arithmetic operations 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 differential 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
[0004] Compressible fluid flow solvers (e.g., Lattice Boltzmann Model (LBM) solvers) can be used to digitally simulate and study fluid flow in the automotive, aerospace, and energy industries. LBM solvers can have high robustness, accuracy, scalability, and versatility, allowing them to be used in many heterogeneous scenarios to simulate fluid flow in and around physical objects with arbitrarily complex geometries. For example, LBM can be applied to internal fluid flow with tortuous structures, such as porous media (e.g., carbonate rock cores) or gas diffusion layers (GDLs) in fuel cells.
[0005] When generating a digital representation of a physical object or system for a fluid flow simulation, configuration parameters (e.g., dimensionless numbers) are chosen so that the digital representation matches the physical object or system. Ideally, all of the configuration parameters would correspond exactly to the physical parameters, but in practice, assumptions are made and / or parameters are adjusted to reduce computational cost and time. For example, when simulating internal fluid flow through a pipe, the Mach number of the flow (the ratio of the flow velocity to the fluid's speed of sound) can be very small, potentially requiring millions of time steps to perform the simulation, which is prohibitively large. Alternatively, the Mach number can be artificially increased to allow the simulation to reduce the number of time steps and reduce the computational resources required for the simulation. Unintended consequences can arise from artificially increasing the Mach number, such as introducing compressibility effects (e.g., artificial compressibility) into an incompressible fluid flow. The artificial compressibility effects reduce the accuracy and quality of the simulation results.
[0006] This disclosure describes an approach for simulating internal fluid flow with a compressible flow solver. To prevent unnatural compressibility effects, a data processing system can determine a conformal body force to drive the internal fluid flow to separate pressure and density terms. The data processing system can determine the conformal body force by performing a first simulation (e.g., a preliminary simulation) using an unnaturally elevated Mach number. The conformal body force can be determined based on a pressure gradient from the preliminary simulation. The data processing system can perform a second simulation (e.g., a main simulation) of the fluid flow, in which the conformal body force is applied to drive the fluid flow.
[0007] In one example implementation, a computer system for digitally simulating a 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 a fluid flow, which, when executed by the one or more processors, 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, digitally simulating a first fluid flow by applying a motive force to a plurality of voxels in the digital representation of the mesh in the simulation space to generate a digital pressure field, determining a digital volumetric force to apply to the plurality of voxels based on a pressure gradient of the digital pressure field, and digitally simulating a second fluid flow by applying the digital volumetric force to the plurality of voxels.
[0008] In another example implementation, a method implemented by a data processing system for digitally simulating a fluid flow in a three-dimensional CAD model of a simulation space includes receiving by the data processing system a digital representation of the simulation space based on the digital three-dimensional CAD model, the digital representation including a plurality of voxels; digitally simulating by the data processing system a first fluid flow by applying motive forces to the plurality of voxels in the digital representation of the simulation space to generate a pressure field; determining by the data processing system volumetric forces to be applied to the plurality of voxels based on a pressure gradient of the pressure field; and digitally simulating by the data processing system a second fluid flow by applying the volumetric forces to the plurality of voxels.
[0009] In another example implementation, one or more non-transitory machine-readable storage devices store instructions for digitally simulating a fluid flow in a three-dimensional CAD model of a simulation space, the instructions being executable by one or more processors to cause performance of operations including receiving a digital representation of the simulation space based on the digital three-dimensional CAD model, the digital representation including a plurality of voxels; digitally simulating a first fluid flow by applying a motive force to a plurality of voxels in the digital representation of the simulation space to generate a pressure field; determining a volumetric force to be applied to the plurality of voxels based on a pressure gradient of the pressure field; and digitally simulating a second fluid flow by applying the volumetric force to the plurality of voxels.
[0010] In one aspect, compatible with one, some, or all of the example implementations, the first fluid flow and the second fluid flow comprise incompressible steady-state fluid flows.
[0011] In another aspect compatible with one, some, or all of the previous aspects, the digital volume body force comprises a digital conformal volume body force aligned with the flow direction.
[0012] In another embodiment compatible with one, some, or all of the previous embodiments, the density change of the second fluid flow is less than the density change of the first fluid flow.
[0013] Another aspect compatible with one, some, or all of the previous aspects includes determining an realized pressure force for the second fluid flow based on a motive force from the first fluid flow and a measured pressure force from the second fluid flow.
[0014] In another aspect compatible with one, some, or all of the previous aspects, the number of voxels used in simulating the first fluid flow is different from the number of voxels used in simulating the second fluid flow.
[0015] Another aspect, compatible with one, some, or all of the previous aspects, includes storing the pressure field and volumetric forces in a hardware storage device for use in subsequent simulations of fluid flow.
[0016] In another aspect compatible with one, some, or all of the previous aspects, the pressure field includes a force balance based on momentum, fluid inertia, and friction forces at solid boundaries in the simulation space.
[0017] Another aspect compatible with one, some, or all of the previous aspects includes storing in memory a digital pressure field generated by digitally simulating a first fluid flow by applying a driving force to a plurality of voxels in a digital representation of a mesh in a simulation space; storing in memory digital volumetric forces to be applied to the plurality of voxels, the digital volumetric forces being determined based on a pressure gradient of the digital pressure field; and storing in memory results of a digital simulation of a second fluid flow generated by digitally simulating a second fluid flow by applying a digital volumetric force to the plurality of voxels.
[0018] One or more of the above aspects may provide one or more of the advantages disclosed herein. The approach reduces the computational complexity and computational resources required to simulate incompressible fluid flow. The approach compensates for the artificially generated compressibility of fluids in internal flow simulations when high simulation Mach numbers are used. A high simulation Mach number can reduce the time steps used to perform the simulation, thereby reducing the number of computations required to simulate the fluid flow. Because compressible fluid solvers do not iterate steps or solve numerous sets of linear equations to determine the pressure field of the fluid flow, compressible fluid solvers use fewer computations than incompressible fluid solvers. The approach reduces both the computational steps and therefore the required computational resources, allowing the simulation to be parallelized on a parallel computing system.
[0019] This reduction in computational complexity conserves computing resources because less processing power is required to perform computations compared to the amount of processing power required for more complex calculations. This reduction in computational complexity also increases the speed at which a processing device performs computations. Generally, processing power includes the ability of a computer (or processing device) to process data. This approach improves the accuracy of incompressible fluid flow simulations by decoupling density and pressure through the application of conformal volume forces to voxels of a simulation grid to reduce artificially generated compressibility. The conformal volume forces can be adapted for different scales of boundary settings, such as different pressure driving forces, by varying the global factor of the conformal volume forces. The reusability of conformal volume forces is advantageous because it improves computational efficiency for future digital simulations.
[0020] Other features and advantages of this approach will become apparent from the following detailed description, and from the claims. [Brief explanation of the drawings]
[0021] [Figure 1] FIG. 1 is a diagram of a system for digital simulation of fluid flow. [Figure 2A] 1 is a flowchart showing operations for assembling a lattice Boltzmann model simulation. [Figure 2B] 1 is a flow chart for a method for reducing the effects of unnatural compressibility in an internal fluid flow 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] Each illustrates a variable resolution technique (prior art). [Figure 9] Each illustrates 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 shows simulation results for pressure-driven water flow through the bipolar channels of a fuel cell. [Figure 14B] FIG. 10 shows simulation results for pressure-driven water flow through the bipolar channels of a fuel cell. [Figure 14C] FIG. 10 shows simulation results for pressure-driven water flow through the bipolar channels of a fuel cell. [Figure 14D] FIG. 10 shows simulation results for pressure-driven water flow through the bipolar channels of a fuel cell. [Figure 14E] FIG. 10 shows simulation results for pressure-driven water flow through the bipolar channels of a fuel cell. [Figure 14F] FIG. 10 shows simulation results for pressure-driven water flow through the bipolar channels of a fuel cell. DETAILED DESCRIPTION OF THE INVENTION
[0022] 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.
[0023] One method for simulating fluid flow is the so-called Lattice Boltzmann Method. LBM-based simulations have many advantages, including robustness, compatibility with multiphase and multicomponent flows, localized computation, high scalability, and grid-independent solutions. In LBM-based physical process simulation systems, fluid flow is represented by distribution function values that are 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 processes.
[0024] 1 illustrates a schematic of an example data processing system 10 for performing lattice Boltzmann (LB)-based simulations. 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 a client system 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.
[0025] 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.
[0026] 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.
[0027] Referring to FIG. 2A , a process 40 for simulating fluid flow through a representation of a physical object is shown. Examples of physical objects include porous media (such as carbonate rock), pipe systems, and GDLs for fuel cells. The physical objects can be of any shape, particularly having flat and / or curved surfaces. The process 40 receives 42 a mesh (or grid) of the simulated physical 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 physical 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 simulating 46 the evolution of particle distributions, including surface dynamics conversion, boundary modeling, and particle advection to the next cell in the LBM mesh.
[0028] Compressible fluid flow solvers, such as the LBM solver, can be used to digitally simulate fluid flow with high robustness, accuracy, scalability, and versatility, which allows the LBM solver to be used in many heterogeneous scenarios to simulate fluid flow in and around physical objects with arbitrarily complex geometries.
[0029] When generating digital representations of physical objects and their associated fluid flow configurations, dimensionless numbers such as the Reynolds number (the ratio of inertial forces to viscous forces), the Bond number (the ratio of gravitational forces to surface tension forces), and the Mach number (the ratio of flow velocity in a fluid to the speed of sound) can be used to characterize the fluid forces governing the fluid dynamics. Dimensionless numbers are particularly useful for scaling fluid dynamics to match between various length scales, fluid properties, and flow velocities. Ideally, dimensionless numbers can be matched without making assumptions about the governing dynamics. In most cases, this can still be very difficult to achieve due to limited computational resources. For example, to simulate a 0.8 m / s water flow through a circular pipe 1 m long and 0.01 m radius, the Mach number is 5.33e-4. At this Mach number, this would require 1–2 million time steps to move the flow through the pipe, with a radius and sound speed of 10 grids (e.g., each voxel in the digital representation has an edge length of 0.001 m) and 1.0 grids per time step (e.g., each time step is 6.67e–7 s). Such small time steps can result in unacceptably large computational costs. More complex geometries of physical objects further exacerbate this problem. A common workaround to solve this problem is to increase the simulation Mach number within reasonable limits. However, increased simulation Mach numbers can result in increased numerical compressibility effects.
[0030] Increased simulation Mach numbers result in higher fluid velocities, which in turn result in higher friction forces and higher pressure changes throughout the pipe. In compressible flow solvers such as LBM, fluid pressure is related to density. Higher pressure changes result in density changes that do not reflect real-world fluid flows. Excessive compressibility effects due to increased simulation Mach numbers become problematic because compressibility effects reduce the accuracy of fluid flow field predictions.
[0031] To overcome the artificial compressibility effects introduced by increasing the simulation Mach number, conformal volume forces can be used to drive the fluid flow and decouple density and pressure changes. Conformal volume forces can be generated to replicate the fluid flow dynamics of pressure-driven flows while significantly reducing the artificial compressibility effects. Appropriate conformal volume forces (e.g., forces acting on fluid elements along the flow direction of the fluid flow) can be generated using two simulation approaches: a preliminary simulation and a main simulation. In the preliminary simulation, a single-phase pressure-driven flow can be simulated to determine the pressure profile along the flow path. For example, the pressure profile can be determined by a force balance between pressure forces, inertial forces, and friction from solid boundaries (e.g., pipe walls, hole walls). A volume conformal volume force field is generated based on the pressure gradient of the pressure profile from the preliminary simulation. In the main simulation, the previously generated conformal volume force field can be applied to the fluid flow to act as the primary driving force for the fluid instead of the pressure driving force. The resulting pressure force is expressed in terms of a volume conformal volume force and a density-dependent pressure force. This decoupling can reduce the magnitude of the density-dependent pressure force term, which results in reduced density variation along the flow path, thereby reducing unnatural compressibility effects.
[0032] Using this conformal volume body force approach to simulate incompressible fluid flow using a compressible fluid flow solver improves the accuracy of fluid flow predictions compared to simulations at artificially increased Mach numbers alone. Concomitantly, this approach reduces computational costs by reducing the number of computations required to accurately simulate fluid flow compared to simulations of incompressible fluid flow at actual fluid flow Mach numbers. This approach solves the compressible Navier-Stokes equations or asymptotically equivalent equations.
[0033] 2B depicts a flowchart for a process 100 for simulating internal fluid flow. A data processing system receives 102 a digital representation of a simulation space, the digital representation including a plurality of voxels. For example, the data processing system receives the digital representation from mesh preparation engine 32 or from data repository 38. In some implementations, the data processing system generates the digital representation of the simulation space based on CAD models or drawings representing physical objects.
[0034] The data processing system simulates the first fluid flow by applying driving forces to a plurality of voxels in the digital representation of the simulation space to generate a pressure field (104). Driving forces include forces that cause fluid to flow from one location to another, such as pressure, gravity, and inertia. The data processing system can apply boundary conditions that reflect real-world boundary conditions and run the simulation until the simulation results converge. For example, the data processing system can simulate a pressure-driven flow by applying pressure driving forces to voxels in the simulation space.
[0035] The data processing system determines volumetric forces to be applied to the plurality of voxels based on the pressure gradient of the pressure field (106). For example, the data processing system determines conformal volumetric forces acting in the flow direction of the fluid flow by determining the pressure gradient of the pressure field from a simulation of the first fluid flow. The data processing system can store the pressure field and the volumetric forces in a data repository or other hardware storage device for later access.
[0036] The data processing system simulates the second fluid flow by applying a volumetric volume force to a plurality of voxels (108). The simulation of the first fluid flow and the simulation of the second fluid flow occur in the same geometric shape. In some implementations, the simulation of the first fluid flow and the simulation of the second fluid flow can have different resolutions (e.g., different numbers of voxels). For example, the first fluid flow can be simulated at a lower resolution than the second fluid flow. The volumetric volume force can be upscaled or downscaled to the resolution of the second fluid flow (e.g., through bicubic or linear interpolation). In some implementations, the data processing system scales the magnitude of the volumetric volume force to achieve the desired fluid flow.
[0037] The data processing system can determine an realized pressure force for the second fluid flow based on the motive force from the first fluid flow and the measured pressure force from the second fluid flow. The measured pressure force can be a density-dependent pressure force. Both the first and second fluid flows can be incompressible steady-state fluid flows.
[0038] In some implementations, the data processing system stores the volumetric force and pressure fields in a hardware storage device for use in further (e.g., subsequent) simulations of fluid flow utilizing the same geometry.
[0039] 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, each of these figures is labeled 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.
[0040] Yet, the diagrams as they appear in the above patents do not take into account any modifications that would be made to the flow simulation to reduce the effects of unnatural compressibility, as this process described herein is not described in the above-referenced patents.
[0041] 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, which describes the change in distribution function due to a "collision process" versus 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 describe 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.
[0042] 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.
[0043] From this simulation, conventional fluid variables such as mass and fluid velocity are obtained based on a simple summation of products of distributions. 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.
[0044] 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.
[0045] The standard technique for deriving the macroscopic equations of motion for a fluid system from the Boltzmann equation is the Chapman-Enskog method, in which a succession of approximations to the full Boltzmann equation is taken. In a fluid system, small density disturbances travel at the speed of sound. In a gas system, the speed of sound is generally determined by temperature. The importance of compressibility effects in a flow is measured by the ratio of a characteristic velocity to the speed of sound, known as the Mach number.
[0046] 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.
[0047] 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.
[0048] 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.
[0049] 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).
[0050] 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.
[0051] 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.
[0052] 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.
[0053] 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.
[0054] 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.
[0055] 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.
[0056] 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.
[0057] 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.
[0058] 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.
[0059] A microblock is illustrated in Figure 6. Voxels are represented at the corners of the microblock.
[0060] 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.
[0061] 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.
[0062] 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.
[0063] 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.
[0064] 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.
[0065] 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
[0066] 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 interior corners. iα It is corrected when it occupies a part of
[0067] 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.
[0068] Voxels and Facets F α The flux of particles of a given state moving between voxels is equal to the density of particles of this state in the voxel multiplied by the volume of the region of overlap with the voxel.
[0069] 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
[0070] D. Conduct a simulation Referring to Figure 5, 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).
[0071] 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.
[0072] 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.
[0073] 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.
[0074] 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.
[0075] 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 V. The facet state vector, also called the facet distribution function, has a number of entries corresponding to the number entries in the voxel state vector, 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
[0076] 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.
[0077] 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.
[0078] 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.
[0079] 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 (394) between the incoming distribution and the determined new Boltzmann distribution, and the combined momentum difference (396) between all incoming states and the corresponding Boltzmann distributions of the facets are computed.
[0080] The momentum difference is projected along the tangent direction of the facet. (398) From the momentum difference and the Boltzmann distribution, the flux leaving the facet is computed to satisfy the perfect slip boundary condition by satisfying zero tangential flux. (399)
[0081] 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.
[0082] 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.
[0083] 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 the particle is moving along the corresponding axis.
[0084] 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.
[0085] 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.
[0086] 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 many 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 that is not overlapped by the parallelepipeds of the intersecting facets).
[0087] 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.
[0088] After scattering particles from facets into voxels, combining these particles with particles advected from surrounding voxels, and integerizing the result, it's possible that a particular orientation at a particular voxel could underflow (go negative) or overflow (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 itself does not 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.
[0089] 7. Conducting Fluid Dynamics Fluid dynamics is performed (288) Figure 5. This is sometimes called microdynamics or intravoxel operation. Similarly, the advection procedure is sometimes called intervoxel operation. The microdynamics operation described below can similarly be used to collide particles at facets to produce a Boltzmann distribution.
[0090] 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.
[0091] 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, a region of interest can include fine voxels for solving fluid dynamics at a smaller scale and at a higher resolution. In outer regions 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 simulation of physical processes, particles can be advected between regions with different resolutions.
[0092] example Figures 14A-14F show an example of pressure-driven water flow through a bipolar channel of a fuel cell. Figure 14A shows a perspective view of the channel geometry, and Figure 14B shows a top view of the geometry. The channel height is 0.01 m. Figures 14C and 14D show steady-state density and velocity contours, respectively, with an inlet velocity of 0.8 m / s flowing from left to right. The simulated Mach number is artificially set to 0.01, increased from the realistic value of 5.33e-4. As shown in Figure 14C, the density nearly doubles throughout the channel. This is a clear example of the artificial compressibility effect resulting from artificially increasing the simulated Mach number. Due to the constraint of mass flux conservation, the density change results in the velocity change shown in Figure 14D. While a nearly constant velocity field in the flow direction along the long channel is expected, excessive compressibility effects due to the increased simulated Mach number result in increased velocity in the flow direction along the length of the channel. These unnatural compressibility effects lead to inaccurate flow field predictions.
[0093] 14E and 14F show improved simulation results for flow through a serpentine channel. The improved results are achieved by applying process 100 (FIG. 2B). The density change (FIG. 14E) and velocity change (FIG. 14F) are much smaller than those in FIGS. 14C and 14D. The density (FIG. 14E) is nearly constant, as expected for incompressible fluid flow. Similarly, the velocity (FIG. 14F) is nearly constant along the flow direction, with the expected lateral velocity change resulting from no-slip boundary conditions applied to the channel walls.
[0094] 2B, 5, and 13, the results of processes 100, 270, and 390 can be used in manufacturing physical structures, for example, using one or more computer-controlled manufacturing systems. For example, the simulation can be used to optimize the shape of a physical object for improved fluid flow around or through the object. The optimized shape can be used as path planning data for a computer-aided manufacturing process to produce the optimized shape. Examples of shapes that can be optimized include flow paths for internal pipe or channel flow (e.g., for a liquid cooling system), nozzles and diffusers for wind tunnels, etc.
[0095] Alternatively or additionally, the results of the fluid flow simulation of process 270 can be used to predict the pressure head loss and / or velocity profile of a fluid flowing through a pipe or channel. Also, the results of the fluid flow simulation of process 270 can be used to predict fluid flow through complex geometries, such as a cooling system to predict the thermal performance of an automobile cooling system, a channel in a fuel cell GDL to predict fuel cell performance, or a porous medium such as carbonate rock to predict hydrocarbon production from a subsurface reservoir. The techniques described herein improve the accuracy of such fluid flow simulations in predicting the pressure head loss and / or velocity profile of a fluid flowing through a pipe or channel and / or in predicting the thermal performance of an automobile cooling system.
[0096] 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 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 a combination of one or more of these.
[0097] 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).
[0098] 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.
[0099] 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.
[0100] 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).
[0101] 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.
[0102] 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]
[0103] 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 100 processes 200 First Model (2D-1) 205 Non-moving particles 210 Particle moving at normalized speed (r) 211 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, Processes 320 areas 322 objects 324 areas 326 areas 340 areas 342 objects 344 areas 346 Remote Area 360 part 362 voxels 364 Facets 366 Remaining 368 voxels 380 part 382 part 390 Procedures and Processes
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 stores instructions for digitally simulating 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 a first fluid flow by applying a motive force to the plurality of voxels in the digital representation of the mesh in the simulation space to generate a digital pressure field; determining a digital volume force to be applied to the plurality of voxels based on a pressure gradient of the digital pressure field; and Digitally simulating a second fluid flow by applying the digital volume body forces to the plurality of voxels. a memory that causes the one or more processors to perform operations including A computer system comprising:
2. 2. The computer system of claim 1, wherein the first fluid flow and the second fluid flow comprise incompressible steady-state fluid flows.
3. The computer system of claim 1 , wherein the digital volume body forces comprise flow-direction aligned digital conformal volume body forces.
4. 2. The computer system of claim 1, wherein the change in density of the second fluid flow is less than the change in density of the first fluid flow.
5. 2. The computer system of claim 1, wherein the instructions further comprise determining an realized pressure force for the second fluid flow based on the motive force from the first fluid flow and a measured pressure force from the second fluid flow.
6. The computer system of claim 1 , wherein a number of voxels used in simulating the first fluid flow is different from a number of voxels used in simulating the second fluid flow.
7. The computer system of claim 1 , wherein the instructions further comprise storing the pressure field and the volumetric body forces in a hardware storage device for use in subsequent simulations of fluid flow.
8. The computer system of claim 1 , wherein the pressure field comprises a force balance based on the momentum, fluid inertia, and friction forces at solid boundaries in the simulation space.
9. storing in the memory the digital pressure field generated by digitally simulating the first fluid flow by applying the motive force to the plurality of voxels in the digital representation of the mesh in the simulation space; storing the digital volumetric forces to be applied to the plurality of voxels in the memory, the digital volumetric forces being determined based on the pressure gradients of the digital pressure field; storing in the memory results of the digital simulation of the second fluid flow generated by digitally simulating the second fluid flow by applying the digital volume body forces to the plurality of voxels; The computer system of claim 1 further comprising:
10. 1. A method implemented by a data processing system for digitally simulating fluid flow in a three-dimensional computer-aided design (CAD) model of a simulation space, comprising: receiving, by a data processing system, a digital representation of a simulation space based on a digital three-dimensional CAD model, the digital representation including a plurality of voxels; digitally simulating, with the data processing system, a first fluid flow by applying motive forces to the plurality of voxels in the digital representation of the simulation space to generate a pressure field; determining, by the data processing system, volumetric forces to be applied to the plurality of voxels based on pressure gradients of the pressure field; digitally simulating, by the data processing system, a second fluid flow by applying the volumetric force to the plurality of voxels; A method comprising:
11. The method of claim 10 , wherein the first fluid flow and the second fluid flow comprise incompressible steady-state fluid flows.
12. The method of claim 10 , wherein the volumetric body force comprises a flow-direction-aligned conformal volumetric body force.
13. The method of claim 10 , wherein the density change of the second fluid flow is less than the density change of the first fluid flow.
14. 11. The method of claim 10, further comprising determining an realized pressure force for the second fluid flow based on the motive force from the first fluid flow and a measured pressure force from the second fluid flow.
15. The method of claim 10 , wherein a number of voxels used in simulating the first fluid flow is different from a number of voxels used in simulating the second fluid flow.
16. The method of claim 10 , further comprising storing the pressure field and the volumetric body forces in a hardware storage device for use in subsequent simulations of fluid flow.
17. 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: receiving a digital representation of a simulation space based on a digital three-dimensional CAD model, the digital representation including a plurality of voxels; digitally simulating a first fluid flow by applying a motive force to the plurality of voxels in the digital representation of the simulation space to generate a pressure field; determining a volumetric force to be applied to the plurality of voxels based on a pressure gradient of the pressure field; digitally simulating a second fluid flow by applying the volumetric force to the plurality of voxels; and one or more non-transitory machine-readable storage devices executable by one or more processors to cause performance of operations including:
18. the first fluid flow and the second fluid flow comprise incompressible steady-state fluid flows; the change in density of the second fluid flow is less than the change in density of the first fluid flow; 20. One or more non-transitory machine-readable storage devices according to claim 17.
19. 20. The one or more non-transitory machine-readable storage devices of claim 17, wherein the volumetric body force comprises a conformal volumetric body force aligned in a flow direction.
20. 20. The one or more non-transitory machine-readable storage devices of claim 17, wherein the instructions further comprise determining an realized pressure force for the second fluid flow based on the motive force from the first fluid flow and a measured pressure force from the second fluid flow.