Fluid mechanics is a branch of physics concerned with the mechanics of fluids and the forces on them. It has applications in a variety of disciplines, including mechanical, civil, chemical, biomedical engineering, geophysics, oceanography, meteorology, astrophysics, and biology.
PIV takes very tightly spaced images in time and uses some correlation between the images to calculate how far the particles have moved (this is usually done in software). The result is a set of vector fields; so, the end result gives you the velocity vectors at different speeds, different points in space, and different points in time.
Numpy + ndarray
Python helps find the trike or what the fluid is doing by processing the vector fields.
The way to handle this in Python is with the classic scientific package
numpy because it stores information in
Set up the
numpy array so that each spatial dimension corresponds to one dimension in a
numpy array – you will have one last dimension that represents the different velocity vector components.
numpy can be used to directly compute different quantities on these vector fields, but it doesn’t actually store the times at which they were captured or the actual spatial dimension, even though this information is really important for computing various mathematical quantities (e.g., spatial derivatives and time derivatives).
The PyPostPIV package is built on top of core scientific python packages:
The package includes:
PIV specific attributes (x,y, time locations)
Core math functions
Other more advanced functions, i.e., turbulent kinetic energy and shear stress)
Load PIV field data as Field2D instance
Call post-processing functions on the data
Visualize the data
For the functions that don’t exist:
The Field2D class can be manipulated directly (since it inherits from
numpy) along with core functions to make analysis intuitive
Focus on physics by directly translating mathematics to code
import pypostpiv as ppp field3=ppp.convert_vc7('../test3',0.01) field3.save('test3.hdf5')
Example- Velocity Magnitude
import pypostpiv as ppp import numpy as np vel = ppp.load('test3.hdf5') vel_magnitude = np.sqrt(vel.u(0)**2 + vel.u(1)**2) vel_magnitude = ppp.basics.mag(vel)
View all Courses