Example #1
0
# # Chordwise normalised frequency = k0*(2*b)
# kc = 5      # approx 1.8 kHz
kc = 10      # approx 3.6 kHz
# kc = 20     # approx 7.2 kHz

# frequency [Hz]
f0 = kc*c0/(2*np.pi*(2*b))

FreqVars = AmT.FrequencyVars(f0, DARP2016Setup)
(k0, Kx, Ky_crit) = FreqVars.export_values()

# %% *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
# Calculate airfoil acoustic source strength CSM

# vector of spanwise gust wavenumbers
Ky =  AmT.ky_vector(b, d, k0, Mach, beta)

# Turbulence spectrum (von Karman)
Phi2 = AmT.Phi_2D(Kx, Ky, Ux, turb_intensity, length_scale, model='K')[0]

# calculate source CSM
Sqq, Sqq_dxy = AmT.calc_airfoil_Sqq(DARP2016Setup, DARP2016Airfoil, FreqVars, Ky, Phi2)

# apply weighting for airfoil grid areas
Sqq *= Sqq_dxy

# %% *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
# Create mic array CSM

# create fwd transfer function
G_fwd = AmT.dipole_shear(XYZ_airfoil_calc, XYZ_array, XYZ_sl_fwd, T_sl_fwd, k0,
# Create arc of far field points for directivity measurements

R_farfield = 50  # far-field mic radius [m]
M_farfield = 181  # number of far-field mics in arc

theta_farfield = np.linspace(-np.pi / 2, np.pi / 2, M_farfield)
x_farfield = R_farfield * np.sin(theta_farfield)
z_farfield = -R_farfield * np.cos(theta_farfield)

XZ_farfield = np.array([x_farfield, np.zeros(x_farfield.shape), z_farfield])
YZ_farfield = np.array([np.zeros(x_farfield.shape), x_farfield, z_farfield])

# %% *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

# vector of spanwise hydrodynamic gusts 'Ky' (for acoustic radiation)
Ky = AmT.ky_vector(b, d, k0, Mach, beta, method='AcRad')

# turbulent velocity spectrum
Phi2 = AmT.Phi_2D(Kx, Ky, Ux, turb_intensity, length_scale, model='K')[0]

# calculate source CSM
Sqq, Sqq_dxy = AmT.calc_airfoil_Sqq(DARP2016Setup, DARP2016Airfoil, FreqVars,
                                    Ky, Phi2)

# apply airfoil grid area weighting to source CSM
Sqq *= Sqq_dxy

# %% *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
# chordwise and spanwise directivities (PSDs)
Spp_Xdir = np.zeros((M_farfield, ), 'complex')
Spp_Ydir = np.zeros((M_farfield, ), 'complex')