pyva.systems.acoustic3Dsystems.RectangularRoom
- class pyva.systems.acoustic3Dsystems.RectangularRoom(ID, Lx, Ly, Lz, fluid, absorption_area=0.0, damping_type=['eta'])
Bases:
Acoustic3DSystem
This class deals with three dimensional, rectangular rooms filled with fluid
Practical cavities are rarely. This class is applied in chapters 4 and 6 [Pei2022] for demonstration of complex and random systems.
- Lx
Room length in x-direction
- Type:
float
- Ly
Room width in y-direction
- Type:
float
- Lz
Room height in z-direction
- Type:
float
- fluid
fluid in the room
- Type:
fluid
- __init__(ID, Lx, Ly, Lz, fluid, absorption_area=0.0, damping_type=['eta'])
Class contructor for acoustic tube
- Parameters:
Lx (float) – Room length in x-direction
Ly (float) – Room width in y-direction
Lz (float) – Room height in z-direction
fluid (Fluid) – fluid in the room
absorption_area (float or function, optional) – cumulative absorption area. The default is 0..
damping_type (list of str, optional) – damping type identifier. The default is [‘eta’,].
Methods
Z_rect
(omega, y0, y1, z0, z1, N)Mechanical radiation impedance of rectangular piston
__init__
(ID, Lx, Ly, Lz, fluid[, ...])Class contructor for acoustic tube
absorption_area
(omega)Absorption area of cavity
damping_loss
(omega[, wave_DOF])Damping loss of cavity SEA systemns
estimated_mode_count
(omega)Number of mode estimation
f_mode
(n)modal frequency of mode n
green_modal
(omega, r, r0[, N, source, Bnn])Modal Green function of room
isSIF
()Checks if system is a semi infinite fluid
iscavity
()Check if SEA system is a cavity
isplate
()Checks if system is a plate
Squared modal wavenumber of mode n
mechanical_point_impedance
(omega, r0, N, S)Modal mechanical point impedance
modal_density
(omega[, wave_DOF])Modal density estimation
modal_density_precise
(omega)Exact modal density
modal_impedance_rectangular
(omega, y0, y1, ...)Mechanical radiation impedance of rectangular piston
modal_overlap
(omega[, wave_DOF])Modal overlap
mode_count
(omegaVec)Exact number count
modes_in_band
(omega[, wave_DOF, btype])Modes in band of cavity system
omega_mode
(n)modal angular frequency of mode n
p_mode
(r, n)Modal pressure shape for room with rigid walls
physical_unit
(omega, energy)Physical unit pressure calculated from system energy
pms_modal_random
(omega[, Q, As])Mean square pressure for diffuse wave field
radiation_point_impedance
(omega, r0, N[, Bnn])Radiation point impedance
surfint
(y0, y1, z0, z1, n)Surface integral required for rectangluar piston
Attributes
unique ID of SEA system
Number of wave field in physical SEA system
- property ID
unique ID of SEA system
- Returns:
ID of SEA system
- Return type:
int
- property N_wave_fields
Number of wave field in physical SEA system
Some physical SEA systems are constituted by several wave fields that can be considered as single SEA systems or reverberant fields. This method shall provide the number of wave field that are used
- Returns:
Number of wave fields.
- Return type:
int
- Z_rect(omega, y0, y1, z0, z1, N)
Mechanical radiation impedance of rectangular piston
- Parameters:
y0 (float) – minimum y-coodinate of piston
y1 (float) – maximum y-coodinate of piston
z0 (float) – minimum z-coodinate of piston
z1 (float) – maximum z-coodinate of piston
omega (float) – angular frequency vector
N (tuple of int) – maximal mode number N = (Nx,Ny,Nz)
- Return type:
Mechanical impedance
- absorption_area(omega)
Absorption area of cavity
In case of constant absorption area the frequency paramter is ignored.
- Parameters:
omega (float) – angular frequency
- Return type:
absorption area
- damping_loss(omega, wave_DOF=0)
Damping loss of cavity SEA systemns
- Parameters:
omega (float) – frequency
wave_DOF (int) – dummy argument (to full fill SEA class requirements)
- estimated_mode_count(omega)
Number of mode estimation
- Parameters:
omega (float) – angular frequency
- Return type:
Number of modes below omega
- f_mode(n)
modal frequency of mode n
- Parameters:
n (tuple of int) – (nx,ny,nz) tupel of mode number
- Return type:
modal frequency
- green_modal(omega, r, r0, N=(50, 50, 50), source=1, Bnn=<function RectangularRoom.<lambda>>)
Modal Green function of room
- Parameters:
r (tuple of float) – receiver location r = (x,y,z)
r0 (tuple of float) – source location r0 = (x0,y0,z0)
N (tuple of int) – (Nx,Ny,Nz) tupel of maximal mode number
Bnn (function of mode index tuple) – modal damping loss factor
Returns – Modal approximation of Green function
- isSIF()
Checks if system is a semi infinite fluid
Sets default to False, so only one method must be implemented in daugther class
- Returns:
True if system is a SIF (must be overloaded).
- Return type:
bool
- iscavity()
Check if SEA system is a cavity
- Returns:
True.
- Return type:
bool
- isplate()
Checks if system is a plate
Sets default to False, so only one method must be implemented in daugther class
- Returns:
True if system is a plate (must be overloaded).
- Return type:
bool
- k_mode_square(n)
Squared modal wavenumber of mode n
- Parameters:
n (tuple of int) – (nx,ny,nz) tupel of mode number
- Return type:
squared modal wavenumber
- mechanical_point_impedance(omega, r0, N, S)
Modal mechanical point impedance
This method requires a suface S to create a force from the acoustic impedance following from the Green function
- Parameters:
omega (float) – angular frequency
r0 (tuple of float) – source location r0 = (x0,y0,z0)
N (tuple of int) – (Nx,Ny,Nz) tuple of maximal mode number
- Return type:
Mechancal point impedance from modal approximation
- modal_density(omega, wave_DOF=0)
Modal density estimation
- Parameters:
omega (float) – angular frequency
wave_DOF (int) – wave degree of freedom. Default is 0.
- Return type:
Modal density
- modal_density_precise(omega)
Exact modal density
This method derives the modal density by counting modes in given bands
- Parameters:
omega (ndarray) – angular frequency vector
- Return type:
Modal density vector
- modal_impedance_rectangular(omega, y0, y1, z0, z1, n)
Mechanical radiation impedance of rectangular piston
- Parameters:
y0 (float) – minimum y-coodinate of piston
y1 (float) – maximum y-coodinate of piston
z0 (float) – minimum z-coodinate of piston
z1 (float) – maximum z-coodinate of piston
omega (float) – angular frequency vector
n (tuple of int) – mode number n = (nx,ny,nz)
- Return type:
Modal impedance for mode n
- modal_overlap(omega, wave_DOF=0)
Modal overlap
Absorption area and fluid damping is considered
- Parameters:
omega (ndarray) – angular frequency vector
- Return type:
Modal overlap
- mode_count(omegaVec)
Exact number count
This method counts modes until angular limit frequencies
- Parameters:
omegaVec (ndarray) – angular frequency vector
- Return type:
Mode count vector
- modes_in_band(omega, wave_DOF=0, btype='oct')
Modes in band of cavity system
- Parameters:
omega (float) – angular frequency
btype (str) – type of band ‘oct’ for factored steps and ‘lin’ for linear steps
- Return type:
modes in band
- omega_mode(n)
modal angular frequency of mode n
- Parameters:
n (tuple of int) – (nx,ny,nz) tupel of mode number
- Return type:
modal angular frequency
- p_mode(r, n)
Modal pressure shape for room with rigid walls
Implementation of simple recangular room model
- Parameters:
r (list or tuple of float) – (x,y,z) room coodinates
n (int) – number of mode
- Return type:
pressure distribution of mode
- physical_unit(omega, energy)
Physical unit pressure calculated from system energy
- Parameters:
omega (ndarray) – angular frequency
- Return type:
rms pressure
- pms_modal_random(omega, Q=1, As=0)
Mean square pressure for diffuse wave field
Simple 1-system SEA cavity model for demonstration purpose mainly.
- Parameters:
omega (angular frequency) – Q: source strength As: absorption area
- Return type:
mean square pressure
- radiation_point_impedance(omega, r0, N, Bnn=<function RectangularRoom.<lambda>>)
Radiation point impedance
- Parameters:
omega (float) – angular frequency
r0 (tuple of float) – source location (x0,y0,z0)
N (tuple of int) – (Nx,Ny,Nz) tuple of maximal mode number
Bnn (function) – modal damping loss factor
- Return type:
acoustical point impedance from modal approximation
- surfint(y0, y1, z0, z1, n)
Surface integral required for rectangluar piston
Integral implementation of equation (4.92) from [Pei2022]
- Parameters:
y0 (float) – minimum y-coodinate of piston
y1 (float) – maximum y-coodinate of piston
z0 (float) – minimum z-coodinate of piston
z1 (float) – maximum z-coodinate of piston
omega (float) – angular frequency vector
n (tuple of int) – mode number n = (nx,ny,nz)
- Return type:
integral value