Methods and apparatus for fast computation of fluid velocity fields in the presence of objects causing flow discontinuity are disclosed. Rigorous evaluation of perturbed velocity fields, each resulting from placing an object in a bounded space sustaining a reference velocity field, are determined for different orientations of the object with respect to a reference velocity field and different values of the magnitude of the velocity field. A velocity field is determined at selected sampling points within an enclosure surrounding the object. Pre-computed perturbed velocity fields determined for each object of a set of reference objects are stored in a computer memory. Fast real-time computation of velocity-field perturbations caused by presence of objects at arbitrary positions in a space sustaining velocity fields of different magnitudes and directions are realized using the stored pre-computed data.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A method for determining and displaying fluid flow in a bounded space, comprising: employing at least one processor for: defining a set of reference velocity fields sustained within said bounded space, each reference velocity field having a respective one of specified directions; determining a set of incremental velocity fields corresponding to said reference velocity fields, for each of a number of predefined speed values of said reference velocity fields, caused by placing an object within said bounded space; inducing a specified velocity field within said bounded space; determining perturbation of said specified velocity field, caused by placing said object at a specific position within said bounded space, by performing an interpolation process based on said reference velocity fields, said set of incremental velocity fields, and a representative velocity vector of said specified velocity field at said specific position; representing each said incremental velocity field by incremental velocity vectors at each sampling point of a plurality of sampling points within said bounded space; determining said incremental velocity vectors at each of said sampling points and retaining only each incremental velocity vectors having a magnitude exceeding a predefined threshold; and presenting said specified velocity field and said perturbation of said specified velocity to a display module.
2. The method of claim 1 , further comprising selecting said sampling points within an enclosure surrounding said object, said enclosure selected so that each incremental velocity field in said set of incremental velocity fields has a negligible magnitude outside said enclosure.
3. The method of claim 2 , wherein said enclosure is of an ellipsoidal form.
4. The method of claim 1 , further comprising: specifying traversed sampling points, from among said plurality of sampling points, which a mobile object traverses at specified instants of time; determining background velocity vectors of said specified velocity field at said traversed sampling points; determining propagating perturbations of said background velocity vectors caused by presence of said mobile object at said traversed sampling points by performing interpolation processes based on said reference velocity fields, said set of incremental velocity fields, and said background velocity vectors; and presenting said background velocity vectors and said propagating perturbations to said display module.
5. The method of claim 4 , further comprising specifying rotations of said mobile object at said specified instants of time and adjusting said background velocity vectors, relative to said mobile object, according to respective angles of rotation.
6. The method of claim 1 , wherein the step determining said set of incremental velocity fields further comprises: solving Navier-Stokes differential equation over an extended period of time to determine a perturbed velocity field corresponding to each of said reference velocity fields; subtracting each said reference velocity field from a corresponding perturbed velocity field to determine a differential velocity field; recording temporal samples of said differential velocity field at predetermined relative time instants t 1 , t 2 , . . . , t v , ν>>1, to produce ν temporal samples for each of said sampling points within said bounded space; determining said incremental velocity vector at each sampling point as a vectorial mean value of said ν temporal samples corresponding to said each sampling point.
9. A method for determining and displaying fluid flow in a bounded space, comprising: employing at least one processor for: defining a reference velocity field, of a specified direction, sustained within said bounded space; specifying individual identifiers of a set of reference objects; determining a set of incremental velocity fields, caused by exclusively placing each reference object within said bounded space, for a number of object orientations relative to said specified direction and a number of predefined speed values of said reference velocity field; storing, in a non-transitory computer readable storage medium, reference information including said object orientations and incremental velocity fields relevant to each reference object; specifying: a current velocity field within said bounded space; a first identifier of a first object; position of said first object within said bounded space; and an indication of orientation of said first object; determining a first velocity vector in said current velocity field at said position; associating said first object with a matching object from among said set of reference objects according to said first identifier and said individual identifiers of said set of reference objects; determining a first perturbation field of said current velocity field, caused by said first object, according to said first velocity vector, said orientation of said first object, and said reference information relevant to said matching object; representing each said incremental velocity field by incremental velocity vectors at each sampling point of a plurality of sampling points within said bounded space; and determining said incremental velocity vectors at each of said sampling points and retaining only each incremental velocity vectors having a magnitude exceeding a predefined threshold; and presenting said current velocity field and said first perturbation field to a display module.
10. The method of claim 9 , further comprising setting said individual identifiers as indices, setting said identifier of said first object as a first index, and selecting said matching reference object according to said first index.
11. The method of claim 9 , further comprising: characterizing each of said reference objects according to descriptors of physical attributes; characterizing said first object according to said descriptors of physical attributes; and selecting said matching object according to proximity of descriptors of said first object to descriptors of each reference object.
12. The method of claim 9 , further comprising: specifying: a second identifier of a second object; a second velocity vector in said current velocity field at a position of said second object; and an indication of orientation of said second object; selecting a new matching object from among said set of reference objects according to said second identifier and said individual identifiers of said set of reference objects; determining a second perturbation field of said current velocity field, caused by said second object, according to said second velocity vector, said orientation of said second object, and said reference information relevant to said new matching object; summation of said first perturbation field and said second perturbation field to produce a combined perturbation field; and presenting said current velocity field and said combined perturbation field to the display module.
13. An apparatus for determining and displaying fluid flow in a bounded space, comprising: a processor; a repository of reference velocity fields sustained within said bounded space, each reference velocity field having a respective one of specified directions; a repository of descriptors of a plurality of reference objects; a first engine for computing variation of velocity fields caused by placing an object within said bounded space; a non-transitory computer readable storage medium for storing incremental velocity vectors representing said variation of velocity fields; a first module for acquiring user-defined velocity fields and descriptors of user-defined objects, and correlating a user-defined object with said reference objects; a second engine operatively coupled to said first module and said storage medium for computing velocity perturbation of a user-defined velocity field caused by individually placing each of at least one user-defined object in said bounded space; a second module for computing combined velocity perturbations of said user-defined velocity field caused by concurrent presence of said at least one user-defined object in said bounded space; and a third module for adding said user-defined velocity field to said combined velocity perturbations and presenting a resulting perturbed velocity field to a display module; wherein the first and second engines, the first, second and third modules, the repository of reference velocity fields, and the repository of descriptors comprise a non-transitory computer readable storage medium having computer readable instructions stored thereon for execution by the processor.
14. The apparatus of claim 13 , wherein said first engine comprises a non-transitory computer readable storage medium having computer-readable instructions stored thereon, which, when executed, cause said first engine to: solve Navier-Stokes' differential equations over an extended period of time to determine a perturbed velocity field corresponding to each of said reference velocity fields; subtract each said reference velocity field from a corresponding perturbed velocity field to determine a differential velocity field; record temporal samples of said differential velocity field at predetermined relative time instants t 1 , t 2 , . . . , t ν , ν>>1, to collect ν temporal samples for each sampling point of a plurality of sampling points within said bounded space; and determine each of the incremental velocity vectors representing said variations of velocity fields as a vectorial mean value of said v temporal samples corresponding to said each sampling point.
15. The apparatus of claim 14 , wherein the first engine further comprises a non-transitory computer readable storage medium having computer-readable instructions stored thereon, which, when executed, cause said first engine to: select said specified directions to be along mutually orthogonal axes referenced as an x-axis, a y-axis, and a z-axis; and determine, for each speed value S of predefined speed values of reference velocity fields along a positive direction of the x-axis, a positive direction of the y-axis, a positive direction of the z-axis, a negative direction of the x-axis, a negative direction of the y-axis, and a negative direction of the z-axis, corresponding incremental velocity vectors v + s.x , v + s.y , v + s.z , v − s.x , v − s.y , and v − s.z .
16. The apparatus of claim 15 , wherein said second engine comprises a non-transitory computer readable storage medium having computer-readable instructions stored thereon, which, when executed, cause said second engine to: project a dimensionless unit vector of a direction of a representative velocity vector of said user-defined velocity field on said x-axis, y-axis, and z-axis to produce fractions α j , β j , γ j , where j is an index of an octant, bounded by said mutually orthogonal axes, in which said representative velocity is located; and determine said velocity perturbation as a function of said fractions α j , β j , γ j , and said incremental velocity vectors v + s.x , v + s.y , v + s.z , v − s.x , v − s.y , and v − s.z .
17. The apparatus of claim 13 , wherein said first module comprises a non-transitory computer readable storage medium having computer-readable instructions stored thereon, which, when executed, cause said first module to: acquire reference characterizing parameters of each of said reference objects from said repository of descriptors of reference objects; determine current characterizing parameters of a user-defined object according to predefined descriptors; determine a proximity metric of said current characterizing parameters to said reference characterizing parameters; and present a reference object, from among said plurality of reference objects, having minimum proximity metric to said second engine.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
December 31, 2008
January 17, 2012
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.