# US 12,118,279 B2 · Lattice Boltzmann based solver for high speed flows

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,118,279 B2
- Document ID: US12118279B2
- Status: Granted
- Kind: B2
- Application number: 16/274,403
- Filed: 2019-02-13
- Published: 2019-08-22
- Granted: 2024-10-15
- Earliest claimed: 2018-02-20
- Assignees: Dassault Systemes Americas Corp.
- Applicants: Dassault Systemes Americas Corp.
- Inventors: Pradeep Gopalakrishnan; Raoyang Zhang; Hudong Chen
- Web page: https://patentgrep.com/patent/US12118279B2

## CPC

- G06F 30/20: Design optimisation, verification or simulation (optimisation, verification or simulation of circuit designs G06F30/30)
- G06F 30/25: using particle-based methods
- G06F 17/11: for solving equations {, e.g. nonlinear equations, general mathematical optimization problems (optimization specially adapted for a specific administrative, business or logistic context G06Q10/04)}
- G06F 30/23: using finite element methods [FEM] or finite difference methods [FDM]
- G06F 30/28: using fluid dynamics, e.g. using Navier-Stokes equations or computational fluid dynamics [CFD]
- G06F 30/15: Vehicle, aircraft or watercraft design
- G06F 30/367: Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
- G06F 2111/08: Probabilistic or stochastic CAD
- G06F 2111/10: Numerical modelling
- G06F 2113/08: Fluids
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Techniques for simulating fluid flow on a computer that involve a stable entropy solver are described. The techniques include simulating activity of a fluid across a mesh, the activity of the fluid being simulated so as to model movement of particles across the mesh, storing, in a computer accessible memory, a set of state vectors for each mesh location in the mesh, each of the state vectors comprising a plurality of entries that correspond to particular momentum states of possible momentum states at a corresponding mesh location, simulating a time evolution of entropy of the flow by collecting incoming set of distributions from neighboring mesh locations for the collision operation, calculating by the computer scalar values in each location, determining outgoing distributions as a product of the collision operation and addition of a heat source, and modifying the flow by the computer performing for a time interval, an advection of the particles to subsequent mesh locations.

## Claims

### Claim 1

A method for simulating fluid flow on a computer, with the method comprising:
receiving a model of a simulation space including a mesh represented as a plurality of mesh locations that represents a physical object in the simulation space, with the plurality of mesh locations having appropriate resolutions to account for surfaces of the physical object within the simulation space;
simulating activity of a fluid across the mesh, the activity of the fluid being simulated so as to model collisions of particles of the fluid flow;
storing, in a computer accessible memory, a set of state vectors for each mesh location in the mesh, each of the state vectors comprising a plurality of entries that correspond to particular momentum states of possible momentum states at a corresponding mesh location;
simulating a time evolution of entropy of the fluid flow by:
collecting by a collision operator incoming set of distributions from mesh locations in the mesh from a collision operation;
collecting an additional set of lattice vectors that represent entropy;
calculating by the computer the entropy values in the mesh locations in the mesh;
computing an additional heat source that is added to the additional set of lattice vectors;
determining outgoing distributions as a product of the collision operation and the additional heat source;
calculating by the computer, entropy diffusion;
removing the calculated entropy diffusion from the additional heat source; and
modifying the fluid flow, by the computer performing for a time interval, an advection of the particles and entropy to subsequent mesh locations,
wherein simulating activity of the fluid and simulating the time evolution of entropy are executed in parallel to improve stability of the simulating.

### Claim 2 (depends on 1)

The method of claim 1 wherein simulating activity of the fluid flow comprises:
simulating the fluid flow based in part on a first set of discrete lattice speeds; and the method further comprises:
simulating time evolution of the entropy of the fluid flow based in part on a second set of discrete lattice speeds.

### Claim 3 (depends on 2)

The method of claim 2, wherein the second set of discrete lattice speeds are the same lattice speeds as the first set of discrete lattice speeds.

### Claim 4 (depends on 1)

The method of claim 1 further comprises:
calculating by the computer, higher order error terms from incoming lattice set vectors;
determining average values of the higher order error terms; and
subtracting the average values of the higher order error terms from the collision operator.

### Claim 5 (depends on 1)

The method of claim 1, wherein the additional heat source is added to second states, and the method further comprises:
calculating by the computer, the effect of heating by fluid viscosity and heating by fluid conduction.

