GeneralFlowEnvironment¶
- class acoular.environments.GeneralFlowEnvironment¶
Bases: acoular.environments.Environment
An acoustic environment with a generic flow field.
This class provides the facilities to calculate the travel time (distances) between grid point locations and microphone locations in a generic flow field with non-uniform velocities that depend on the location. The algorithm for the calculation uses a ray-tracing approach that bases on rays cast from every microphone position in multiple directions and traced backwards in time. The result is interpolated within a tetrahedal grid spanned between these rays.
- ff = Trait(FlowField, desc="flow field")¶
The flow field, must be of type :class:FlowField
- N = Int(200, desc="number of rays per Om")¶
Number of rays used per solid angle \(\Omega\), defaults to 200.
- Om = Float(pi, desc="maximum solid angle")¶
The maximum solid angle used in the algorithm, defaults to \(\pi\).
- r(c, gpos, mpos=0.0)¶
Calculates the virtual distances between grid point locations and microphone locations or the origin. These virtual distances correspond to travel times of the sound along a ray that is traced through the medium.
Parameters: c : float
The speed of sound to use for the calculation.
gpos : array of floats of shape (3, N)
The locations of points in the beamforming map grid in 3D cartesian co-ordinates.
mpos : array of floats of shape (3, M), optional
The locations of microphones in 3D cartesian co-ordinates. If not given, then only one microphone at the origin (0, 0, 0) is considered.
Returns: array of floats
The distances in a twodimensional (N, M) array of floats. If M==1, then only a onedimensional array is returned.