pyva.systems.infiniteLayers.PerforatedLayer
- class pyva.systems.infiniteLayers.PerforatedLayer(thickness, hole_radius, fluid=Fluid(c0=343.0, rho0=1.23, eta=0.01), pattern='square', alpha=2.0, **kwargs)
Bases:
ResistiveLayer
The PerforatedLayer class deals perforated layers in acoustic networks
The behaviour is calculated using flow throught the holes and radiation be the disk radiator pattern
- thickness
thickness of the perforted layer
- Type:
float
- pattern
identifier for hole pattern (quadradic, triangular, )
- Type:
str
- hole_radius
radius of the holes in the membrane
- Type:
float
- porosity
area ratio of holes to totalsurface
- Type:
float
- fluid
fluid in the hole
- Type:
fluid
- alpha
correction constant for resistivity correction approx 4.-2. for sharp to round edges
- Type:
float
- area mass
area mass, when > 0 the perforate is considered as limp
- Type:
float
- __init__(thickness, hole_radius, fluid=Fluid(c0=343.0, rho0=1.23, eta=0.01), pattern='square', alpha=2.0, **kwargs)
Class contructor for PerforatedLayer
- Parameters:
thickness (float) – thickness of the perforted layer
hole_radius (float) – radius of the holes in the membrane
fluid (fluid) – fluid in the hole. The default is visc_air.
pattern (str) – identifier for hole pattern (‘square’,triangular’’,). The default is ‘square’.
alpha (float) – correction constant for resistivity correction approx 4.-2. for sharp to round edges: The default is 2.
**kwargs (dict) – arbitrary keyword parameter list
distance (float) – distance between holes
porosity (float) – surface porosity of perforate
- Return type:
None.
Methods
__init__
(thickness, hole_radius[, fluid, ...])Class contructor for PerforatedLayer
get_xdata
(omega, kx)Determine the appropriate xdata from omega and kx.
plot
(omega, **kwargs)Plots the transfer impedance for the related part
transfer_impedance
(omega[, kx, ID])Transferimpedance of perforateLayer
Attributes
Determine if layer is of type equivalent fluid
porosity parameter
visc_air
- static get_xdata(omega, kx)
Determine the appropriate xdata from omega and kx.
Infinite Layer theory often involves integration over wavenumber. Thus, the kx is the integration variable.
If omega is scalar xdata will be wavenumber in x (kx) if kx is scalar xdata will be angular frequency if kx and omega have same dimension it is assumed that kx belongs to a constant angle and is given by kx = omega/c0*sin(theta) and xdata will be angular frequency
- Parameters:
omega (float or ndarray) – angular frequency
kx (float or ndarray) – wavenumber
- Returns:
wavenumber or omega as DataAxis object
- Return type:
- property isequivalentfluid
Determine if layer is of type equivalent fluid
Defauls parameter is True
- Returns:
True.
- Return type:
bool
- plot(omega, **kwargs)
Plots the transfer impedance for the related part
- Parameters:
omega (float) – angular frequency.
fig (int, optional) – figure ID. The default is 1.
**kwargs (dict) – Arbitrary keyword parameter list passed to Signal.plot.
- Return type:
None.
- property porosity
porosity parameter
- Return type:
None.
- transfer_impedance(omega, kx=0, ID=[1, 2])
Transferimpedance of perforateLayer
The transferimpedance is caluclated based on the lumped_acoustic model, because it is independent from the kx
- Parameters:
omega (float or ndarray) – scalar angular frequency
kx (float or ndarray, optional) – In-plane wavenumber. The default is 0.
ID (list of int, optional) – Left and right when overwritten, None takes object ID. The default is None.
- Returns:
[2 x 2] array of transferimpedance
- Return type: