IP Library Granted Patent US 9,367,956
Granted Patent B2
US 9,367,956 · App. 13/843,595 · Granted Jun 14, 2016

Windowed simulation in fluid flows

Inventors: Michael K. O'Brien (Albany, CA); Dave Hale (Berkeley, CA); Ryan Kautzman (San Francisco, CA); Jiayi Chong (San Bruno, CA)
Assignee: Pixar
G06T17/00G06G7/57G06T13/20G06T15/04G06F17/5009G06T2210/24G06T2210/36
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,367,956
App. No.
13/843,595
Granted
Jun 14, 2016
Kind
B2
Abstract

A simulation application simulates a fluid flow. The simulation application divides a fluid into coarse volumetric elements (voxels) at a first resolution, and simulates the fluid flow at the first resolution. The simulation application defines a three-dimensional window that includes a portion of the coarse voxels. The simulation application divides each coarse voxel in the portion of the coarse voxels that lie within the three-dimensional window into a plurality of fine voxels at a second resolution. The simulation application simulates the fluid flow associated with each fine voxel in the plurality of fine voxels at the second resolution based at least in part on the simulation at the coarse resolution.

Claims (62)

1. A computer-implemented method for simulating a fluid flow, the method comprising:

dividing a fluid into a plurality of coarse voxels at a first resolution;

simulating the fluid flow associated with each coarse voxel in the plurality of coarse voxels at the first resolution;

defining a three-dimensional window that includes a portion of the coarse voxels;

dividing each coarse voxel in the portion of the coarse voxels into a plurality of fine voxels at a second resolution;

simulating the fluid flow associated with each fine voxel in the plurality of fine voxels at the second resolution, based at least in part on the simulation at the first resolution.

2. The computer-implemented method of claim 1 , further comprising:

calculating a first volume associated with the portion of course voxels by summing volumes for each coarse voxel in the portion of course voxels;

calculating a second volume associated with the portion of course voxels by summing volumes for each fine voxel that lies within any of the course voxels in the portion of course voxels;

calculating a difference between the first volume and the second volume;

selecting at least a portion of the fine voxels; and

adding a portion of the difference to each fine voxel in the portion of fine voxels.

3. The computer-implemented method of claim 2 , wherein adding a portion of the difference to each fine voxel in the portion of fine voxels comprises:

determining whether the magnitude of the difference is below a threshold; and

if the magnitude of the difference is below the threshold, then adding a portion of the difference to each fine voxel at a first rate; or

if the magnitude of the difference is not below the threshold, then adding a portion of the difference to each fine voxel at a second rate.

4. The computer-implemented method of claim 3 , wherein the second rate is greater than the first rate.

5. The computer-implemented method of claim 4 , wherein the threshold is a first value if the difference is negative and a second value if the difference is positive.

6. The computer-implemented method of claim 5 , wherein the first value and the second value are adjustable by a user.

7. The computer-implemented method of claim 1 , wherein the three-dimensional window exceeds the size of a viewing frustum by at least one coarse voxel in at least one dimension.

8. A computer-readable storage medium storing instructions that, when executed by a processor, cause the processor to model a surface of a fluid in motion, by performing the steps of:

for simulating a fluid flow, the method comprising:

dividing a fluid into a plurality of coarse voxels at a first resolution;

simulating the fluid flow associated with each coarse voxel in the plurality of coarse voxels at the first resolution;

defining a three-dimensional window that includes a portion of the coarse voxels;

dividing each coarse voxel in the portion of the coarse voxels into a plurality of fine voxels at a second resolution;

simulating the fluid flow associated with each fine voxel in the plurality of fine voxels at the second resolution, based at least in part on the simulation at the first resolution.

9. The computer-readable storage medium of claim 8 , further comprising:

calculating a first volume associated with the portion of course voxels by summing volumes for each coarse voxel in the portion of course voxels;

calculating a second volume associated with the portion of course voxels by summing volumes for each fine voxel that lies within any of the course voxels in the portion of course voxels;

calculating a difference between the first volume and the second volume;

selecting at least a portion of the fine voxels; and

adding a portion of the difference to each fine voxel in the portion of fine voxels.

10. The computer-readable storage medium of claim 9 , wherein adding a portion of the difference to each fine voxel in the portion of fine voxels comprises:

determining whether the magnitude of the difference is below a threshold; and

if the magnitude of the difference is below the threshold, then adding a portion of the difference to each fine voxel at a first rate; or

if the magnitude of the difference is not below the threshold, then adding a portion of the difference to each fine voxel at a second rate.

11. The computer-readable storage medium of claim 10 , wherein the second rate is greater than the first rate.

12. The computer-readable storage medium of claim 11 , wherein the threshold is a first value if the difference is negative and a second value if the difference is positive.

13. The computer-readable storage medium of claim 12 , wherein the first value and the second value are adjustable by a user.

14. The computer-readable storage medium method of claim 8 , wherein the three-dimensional window exceeds the size of a viewing frustum by at least one coarse voxel in at least one dimension.

15. A computing system, comprising:

a memory that is configured to store instructions for a program; and

a processor that is configured to execute the instructions for the program to simulate a fluid flow, by performing the steps of:

dividing a fluid into a plurality of coarse voxels at a first resolution;

simulating the fluid flow associated with each coarse voxel in the plurality of coarse voxels at the first resolution;

defining a three-dimensional window that includes a portion of the coarse voxels;

dividing each coarse voxel in the portion of the coarse voxels into a plurality of fine voxels at a second resolution;

simulating the fluid flow associated with each fine voxel in the plurality of fine voxels at the second resolution, based at least in part on the simulation at the first resolution.

16. The computing system of claim 15 , further comprising:

calculating a first volume associated with the portion of course voxels by summing volumes for each coarse voxel in the portion of course voxels;

calculating a second volume associated with the portion of course voxels by summing volumes for each fine voxel that lies within any of the course voxels in the portion of course voxels;

calculating a difference between the first volume and the second volume;

selecting at least a portion of the fine voxels; and

adding a portion of the difference to each fine voxel in the portion of fine voxels.

17. The computing system of claim 16 , wherein adding a portion of the difference to each fine voxel in the portion of fine voxels comprises:

determining whether the magnitude of the difference is below a threshold; and

if the magnitude of the difference is below the threshold, then adding a portion of the difference to each fine voxel at a first rate; or

if the magnitude of the difference is not below the threshold, then adding a portion of the difference to each fine voxel at a second rate.

18. The computing system of claim 17 , wherein the second rate is greater than the first rate.

19. The computing system of claim 18 , wherein the threshold is a first value if the difference is negative and a second value if the difference is positive.

20. The computing system of claim 19 , wherein the first value and the second value are adjustable by a user.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 5, 2013
From: O'BRIEN, MICHAEL K.; HALE, DAVE; KAUTZMAN, RYAN; CHONG, JIAYI
To: PIXAR
Reel/Frame 031144/0577 →
Continuity (2)
Provisional Application 61665251 · Jun 27, 2012
Related Publication 20140005994A1 · Jan 2, 2014