Mitigating high density bubbles and thin droplets in multiphase fluid flow simulations
By identifying and correcting voxels with improper phase separation in multiphase fluid flow simulations, the method addresses inaccuracies in conventional methods, improving simulation accuracy and efficiency.
Patent Information
- Application Number
- JP2025103682
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-06-20
- Filing Date
- 2025-06-19
- Publication Date
- 2026-01-08
AI Technical Summary
Conventional methods for simulating multiphase fluid flow suffer from inaccurate predictions due to non-physical phase separation, leading to excessive numerical diffusion and difficulties in handling large density ratios, particularly in the presence of high-density bubbles and dilute droplets.
A data processing system identifies voxels with improper phase separation in a digital representation of the simulation space and alters local diffusion parameters to correct for this separation, using the Allen-Cahn equation to determine order parameters and adjust mobility and interface thickness.
This approach improves the accuracy of multiphase fluid flow simulations by reducing computational complexity and resources, while maintaining mass conservation and preserving physical small droplets and bubbles, thus enhancing processing efficiency.
Smart Images

Figure 2026002817000001_ABST
Abstract
Description
[Technical Field]
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims the benefit of U.S. Patent Application No. 18 / 749,063, filed June 20, 2024, which is incorporated herein by reference in its entirety.
[0002] The present description relates to simulating physical processes, such as multiphase fluid flow. [Background technology]
[0003] Multiphase or multi-component flow is widespread in many engineering disciplines. Multiphase flow involves the simultaneous flow of materials with two or more thermodynamic phases (e.g., solid, liquid, gas). Multiphase flow can have large density differences between the two or more phases.
[0004] Multiphase 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 replaces the differential equations with what is commonly known as a lattice (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 the lattice. The accuracy of the simulated multiphase flow depends in part on the ability of the chosen simulation model to accurately represent the different phases of the flow. Summary of the Invention
[0005] The lattice Boltzmann model (LBM) can be used to simulate physical processes such as multiphase fluid flow. Separate phases in a multiphase fluid flow can be represented by an order parameter, where a specified value of the order parameter (e.g., 0) represents a first phase and a different specified value of the order parameter (e.g., 1) represents a second phase. Non-physical phase separation (e.g., dense gas bubbles or rarified droplets) where the order parameter is close to but not equal to one of the specified values representing one of the phases can cause inaccurate simulation results. For example, non-physical phase separation can result in poor predictions of drag and lift coefficients around physical objects. Traditional methods for correcting for non-physical phase separation include solving different types of phase-field equations, such as the Cahn-Hilliard equation, and then using inter-component forces based on pseudopotential models to account for the phase separation. Conventional methods suffer from excessive numerical diffusion of small droplets, as well as difficulties in dealing with high-order derivative terms and large density ratios between phases of fluid flow.
[0006] The present disclosure describes an approach for simulating multiphase fluid flow that can be used to mitigate high-density bubbles and dilute droplets. A data processing system can obtain a digital representation of a simulation space, the digital representation including a plurality of voxels. The data processing system can digitally simulate multiphase fluid flow in the digital representation of the simulation space. While simulating the multiphase fluid flow, the data processing system can identify one or more voxels in the digital representation with improper phase separation. The data processing system can alter local diffusion parameters of the identified one or more voxels to correct for the improper phase separation.
[0007] In one example implementation, a three-dimensional computer-aided design (CAD) of the simulation space is performed. a simulation engine for reading from the mesh preparation engine, the digital representation of the simulation space including a three-dimensional CAD model of the simulation space including a mesh represented as a plurality of voxels, the mesh preparation engine storing instructions for simulating multiphase fluid flow, the instructions, when executed by the one or more processors, causing the one or more processors to perform operations including reading from the mesh preparation engine the digital representation of the simulation space including the three-dimensional CAD model of the simulation space including the mesh represented as a plurality of voxels, digitally simulating the multiphase fluid flow in the digital representation of the simulation space, and while simulating the multiphase fluid flow, identifying one or more voxels in the digital representation with improper phase separation and altering a local diffusion parameter of the identified one or more voxels to correct the improper phase separation.
[0008] In another example implementation, a method implemented by a data processing system for digitally simulating multiphase fluid flow in a three-dimensional computer-aided design (CAD) model of a simulation space includes receiving, by the data processing system, a digital representation of the simulation space, the digital representation including the three-dimensional CAD model of the simulation space including a mesh represented as a plurality of voxels; digitally simulating, by the data processing system, multiphase fluid flow in the digital representation of the simulation space; identifying, by the data processing system, one or more voxels in the digital representation with improper phase separation while simulating the multiphase fluid flow; and altering, by the data processing system, a local diffusion parameter of the identified one or more voxels to correct for the improper phase separation.
[0009] In another example implementation, one or more non-transitory machine-readable storage devices having stored thereon instructions for digitally simulating multiphase fluid flow in a three-dimensional computer-aided design (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, the digital representation including the three-dimensional CAD model of the simulation space including a mesh represented as a plurality of voxels; digitally simulating multiphase fluid flow in the digital representation of the simulation space; and, while simulating the multiphase fluid flow, identifying one or more voxels in the digital representation with improper phase separation, and altering local diffusion parameters of the identified one or more voxels to correct the improper phase separation.
[0010] In one aspect compatible with one, some, or all of the example implementations, identifying one or more voxels with improper phase separation includes identifying one or more local extrema of an order parameter representing a fluid phase of a multiphase fluid flow, and determining that the values of the one or more local extrema are not equal to a specified value.
[0011] In another aspect compatible with one, some, or all of the previous aspects, the designated values correspond to values representing one or more phases of a multiphase fluid flow.
[0012] In another aspect compatible with one, some, or all of the previous aspects, identifying one or more local extrema of the order parameter includes determining that a derivative of the order parameter is close to zero.
[0013] In another aspect compatible with one, some, or all of the previous aspects, identifying one or more voxels with improper phase separation includes determining a depression in an order parameter representing a phase of a fluid of the multiphase fluid flow, and identifying one or more voxels with improper phase separation based on the determined depression.
[0014] In another aspect compatible with one, some, or all of the previous aspects, improper phase separation is identified when the determined recess is oriented toward the closest value of the order parameter corresponding to a phase of the multiphase fluid flow.
[0015] In another aspect compatible with one, some, or all of the previous aspects, digitally simulating the multiphase fluid flow includes determining an order parameter representing a phase of the multiphase fluid flow based on the Allen-Cahn equations.
[0016] In another aspect compatible with one, some, or all of the previous aspects, the local diffusion parameter is
number
number
[0017] Another aspect compatible with one, some, or all of the previous aspects includes storing in a memory results of a digital simulation of multiphase fluid flow in a digital representation of a simulation space, where the digital simulation is based on identifying one or more voxels in the digital representation with improper phase separation, and altering local diffusion parameters of the identified one or more voxels to correct for the improper phase separation.
[0018] One or more of the above aspects can provide one or more of the advantages disclosed herein. The present approach reduces the computational complexity and computational resources required to simulate multiphase fluid flow, including interfacial dynamics, compared to phase-field models (e.g., based on the Cahn-Hilliard equations) and pseudopotential models. The present approach uses simple models with fewer parameters, thereby reducing the number of calculations required to simulate multiphase fluid flow. This reduction in computational complexity conserves computing resources because less processing power is required to perform the 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 the computations. Generally, processing power includes the ability of a computer (or processing device) to process data. The present approach improves the accuracy of multiphase fluid flow simulations by removing non-physical artifacts from the simulation while preserving physical small droplets and bubbles. The present approach is robust for simulations with large density ratios and maintains mass conservation.
[0019] Other features and advantages of the invention will be apparent from the following detailed description of the preferred embodiments, and from the claims. [Brief explanation of the drawings]
[0020] [Figure 1] FIG. 1 is a diagram of a system for simulation of fluid flow including a novel surface dynamics conversion. [Figure 2A] 1 is a flowchart showing operations for assembling a lattice Boltzmann model simulation. [Figure 2B] 10 is a flowchart showing operations for a multiphase flow simulation. [Figure 3A-B] FIG. 10 is a diagram of order parameter profiles for a dilute droplet, a dense bubble, and a regular droplet. [Figure 3C] FIG. 10 is a diagram of order parameter profiles for a dilute droplet, a dense bubble, and a regular droplet. [Figure 4A] FIG. 1 is a diagram of the velocity components of two LBMs represented in Euclidean space (prior art). [Figure 4B] 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-B] FIG. 1 is a diagram of multiphase fluid flow in digital simulation space before and after correction for improper phase separation. [Figure 14C] FIG. 1 is a diagram of multiphase fluid flow in digital simulation space before and after correction for improper phase separation. [Figure 15] FIG. 1 is a diagram of a multiphase fluid flow showing non-physical dense bubbles. DETAILED DESCRIPTION OF THE INVENTION
[0021] 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.
[0022] 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.
[0023] LBMs can be used to simulate multiphase fluid flows. Separate phases in a multiphase fluid flow can be represented by an order parameter, where a specified value of the order parameter (e.g., 0) represents a first phase and a different specified value of the order parameter (e.g., 1) represents a second phase. Incorrect or unphysical phase separation includes regions of fluid flow where the order parameter is close to, but not equal to, one of the specified values representing one of the phases. For example, dense bubbles are regions of fluid flow designated as gas but with similar properties (e.g., high density) to the surrounding liquid. Similarly, dilute droplets are regions of fluid designated as liquid but with similar properties (e.g., low density) to the surrounding gas. Unphysical phase separation can cause inaccurate simulation results. For example, unphysical phase separation can result in poor predictions of drag and lift coefficients around physical objects.
[0024] Conventional methods to correct for improper, non-physical phase separation include solving different types of phase-field equations, such as the Cahn-Hilliard equation, and modeling the phase separation using intercomponent forces based on pseudopotential flow models. Conventional methods suffer from excessive numerical diffusion of small droplets, as well as difficulties in dealing with high-order derivative terms and large density ratios between fluid phases in the simulation.
[0025] The present disclosure describes an approach for simulating multiphase fluid flow that can be used to mitigate high-density bubbles and dilute droplets. A data processing system can obtain a digital representation of a simulation space, the digital representation including a plurality of voxels. The data processing system can digitally simulate multiphase fluid flow in the digital representation of the simulation space. While simulating the multiphase fluid flow, the data processing system can identify one or more voxels in the digital representation with improper phase separation. The data processing system can alter local diffusion parameters of the identified one or more voxels to correct for the improper phase separation.
[0026] 1 illustrates a schematic of an example data processing system 10 for performing lattice Boltzmann (LB)-based multiphase flow 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 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.
[0027] 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.
[0028] The simulation engine 34 includes a collision interaction module 34a, which includes a surface dynamics conversion module 34b, a boundary processing module 34c, an advection operation 34d, and an interface tracking module 34e. The system 10 accesses a data repository 38, which stores 2D and / or 3D meshes (Cartesian and / or curvilinear), coordinate systems, and libraries.
[0029] Referring to FIG. 2A, a process 40 for simulating fluid flow for a representation of a physical object is shown. In the example to be discussed herein, the physical object is an airfoil. While the use of an airfoil is merely illustrative, the physical 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 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 the evolution of particle distribution 46, including surface dynamics conversion, boundary modeling, and particle advection to the next cell in the LBM mesh. The process corrects 48 for improper phase separation in the simulation.
[0030] The interface tracking module 34e determines an order parameter that represents the phase of the fluid corresponding to a voxel in the LBM mesh. For a two-fluid system, the first phase (e.g., air) can be represented by an order parameter of 0. The second phase (e.g., water) can be represented by an order parameter of 1. The simulation engine 34 can solve two LB equations, one for the hydrodynamic quantities (e.g., pressure and momentum) and one for the order parameter.
[0031] The order parameter can be determined by solving a reaction-diffusion equation, such as the Allen-Cahn equation given below:
number
number
[0032] 2B is a flowchart for a process 100 for simulating multiphase fluid flow that mitigates dense bubbles and dilute droplets. Process 100 can be performed on a data processing system (e.g., system 10).
[0033] A data processing system receives a digital representation of a simulation space (102), the digital representation including a plurality of voxels. In some implementations, the data processing system generates the digital representation based on a CAD drawing or model. The digital representation can include voxels with a resolution to adequately represent physical objects and / or multiphase flow features (e.g., bubbles, droplets, vortices) in the simulation space.
[0034] The data processing system digitally simulates the multiphase fluid flow in the digital representation of the simulation space (104). For example, the data processing system can digitally simulate the multiphase fluid flow by performing process 270 (FIG. 5). The data processing system can determine hydrodynamic and phase separation properties, including order parameters that represent the phases of the fluid within the digital simulation.
[0035] While simulating the multiphase fluid flow, the data processing system identifies one or more voxels in the digital representation with improper phase separation (106). In some implementations, the data processing system identifies one or more local extrema of the order parameter. For example, the data processing system may identify the local extrema by determining that the derivative of the order parameter is close to 0. The data processing system may determine that the value of the identified local extrema is not equal to a specified value representing a phase of the fluid. The specified value may correspond to a value representing a phase of the fluid (e.g., 0 or 1). The improper phase separation may have a value close to 0 (e.g., between 0.01 and 0.1) or close to 1 (e.g., between 0.9 and 0.99).
[0036] In some implementations, the data processing system identifies one or more voxels in the digital representation with improper phase separation by determining a depression in the order parameter. The data processing system can identify voxels with improper phase separation based on the determined depression. The data processing system can identify improper phase separation when the depression is oriented toward the closest value of the order parameter corresponding to a phase of the multiphase fluid flow. For example, when the value of the order parameter of a voxel is close to 0 and the depression is downwardly concave, the data processing system can determine that the voxel has improper phase separation. Similarly, when the order parameter of a voxel is close to 1 and the depression is upwardly concave, the data processing system can determine that the voxel has improper phase separation.
[0037] The data processing system alters the local diffusion parameters of the identified voxels to correct for the improper phase separation (108). Altering the local diffusion parameters targets only voxels with improper phase separation to eliminate improper phase separation through diffusion as the digital simulation progresses. The data processing system can return the local diffusion parameters to normal values after the improper phase separation is resolved.
[0038] In some implementations, the data processing system determines an order parameter representing a phase of the multiphase fluid flow based on the Allen-Cahn equation. In such implementations, the local diffusion parameter is
number
[0039] Process 100 improves the accuracy of digital multiphase flow simulations by correcting for phase separation that corresponds to non-physical features in the flow. Process 100 reduces the computational complexity associated with correcting for phase separation compared to the conventional methods discussed previously, thereby reducing computational costs and improving processing efficiency.
[0040] 3A-3C show example profiles of the order parameter for a dilute droplet 150 (FIG. 3A), a dense bubble 160 (FIG. 3B), and a regular droplet 170 (FIG. 3C). Each profile shows the order parameter along with its first and second derivatives. The first and second derivatives can be used to identify local extrema and depressions in the droplet. For the dilute droplet 150, the value of the order parameter 152 is close to but not equal to zero. The derivative tends to zero at the center of the dilute droplet, as indicated by first derivative 154. The second derivative 156 is negative, indicating a downward depression. For the dense bubble 160, the value of the order parameter 162 is close to but not equal to one. The first derivative 164 also tends to zero at the center of the dense bubble. The second derivative 166 is positive, indicating an upward depression. For regular droplets 170, order parameter 172 is equal to 1. Using process 100 (FIG. 2B), the data processing system should identify voxels associated with dilute droplets 150 and dense bubbles 160 as having improper phase separation, which should change the local diffusion parameters of the associated voxels. The data processing system should not identify regular droplets 170 as having improper phase separation.
[0041] 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.
[0042] Yet, the diagrams as they appear in the above patents do not take into account any modifications that may be made to the flow simulation to mitigate non-physical dense bubbles and / or dilute droplets.
[0043] 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.
[0044] 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.
[0045] 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.
[0046] 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.
[0047] 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.
[0048] A general discussion of an LBM-based simulation system including a kinetics conversion 34b for performing fluid flow simulations is provided below. For further description of an LBM-based physical process simulation system, the reader is referred to U.S. Patent No. 5,848,260 (hereinafter referred to as the '260 patent), which is hereby incorporated in its entirety.
[0049] Referring to Figure 4A, 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.
[0050] Referring to Figure 4B, a second model (3D-1) 260 is illustrated, which is a three-dimensional model containing 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.
[0051] 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).
[0052] 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.
[0053] 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.
[0054] 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.
[0055] 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.
[0056] 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.
[0057] 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.
[0058] 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.
[0059] 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.
[0060] 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.
[0061] A microblock is illustrated in Figure 6. Voxels are represented at the corners of the microblock.
[0062] 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.
[0063] 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.
[0064] 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.
[0065] 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.
[0066] 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.
[0067] 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
[0068] 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
[0069] 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.
[0070] 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.
[0071] 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
[0072] 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).
[0073] 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.
[0074] 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.
[0075] 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.
[0076] 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.
[0077] 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
[0078] 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.
[0079] 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.
[0080] 4. Performing Faceted Surface Dynamics Next, surface dynamics is 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.
[0081] 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. The momentum difference is projected (398) along the tangent orientation of the facets.
[0082] From the momentum difference and Boltzmann distribution described above, the outgoing flux of the facet is computed to satisfy the perfect slip boundary condition by satisfying a zero tangential flux (399).
[0083] 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.
[0084] 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.
[0085] 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.
[0086] 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 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.
[0087] 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.
[0088] 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).
[0089] 6. Scattering from facets to voxels Next, particles leaving each facet are scattered into voxels (286, Figure 5). 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 the facet to a voxel is determined based on the sum of the particles moving from each facet to this voxel.
[0090] 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.
[0091] 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.
[0092] 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.
[0093] 8. Correct for phase separation The phase separation is corrected (289, FIG. 5) according to process 100 (FIG. 2B). Local diffusion parameters at locations identified as having improper phase separation are adjusted, and in subsequent time steps, the improper phase separation is corrected through the diffusion mechanism of the multiphase fluid flow simulation.
[0094] 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 sized 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.
[0095] 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 wing or hydrofoil shapes for aerodynamic or hydrodynamic bodies, flow paths for internal pipe or channel flow (e.g., for liquid cooling systems), nozzles and diffusers for wind tunnels, gears in gearboxes, mixers in mixing tanks, etc.
[0096] Alternatively or additionally, the results of the fluid flow simulation of process 270 can be used to predict the performance of an aerodynamic body (e.g., predicting the generated lift or drag on a wing), predict the pressure head loss of a fluid flowing through a pipe or channel, and / or predict the propagation of acoustic waves (e.g., predicting flow-induced noise sources and acoustic wave propagation from the exterior of a vehicle, such as a car or airplane, to the interior of the vehicle). The results of the fluid flow simulation of process 270 can also be used to predict the fluid flow around complex geometries, such as the fluid flow around gears in a gearbox or the flow around a mixer in a mixing tank. The techniques described herein improve the accuracy of such fluid flow simulations in predicting the performance of an aerodynamic body, predicting the pressure head loss of a fluid flowing through a pipe or channel, and / or predicting phase separation in the fluid flow around gears in a gearbox or the fluid flow around a mixer in a mixing tank.
[0097] example 14A illustrates a simulation space 400 for an example multiphase flow simulation. This example includes an aqueous phase 402 and an air phase 404. A portion 406 of the aqueous phase 402 near an air-water interface 408 has an initial downward velocity (toward the aqueous phase) at the start of the multiphase flow simulation.
[0098] 14B shows phase separation in simulation space 400 after steady-state conditions are reached. There are many dense bubbles 410 in aqueous phase 402 resulting from an initial velocity impingement from downwardly moving aqueous phase portion 406. The dense bubbles 410 have an order parameter value between 0.9 and 1, indicating that they are non-physical separations (e.g., bubbles related to numerical artifacts).
[0099] 14C shows steady-state phase separation in simulation space 400 after implementing process 100 during a multiphase flow simulation. The high density bubbles 410 seen in FIG. 14B have been removed.
[0100] FIG. 15 shows a snapshot of an example multiphase flow simulation in a simulation space 420. The multiphase flow simulation includes water 422 flowing with air 424 over a free surface 426. The simulation space 420 includes a rectangular object 428 through which the water 422 flows from left to right. The multiphase flow simulation generates many dense bubbles 430, indicated by an order parameter value between 0.90 and 1.00. The dense bubbles 430 unnaturally disrupt the water flow and result in poor predictions of the drag and lift coefficients around the rectangular object. The dense bubbles 430 can be mitigated by implementing process 100 ( FIG. 2B ) during the multiphase flow simulation.
[0101] 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.
[0102] 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).
[0103] 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.
[0104] 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.
[0105] 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).
[0106] 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.
[0107] 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]
[0108] 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 34e Interface Tracking Module, Interface Tracking 38 Data Repositories 40 Processes 100 processes 150 dilute droplets 152 Order parameter 154 First Derivative 156 Second Derivative 160 high density bubbles 162 Order parameter 164 First Derivative 166 Second Derivative 170 normal droplets 172 Order parameter 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) 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 400 Simulation Space 402 Water phase 404 Air Phase 406 part 408 Air-water interface 410 High density bubbles 420 Simulation Space 422 Water 424 Air 426 Free surface 428 Rectangle Objects 430 High density bubbles
Claims
1. 1. A computer system for simulating multiphase 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, the digital representation including a three-dimensional CAD model of the simulation space including a mesh represented as a plurality of voxels including particles; a simulation engine for reading from the mesh preparation engine, wherein the digital representation of the simulation space includes the mesh; and Including, the simulation engine storing instructions for simulating multiphase fluid flow, the instructions, when executed by the one or more processors, reading from the mesh preparation engine the digital representation of the simulation space, the digital representation comprising the three-dimensional CAD model of the simulation space, the mesh represented as the plurality of voxels; digitally simulating multiphase fluid flow in the digital representation of the simulation space; While simulating the multiphase fluid flow, identifying one or more voxels in the digital representation with improper phase separation; and Varying local diffusion parameters of the identified one or more voxels to correct for the improper phase separation. a memory that causes the one or more processors to perform operations including A computer system comprising:
2. identifying the one or more voxels with improper phase separation; identifying one or more local extrema of an order parameter representative of fluid phases of the multiphase fluid flow; determining that the value of the one or more local extrema is not equal to a specified value; 10. The computer system of claim 1, comprising:
3. The computer system of claim 2 , wherein the designated values correspond to values representing one or more phases of the multiphase fluid flow.
4. 3. The computer system of claim 2, wherein identifying the one or more local extrema of the order parameter comprises determining that a derivative of the order parameter is close to zero.
5. identifying the one or more voxels with improper phase separation; determining a concavity of an order parameter representative of a fluid phase of the multiphase fluid flow; identifying the one or more voxels with improper phase separation based on the determined recess; 10. The computer system of claim 1, comprising:
6. 6. The computer system of claim 5, wherein improper phase separation is identified when the determined recess is directed toward the closest value of the order parameter corresponding to a phase of the multiphase fluid flow.
7. 10. The computer system of claim 1, wherein digitally simulating the multiphase fluid flow comprises determining an order parameter representing a phase of the multiphase fluid flow based on the Allen-Cahn equations.
8. The local diffusion parameter is [Equation 1] [Equation 2]
9. The instruction: storing in the memory results of a digital simulation of multiphase fluid flow in the digital representation of the simulation space, the digital simulation being based on identifying one or more voxels in the digital representation with improper phase separation and varying local diffusion parameters of the identified one or more voxels to correct the improper phase separation. The computer system of claim 1 further comprising:
10. 1. A method implemented by a data processing system for digitally simulating multiphase 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, the digital representation including a three-dimensional CAD model of the simulation space including a mesh represented as a plurality of voxels; digitally simulating, with the data processing system, multiphase fluid flow in the digital representation of the simulation space; While simulating the multiphase fluid flow, identifying, by the data processing system, one or more voxels in the digital representation with improper phase separation; and Varying, by the data processing system, local diffusion parameters of the identified one or more voxels to correct for the improper phase separation. A method comprising:
11. identifying the one or more voxels with improper phase separation; identifying one or more local extrema of an order parameter representative of fluid phases of the multiphase fluid flow; determining that the value of the one or more local extrema is not equal to a specified value; The method of claim 10, comprising:
12. The method of claim 11 , wherein the designated values correspond to values representing one or more phases of the multiphase fluid flow.
13. The method of claim 11 , wherein identifying the one or more local extrema of the order parameter comprises determining that a derivative of the order parameter is close to zero.
14. identifying the one or more voxels with improper phase separation; determining a concavity of an order parameter representative of a fluid phase of the multiphase fluid flow; identifying the one or more voxels with improper phase separation based on the determined recess; The method of claim 10, comprising:
15. 15. The method of claim 14, wherein improper phase separation is identified when the determined depression is oriented toward the closest value of the order parameter corresponding to a phase of the multiphase fluid flow.
16. digitally simulating the multiphase fluid flow includes determining an order parameter representing a phase of the multiphase fluid flow based on the Allen-Cahn equation, and the local diffusion parameter is [Equation 3] [Equation 4]
17. One or more non-transitory machine-readable storage devices storing instructions for digitally simulating multiphase 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, the digital representation including a three-dimensional CAD model of the simulation space including a mesh represented as a plurality of voxels; digitally simulating multiphase fluid flow in the digital representation of the simulation space; While simulating the multiphase fluid flow, identifying one or more voxels in the digital representation with improper phase separation; and Varying local diffusion parameters of the identified one or more voxels to correct for the improper phase separation. and one or more non-transitory machine-readable storage devices executable by one or more processors to cause performance of operations including:
18. identifying the one or more voxels with improper phase separation; identifying one or more local extrema of an order parameter representative of fluid phases of the multiphase fluid flow; determining that the value of the one or more local extrema is not equal to a specified value; 20. The one or more non-transitory machine-readable storage devices of claim 17, comprising:
19. 20. The one or more non-transitory machine-readable storage devices of claim 18, wherein the designated values correspond to values representing one or more phases of the multiphase fluid flow, and wherein identifying the one or more local extrema of the order parameter comprises determining that a derivative of the order parameter is close to zero.
20. identifying the one or more voxels with improper phase separation; determining a concavity of an order parameter representative of a fluid phase of the multiphase fluid flow; identifying the one or more voxels with improper phase separation when the determined depression is oriented toward a closest value of the order parameter corresponding to a phase of the multiphase fluid flow; 20. The one or more non-transitory machine-readable storage devices of claim 17, comprising: