Source code for seapy.components.acoustical
"""
Acoustical component
--------------------
This is an abstract base class for acoustical components.
"""
import numpy as np
from .component import Component
[docs]class ComponentAcoustical(Component):
"""Abstract base class for acoustical components.
"""
availableSubsystems = ['Long']
volume = None
@property
[docs] def pressure(self):
"""Pressure within the component :math:`p_{component}`.
:rtype: :class:`numpy.ndarray`
This is the sum of all subsystems velocities.
"""
return sum(subsystem.pressure for subsystem in self.linked_subsystems)
@property
[docs] def pressure_level(self):
"""
Sound pressure level :math:`L_p`.
:rtype: :class:`numpy.ndarray`
.. seealso:: :attr:`seapy.subsystems.subsystemacoustical.SubsystemAcoustical`
.. math:: L_p = 20 \\log_{10}{\\left( \\frac{p}{p_0} \\right)}
.. seealso:: :attr:`seapy.system.System.reference_pressure`
"""
return 20.0 * np.log10(self.pressure / self.system.reference_pressure)