Acoular 16.5 documentation


«  UniformFlowEnvironment   ::   environments   ::   FlowField  »


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.


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.


array of floats

The distances in a twodimensional (N, M) array of floats. If M==1, then only a onedimensional array is returned.

«  UniformFlowEnvironment   ::   environments   ::   FlowField  »