# GeneralFlowEnvironment¶

class acoular.environments.GeneralFlowEnvironment

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 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. array of floats The distances in a twodimensional (N, M) array of floats. If M==1, then only a one-dimensional array is returned.