Filters
Overview
Filtration is the process of separating suspended particles from a fluid (liquid or gas) by passing it through a permeable medium. In engineering systems, filters, screens, and strainers are essential components for protecting sensitive equipment (pumps, compressors, valves, nozzles) from debris, preventing erosion, and ensuring product purity in industrial processes. Filter selection involves balancing particle capture efficiency against flow resistance and pressure drop.
The primary engineering concern with filters is the pressure drop (\Delta P) they induce. As fluid passes through the media, mechanical energy is lost to viscous friction and turbulence, which must be compensated by pumps or fans. This pressure loss is typically characterized by a dimensionless loss coefficient (K) that relates the pressure drop to the dynamic pressure:
\Delta P = K \cdot \frac{1}{2} \rho v^2
where \rho is the fluid density and v is the approach velocity. The loss coefficient depends on filter geometry (open area ratio, wire/bar thickness, hole diameter) and edge sharpness. These tools compute K using empirically-validated correlations from fluids and fluid mechanics handbooks.
Implementation: All pressure drop calculations leverage the fluids library, which implements industry-standard correlations from Idelchik, Crane, and other authoritative sources. These correlations apply to fully turbulent flow (Re > 10^4) through clean, unobstructed filter elements.
Figure 1 illustrates how the loss coefficient varies with open area ratio and edge geometry for common filter types.
Filter Geometries: Filters are categorized by their structural pattern and edge geometry. Grills and perforated plates consist of circular holes drilled or punched through a flat plate—common in HVAC intakes, particle separators, and process vessel screens. Wire screens and bar screens are woven or welded grid patterns used for coarse particle removal in wastewater, cooling water, and pulp processing. Mesh screens (woven wire cloth) provide finer filtration for hydraulic systems and air filtration.
Edge Geometry Effects: The sharpness of the filter element edges significantly impacts pressure drop. Square-edged filters (SQ_EDGE_GRILL, SQ_EDGE_SCREEN) have higher loss coefficients due to flow separation and recirculation at sharp corners. Round-edged filters (RND_EDGE_GRILL, RND_EDGE_SCREEN, RND_EDGE_MESH) reduce pressure drop by 20-40% through streamlined entry, minimizing separation. Chamfering or radiusing edges during manufacturing is a common design optimization.
Open Area Ratio: All correlations are functions of the open area ratio (or solidity), defined as the fraction of the filter area that is open to flow. Higher open area ratios (lower solidity) reduce pressure drop but may compromise structural strength or particle capture. Typical values range from 0.3 to 0.8 depending on application requirements. Use the RND_EDGE_GRILL or SQ_EDGE_GRILL tools for perforated plates, the screen tools for bar/wire grids based on edge geometry.
RND_EDGE_GRILL
Computes the pressure-loss coefficient K for flow through a rounded-edge grill, bar screen, or perforated plate based on the open-area fraction and optional friction correction terms.
Without thickness-friction correction, the function uses a rounded-edge empirical lookup based on open fraction \alpha. When thickness and friction inputs are provided, an additional loss contribution is included in proportion to the dimensionless ratio of thickness to hydraulic diameter and friction factor.
The correlation is intended for open-area fractions in the documented range 0.3 \leq \alpha \leq 0.7, with K referenced to the approach velocity upstream of the grill.
Excel Usage
=RND_EDGE_GRILL(alpha, l, Dh, fd)
alpha(float, required): Fraction of grill open to flow (must be 0.3-0.7), [-]l(float, optional, default: null): Thickness of the grill or plate, [m]Dh(float, optional, default: null): Hydraulic diameter of gap in grill, [m]fd(float, optional, default: null): Darcy friction factor, [-]
Returns (float): Loss coefficient K, [-], or error message (str) if input is invalid.
Example 1: Basic case (alpha=0.4)
Inputs:
| alpha |
|---|
| 0.4 |
Excel formula:
=RND_EDGE_GRILL(0.4)
Expected output:
1
Example 2: With friction correction (l, Dh, fd provided)
Inputs:
| alpha | l | Dh | fd |
|---|---|---|---|
| 0.4 | 0.15 | 0.002 | 0.0185 |
Excel formula:
=RND_EDGE_GRILL(0.4, 0.15, 0.002, 0.0185)
Expected output:
9.67187
Example 3: Mid-range open area (alpha=0.5)
Inputs:
| alpha |
|---|
| 0.5 |
Excel formula:
=RND_EDGE_GRILL(0.5)
Expected output:
0.6
Example 4: Higher alpha (alpha=0.7)
Inputs:
| alpha |
|---|
| 0.7 |
Excel formula:
=RND_EDGE_GRILL(0.7)
Expected output:
0.2
Python Code
Show Code
from fluids.filters import round_edge_grill as fluids_round_edge_grill
def rnd_edge_grill(alpha, l=None, Dh=None, fd=None):
"""
Calculate the loss coefficient for a rounded edge grill or perforated plate.
See: https://fluids.readthedocs.io/fluids.filters.html#fluids.filters.round_edge_grill
This example function is provided as-is without any representation of accuracy.
Args:
alpha (float): Fraction of grill open to flow (must be 0.3-0.7), [-]
l (float, optional): Thickness of the grill or plate, [m] Default is None.
Dh (float, optional): Hydraulic diameter of gap in grill, [m] Default is None.
fd (float, optional): Darcy friction factor, [-] Default is None.
Returns:
float: Loss coefficient K, [-], or error message (str) if input is invalid.
"""
try:
# Validate and convert alpha
try:
alpha = float(alpha)
except (ValueError, TypeError):
return "Error: alpha must be a number."
# Validate alpha range (0.3 to 0.7 for round_edge_grill)
if alpha < 0.3 or alpha > 0.7:
return "Error: alpha must be between 0.3 and 0.7."
# Validate and convert optional parameters
if l is not None:
try:
l = float(l)
except (ValueError, TypeError):
return "Error: l must be a number."
if l <= 0:
return "Error: l must be positive."
if Dh is not None:
try:
Dh = float(Dh)
except (ValueError, TypeError):
return "Error: Dh must be a number."
if Dh <= 0:
return "Error: Dh must be positive."
if fd is not None:
try:
fd = float(fd)
except (ValueError, TypeError):
return "Error: fd must be a number."
if fd <= 0:
return "Error: fd must be positive."
result = fluids_round_edge_grill(alpha=alpha, l=l, Dh=Dh, fd=fd)
if result != result or result in (float('inf'), float('-inf')):
return "Error: Result is not finite."
return float(result)
except Exception as e:
return f"Error: {str(e)}"Online Calculator
RND_EDGE_MESH
Computes the pressure-loss coefficient K for rounded-edge open mesh and net geometries using empirical subtype-specific correlations based on open-area fraction.
For each supported subtype, K is modeled as a quadratic function of blockage (1-\alpha):
K = a(1-\alpha) + b(1-\alpha)^2
where coefficients (a,b) depend on mesh pattern. An inclination-angle correction is then applied relative to approach flow, with valid correlation guidance near high openness (typically 0.85 \leq \alpha \leq 1).
Excel Usage
=RND_EDGE_MESH(alpha, mesh_type, angle)
alpha(float, required): Fraction of net/screen open to flow, [-]mesh_type(str, optional, default: “diamond pattern wire”): Type of mesh patternangle(float, optional, default: 0): Angle of inclination (0 = straight, 90 = parallel to flow), [degrees]
Returns (float): Loss coefficient K, [-], or error message (str) if input is invalid.
Example 1: Diamond pattern wire (alpha=0.96)
Inputs:
| alpha |
|---|
| 0.96 |
Excel formula:
=RND_EDGE_MESH(0.96)
Expected output:
0.02888
Example 2: With angle (alpha=0.96, angle=33)
Inputs:
| alpha | angle |
|---|---|
| 0.96 | 33 |
Excel formula:
=RND_EDGE_MESH(0.96, 33)
Expected output:
0.0203133
Example 3: Round bar screen (alpha=0.9)
Inputs:
| alpha | mesh_type |
|---|---|
| 0.9 | round bar screen |
Excel formula:
=RND_EDGE_MESH(0.9, "round bar screen")
Expected output:
0.097
Example 4: Knotted net (alpha=0.95)
Inputs:
| alpha | mesh_type |
|---|---|
| 0.95 | knotted net |
Excel formula:
=RND_EDGE_MESH(0.95, "knotted net")
Expected output:
0.04725
Python Code
Show Code
from fluids.filters import round_edge_open_mesh as fluids_round_edge_open_mesh
def rnd_edge_mesh(alpha, mesh_type='diamond pattern wire', angle=0):
"""
Calculate the loss coefficient for a round edged open net or screen mesh.
See: https://fluids.readthedocs.io/fluids.filters.html#fluids.filters.round_edge_open_mesh
This example function is provided as-is without any representation of accuracy.
Args:
alpha (float): Fraction of net/screen open to flow, [-]
mesh_type (str, optional): Type of mesh pattern Valid options: Diamond Pattern Wire, Round Bar Screen, Knotted Net, Knotless Net. Default is 'diamond pattern wire'.
angle (float, optional): Angle of inclination (0 = straight, 90 = parallel to flow), [degrees] Default is 0.
Returns:
float: Loss coefficient K, [-], or error message (str) if input is invalid.
"""
try:
# Validate and convert alpha
try:
alpha = float(alpha)
except (ValueError, TypeError):
return "Error: alpha must be a number."
# Validate and convert angle
try:
angle = float(angle)
except (ValueError, TypeError):
return "Error: angle must be a number."
# Validate ranges
if alpha < 0.85 or alpha > 1:
return "Error: alpha must be between 0.85 and 1."
if angle < 0 or angle > 90:
return "Error: angle must be between 0 and 90 degrees."
# Validate mesh_type
valid_types = ['round bar screen', 'diamond pattern wire', 'knotted net', 'knotless net']
if mesh_type not in valid_types:
return f"Error: mesh_type must be one of {valid_types}."
result = fluids_round_edge_open_mesh(alpha=alpha, subtype=mesh_type, angle=angle)
if result != result or result in (float('inf'), float('-inf')):
return "Error: Result is not finite."
return float(result)
except Exception as e:
return f"Error: {str(e)}"Online Calculator
RND_EDGE_SCREEN
Computes the pressure-loss coefficient K for a rounded-edge wire or bar screen as a function of open-area fraction, Reynolds number, and optional inclination angle.
The underlying method uses tabulated empirical data with interpolation over Reynolds number and openness. Over the nominal Reynolds table bounds, endpoint behavior is applied by the source correlation.
The correlation is intended for approximately 0.05 \leq \alpha \leq 0.8, and the resulting K is referenced to the upstream approach velocity.
Excel Usage
=RND_EDGE_SCREEN(alpha, Re, angle)
alpha(float, required): Fraction of screen open to flow, [-]Re(float, required): Reynolds number of flow through screen (D = space between rods), [-]angle(float, optional, default: 0): Angle of inclination (0 = straight, 90 = parallel to flow), [degrees]
Returns (float): Loss coefficient K, [-], or error message (str) if input is invalid.
Example 1: Basic case (alpha=0.5, Re=100)
Inputs:
| alpha | Re |
|---|---|
| 0.5 | 100 |
Excel formula:
=RND_EDGE_SCREEN(0.5, 100)
Expected output:
2.1
Example 2: With angle (alpha=0.5, Re=100, angle=45)
Inputs:
| alpha | Re | angle |
|---|---|---|
| 0.5 | 100 | 45 |
Excel formula:
=RND_EDGE_SCREEN(0.5, 100, 45)
Expected output:
1.05
Example 3: Low Reynolds number (Re=20)
Inputs:
| alpha | Re |
|---|---|
| 0.3 | 20 |
Excel formula:
=RND_EDGE_SCREEN(0.3, 20)
Expected output:
13.1444
Example 4: High Reynolds number (Re=400)
Inputs:
| alpha | Re |
|---|---|
| 0.7 | 400 |
Excel formula:
=RND_EDGE_SCREEN(0.7, 400)
Expected output:
0.541224
Python Code
Show Code
from fluids.filters import round_edge_screen as fluids_round_edge_screen
def rnd_edge_screen(alpha, Re, angle=0):
"""
Calculate the loss coefficient for a round edged wire screen or bar screen.
See: https://fluids.readthedocs.io/fluids.filters.html#fluids.filters.round_edge_screen
This example function is provided as-is without any representation of accuracy.
Args:
alpha (float): Fraction of screen open to flow, [-]
Re (float): Reynolds number of flow through screen (D = space between rods), [-]
angle (float, optional): Angle of inclination (0 = straight, 90 = parallel to flow), [degrees] Default is 0.
Returns:
float: Loss coefficient K, [-], or error message (str) if input is invalid.
"""
try:
# Validate and convert alpha
try:
alpha = float(alpha)
except (ValueError, TypeError):
return "Error: alpha must be a number."
# Validate and convert Re
try:
Re = float(Re)
except (ValueError, TypeError):
return "Error: Re must be a number."
# Validate and convert angle
try:
angle = float(angle)
except (ValueError, TypeError):
return "Error: angle must be a number."
# Validate ranges
if alpha < 0.05 or alpha > 0.8:
return "Error: alpha must be between 0.05 and 0.8."
if Re <= 0:
return "Error: Re must be positive."
if angle < 0 or angle > 90:
return "Error: angle must be between 0 and 90 degrees."
result = fluids_round_edge_screen(alpha=alpha, Re=Re, angle=angle)
if result != result or result in (float('inf'), float('-inf')):
return "Error: Result is not finite."
return float(result)
except Exception as e:
return f"Error: {str(e)}"Online Calculator
SQ_EDGE_GRILL
Computes the pressure-loss coefficient K for square-edge grills, bar screens, or perforated plates from open-area fraction and optional wall-friction correction terms.
The base relation scales with openness as:
K = \frac{0.5(1-\alpha) + (1-\alpha^2)}{\alpha^2}
When thickness, hydraulic diameter, and friction factor are supplied, an added friction-loss term modifies the numerator before division by \alpha^2. The coefficient is referenced to upstream approach velocity.
Excel Usage
=SQ_EDGE_GRILL(alpha, l, Dh, fd)
alpha(float, required): Fraction of grill open to flow, [-]l(float, optional, default: null): Thickness of the grill or plate, [m]Dh(float, optional, default: null): Hydraulic diameter of gap in grill, [m]fd(float, optional, default: null): Darcy friction factor, [-]
Returns (float): Loss coefficient K, [-], or error message (str) if input is invalid.
Example 1: Basic case (alpha=0.45)
Inputs:
| alpha |
|---|
| 0.45 |
Excel formula:
=SQ_EDGE_GRILL(0.45)
Expected output:
5.2963
Example 2: With friction correction (l, Dh, fd provided)
Inputs:
| alpha | l | Dh | fd |
|---|---|---|---|
| 0.45 | 0.15 | 0.002 | 0.0185 |
Excel formula:
=SQ_EDGE_GRILL(0.45, 0.15, 0.002, 0.0185)
Expected output:
12.1481
Example 3: Medium open area (alpha=0.6)
Inputs:
| alpha |
|---|
| 0.6 |
Excel formula:
=SQ_EDGE_GRILL(0.6)
Expected output:
2.33333
Example 4: High open area (alpha=0.8)
Inputs:
| alpha |
|---|
| 0.8 |
Excel formula:
=SQ_EDGE_GRILL(0.8)
Expected output:
0.71875
Python Code
Show Code
from fluids.filters import square_edge_grill as fluids_square_edge_grill
def sq_edge_grill(alpha, l=None, Dh=None, fd=None):
"""
Calculate the loss coefficient for a square edged grill or perforated plate.
See: https://fluids.readthedocs.io/fluids.filters.html#fluids.filters.square_edge_grill
This example function is provided as-is without any representation of accuracy.
Args:
alpha (float): Fraction of grill open to flow, [-]
l (float, optional): Thickness of the grill or plate, [m] Default is None.
Dh (float, optional): Hydraulic diameter of gap in grill, [m] Default is None.
fd (float, optional): Darcy friction factor, [-] Default is None.
Returns:
float: Loss coefficient K, [-], or error message (str) if input is invalid.
"""
try:
# Validate and convert alpha
try:
alpha = float(alpha)
except (ValueError, TypeError):
return "Error: alpha must be a number."
# Validate alpha range
if alpha <= 0 or alpha > 1:
return "Error: alpha must be between 0 and 1."
# Validate and convert optional parameters
if l is not None:
try:
l = float(l)
except (ValueError, TypeError):
return "Error: l must be a number."
if l <= 0:
return "Error: l must be positive."
if Dh is not None:
try:
Dh = float(Dh)
except (ValueError, TypeError):
return "Error: Dh must be a number."
if Dh <= 0:
return "Error: Dh must be positive."
if fd is not None:
try:
fd = float(fd)
except (ValueError, TypeError):
return "Error: fd must be a number."
if fd <= 0:
return "Error: fd must be positive."
result = fluids_square_edge_grill(alpha=alpha, l=l, Dh=Dh, fd=fd)
if result != result or result in (float('inf'), float('-inf')):
return "Error: Result is not finite."
return float(result)
except Exception as e:
return f"Error: {str(e)}"Online Calculator
SQ_EDGE_SCREEN
Computes the pressure-loss coefficient K for square-edge wire screens, bar screens, or perforated plates based on open-area fraction.
The correlation is implemented through interpolation of empirical tabulated values, yielding a monotonic increase in loss as openness decreases.
The resulting coefficient represents head loss relative to the approach velocity upstream of the screen.
Excel Usage
=SQ_EDGE_SCREEN(alpha)
alpha(float, required): Fraction of screen open to flow, [-]
Returns (float): Loss coefficient K, [-], or error message (str) if input is invalid.
Example 1: High open area (alpha=0.99)
Inputs:
| alpha |
|---|
| 0.99 |
Excel formula:
=SQ_EDGE_SCREEN(0.99)
Expected output:
0.008
Example 2: Medium open area (alpha=0.5)
Inputs:
| alpha |
|---|
| 0.5 |
Excel formula:
=SQ_EDGE_SCREEN(0.5)
Expected output:
3.8
Example 3: Low open area (alpha=0.2)
Inputs:
| alpha |
|---|
| 0.2 |
Excel formula:
=SQ_EDGE_SCREEN(0.2)
Expected output:
52
Example 4: Typical screen (alpha=0.7)
Inputs:
| alpha |
|---|
| 0.7 |
Excel formula:
=SQ_EDGE_SCREEN(0.7)
Expected output:
1.1
Python Code
Show Code
from fluids.filters import square_edge_screen as fluids_square_edge_screen
def sq_edge_screen(alpha):
"""
Calculate the loss coefficient for a square edged wire screen, bar screen, or perforated plate.
See: https://fluids.readthedocs.io/fluids.filters.html#fluids.filters.square_edge_screen
This example function is provided as-is without any representation of accuracy.
Args:
alpha (float): Fraction of screen open to flow, [-]
Returns:
float: Loss coefficient K, [-], or error message (str) if input is invalid.
"""
try:
# Validate and convert alpha
try:
alpha = float(alpha)
except (ValueError, TypeError):
return "Error: alpha must be a number."
# Validate alpha range
if alpha <= 0 or alpha > 1:
return "Error: alpha must be between 0 and 1."
result = fluids_square_edge_screen(alpha=alpha)
if result != result or result in (float('inf'), float('-inf')):
return "Error: Result is not finite."
return float(result)
except Exception as e:
return f"Error: {str(e)}"Online Calculator