### Claim 6 (depends on 1)

The method of claim 1, further comprises:
calculating by the computer, a set of physical quantities for the mesh locations in the mesh.

### Claim 7 (depends on 1)

The method of claim 1, wherein the method is a Lattice Boltzmann method, and includes a Lattice Boltzmann entropy solver that avoids a second order velocity term.

### Claim 8 (depends on 1)

The method of claim 1, wherein the collision operation involves a non-equilibrium computation without any second order terms in velocity.

### Claim 9 (depends on 1)

The method of claim 1 wherein the additional set of lattice vectors, qi, and the specific entropy, s, and the time evolution of entropy of the fluid flow is given by
q
i
⁡
(
x
+
c
i
⁢
Δ
⁢
⁢
t
,
t
+
Δ
⁢
⁢
t
)
=
q
i
eq
⁡
(
x
,
t
)
+
(
1
-
1
τ
q
)
⁡
[
(
c
i
-
V
p
)
·
Π
⋁
q
non
-
eq
]
+
Q
s
⁢
⁢
′
,
where qi are lattice vectors, x is direction, ci is velocity of states, Δt is a change in time t, qieq(x, t) is lattice vectors at equilibrium, τq is the relaxation time, V is velocity, Πqnoneq is the non-equilibrium contribution, p is pressure, and Qs is the additional heat source.

### Claim 10 (depends on 9)

The method of claim 9, wherein the collision operator is an entropy collision operator that is related to:
Π
⋁
q
non
-
eq
⁡
(
δ
-
vv
RT
+
v
2
)
·
Π
q
non
-
eq
.

### Claim 11

A computing system configured to simulate fluid flow, the computing system comprising:
one or more processor devices;
memory operatively coupled to the one or more processor devices, the memory storing computing instructions to cause the one or more processor devices to:
receive a model of a simulation space including a mesh represented as a plurality of mesh locations that represents a physical object in the simulation space, with the plurality of mesh locations having appropriate resolutions to account for surfaces of the physical object within the simulation space;
simulate activity of a fluid across the mesh, the activity of the fluid being simulated so as to model collisions of particles of the fluid flow across the mesh;
store, in the memory, a set of state vectors for each mesh location in the mesh, each of the state vectors comprising a plurality of entries that correspond to particular momentum states of possible momentum states at a corresponding mesh location;
simulate a time evolution of entropy of the fluid flow by instructions to:
collect by a collision operator incoming set of distributions from mesh locations in the mesh from a collision operation;
collect an additional set of lattice vectors that represent entropy;
calculate by the computer the entropy values in each mesh location in the mesh;
compute an additional heat source that is added to the additional set of lattice vectors;
determine outgoing distributions as a product of the collision operation and the additional heat source;
calculate an effect of heating by fluid viscosity and heating by fluid conduction;
calculate entropy diffusion;
remove the calculated entropy diffusion from the additional heat source; and
modify the fluid flow by the computer performing for a time interval, an advection of the particles and entropy to subsequent mesh locations,
wherein simulating activity of the fluid and simulating the time evolution of entropy are executed in parallel to improve stability of the simulating.

### Claim 12 (depends on 11)

The system of claim 11 wherein the instructions to simulate activity of the fluid flow comprises instructions to:
simulate the fluid flow based in part on a first set of discrete lattice speeds; and
simulate time evolution of the entropy of the fluid flow based in part on a second set of discrete lattice speeds.

### Claim 13 (depends on 12)

The system of claim 12 wherein the second set of discrete lattice speeds are the same lattice speeds as the first set of discrete lattice speeds.

### Claim 14 (depends on 11)

The system of claim 11 further comprises instructions to:
calculate higher order error terms from incoming lattice set vectors;
determine average values of the higher order error terms; and
subtract the average values of the higher order error terms from the collision operator.

### Claim 15 (depends on 11)

The system of claim 11 wherein the additional heat source is computed and added to second states, and the system-further comprises instructions to:
calculate the effect of heating by fluid viscosity and heating by fluid conduction.

### Claim 16 (depends on 11)

The system of claim 11, further comprises instructions to:
calculate a set of physical quantities for the mesh locations in the mesh.

### Claim 17 (depends on 11)

The system of claim 11 wherein the entropy solver is a Lattice Boltzmann entropy solver that avoids a second order velocity term.

