Overview

This program allows to estimate trailing edge noise for an isolated airfoil or a rotating airfoil. It accompanies the paper "Trailing Edge Noise for Rotating Blades" by Sinayoko, Kingan and Agarwal in 2013 (to be published in the Proceedings of the Royal Society A).

Contact: Samuel Sinayoko <s.sinayoko AT eng.cam.ac.uk> or Anurag Agarwal <aa406 AT cam.ac.uk>

The code is written in Python. It has been run using the free Anaconda Python Distribution from ContinuumIO.

Mercurial repository.

Installation

Cloud computing

The code is pre-installed in the cloud as an IPython notebook.

It can be run and modified on Wakari. This requires setting up a free account which should take two minutes maximum.

Desktop computer

The paper was produced using Anaconda 1.5.0 (64-bit) with Python 2.7 from ContinuumIO, which includes:

  • Numpy 1.7.1
  • Scipy 0.12.0
  • Matplotlib 1.2.1

Other depdencies for producing the figures used in the paper:

  • Asymptote 2.1.5
  • Docopt 0.6.1 (python command line package)
  • Scons v1.2.0 (a modern make)

The code for generating the results is in the IPython notebook figs_proceedings.ipynb. The actual figures in the paper have been produced using version 2.15 of Asymptote. Once asymptote has been installed, it can be activated in the notebook by setting ASYPLOT to True.

Usage

The IPython notebook figs_proceedigns.ipynb can be used for generating and exploring the figures of the paper. The notebook is convenient for interactive work.

$ ipython notebook --pylab=inline --script

Alternatively the scripts directivity.py and aclift.py can be used from the command line for generating figures 5, 8 and 9 of the paper. This is the approach that was used for the producing the published figures.

$ python directivity.py --help
$ python aclift.py --help

Paper

The paper source and figures are in the folder paper. The paper can be reproduced as follows:

$ cd ~/tmp/
$ clone ssh://hg@bitbucket.org/sinayoko/trailing-edge-noise-for-rotating-blades && cd trailing-edge-noise-for-rotating-blades
$ easy_install docopt
$ easy_install scons
$ scons

Code organisation

  • The main library is in fdanoise.
  • The library contains two submodules fdanoise.isolated and fdanoise.rotating, that implement the formulations for a fixed airfoil and a rotating airfoil respectively.

Isolated airfoil

  • Amiet's formulation for an isolated airfoil lives in fdanoise.isolated.amiet
  • The source (incoming pressure fluctuations near the trailin edge) is modelled in fdanoise.isolated.force_spectrum
  • The transfer function from source to observer is modelled in fdanoise.isolated.acoustic_lift.
  • The notebook that validates the implementation of these formulations is isolated_scripts.ipynb. Some of its results requires to run the model of Brooks, Pope and Marcolini which can be installed by running "make" in folder fdanoise/isolated/brooks.

Rotating airfoil

  • The formulation of Schlinker and Amiet for a rotating airfoil is implemented in fdanoise.rotating.schlamiet.
  • The formulation of Sinayoko, Kingan and Agarwal is implemented in fdanoise.rotating.singawal.