### Claim 18 (depends on 11)

The system of claim 11 wherein the collision operation involves a non-equilibrium computation without any second order terms in velocity.

### Claim 19 (depends on 11)

The system of claim 11 wherein the
additional set of lattice vectors, qi, and the specific entropy, s, and the time evolution of entropy of the fluid flow is given by
q
i
⁡
(
x
+
c
i
⁢
Δ
⁢
⁢
t
,
t
+
Δ
⁢
⁢
t
)
=
q
i
eq
⁡
(
x
,
t
)
+
(
1
-
1
τ
q
)
⁡
[
(
c
i
-
V
p
)
·
Π
⋁
q
non
-
eq
]
+
Q
s
⁢
⁢
′
,
where qi are lattice vectors, x is direction, ci is velocity of states, Δt is a change in time t, qieq(x, t) is lattice vectors at equilibrium, τq is the relaxation time, V is velocity, Πqnoneq is the non-equilibrium contribution, p is pressure, and Qs is the additional heat source.

### Claim 20 (depends on 19)

The system of claim 19, wherein the collision operator is an entropy collision operator that is related to:
Π
⋁
q
non
-
eq
⁡
(
δ
-
vv
RT
+
v
2
)
·
Π
q
non
-
eq
.

### Claim 21

A computer program product tangibly stored on a non-transitory hardware storage device, the computer program product including executable instructions to configure a computing system to:
receive a model of a simulation space including a mesh represented as a plurality of mesh locations that represents a physical object in the simulation space, with the plurality of mesh locations having appropriate resolutions to account for surfaces of the physical object within the simulation space;
simulate activity of a fluid flow across the mesh, the activity of the fluid flow being simulated so as to model collisions of particles of the fluid flow;
store, in the memory, a set of state vectors for each mesh location in the mesh, each of the state vectors comprising a plurality of entries that correspond to particular momentum states of possible momentum states at a corresponding mesh location;
simulate a time evolution of entropy of the fluid flow by instructions to:
collect by a collision operator incoming set of distributions from neighboring mesh locations in the mesh from a collision operation;
collect an additional set of lattice vectors that represent entropy;
calculate the entropy values in each mesh location in the mesh;
compute an additional heat source that is added to the additional set of lattice vectors;
determine outgoing distributions as a product of the collision operation and the additional heat source;
calculate an effect of heating by fluid viscosity and heating by fluid conduction;
calculate entropy diffusion;
remove the calculated entropy diffusion from the additional heat source; and
modify the fluid flow by performing for a time interval, an advection of the particles and entropy to subsequent mesh locations,
wherein simulating activity of the fluid and simulating the time evolution of entropy are executed in parallel to improve stability of the simulating.

### Claim 22 (depends on 1)

The method of claim 1, further comprising simulating sound pressure levels of the fluid flow, wherein the fluid flow comprises a high speed, compressible fluid flow through a nozzle.

### Claim 23 (depends on 21)

The computer program product of claim 21, wherein the instructions to simulate the time evolution of entropy comprise a Lattice Boltzmann method and includes a Lattice Boltzmann entropy solver that avoids a second order velocity term.

### Claim 24 (depends on 21)

The computer program product of claim 21, wherein the collision operation involves a non-equilibrium computation without any second order terms in velocity.

### Claim 25 (depends on 21)

The computer program product of claim 21, wherein the additional set of lattice vectors, qi, and the specific entropy, s, and the time evolution of entropy of the fluid flow is given by
q
i
(
x
+
c
i
⁢
Δ
⁢
t
,
t
+
Δ
⁢
t
)
=
q
i
eq
(
x
,
t
)
+
(
1
-
1
τ
q
)
[
(
c
i
-
v
p
)
·
∏
⋁
q
non
-
eq
]
+
Q
s
,
where qi are lattice vectors, x is direction, ci is velocity of states, Δt is a change in time t, qieq(x, t) is lattice vectors at equilibrium, τq is the relaxation time, V is velocity, Πqnoneq is the non-equilibrium contribution, p is pressure, and Qs is the additional heat source.

### Claim 26 (depends on 25)

The computer program product of claim 25, wherein the collision operator is an entropy collision operator that is related to:
∏
⋁
q
non
-
eq
=
(
δ
-
vv
RT
+
v
2
)
·
∏
q
non
-
eq
.
