GSoC/GCI Archive
Google Code-in 2014 BRL-CAD

NACA Airfoils Code - Verify C++ Conversion (Depends on #4)

completed by: Andromeda Galaxy

mentors: Gauravjeet Singh, Ch3ck

The NACA airfoils are airplane wing shapes developed by the National Advisory Committee for Aeronautics (NACA). These shapes are described by a series of digits, which are translated into actual shapes by a series of computer programs. These programs date back several decades, and were written in Fortran.

BRL-CAD's interest in this code is as a possible means of procedurally generating wing geometry in BRL-CAD models, but we would prefer to have the shape generating logic in one of BRL-CAD's standard languages - C or C++. The target code for this effort is a modernization of older NACA codes by Ralph Carmichael called naca456.

The initial conversion will attempt to precisely reproduce the functionality as currently expressed in the Fortran code - any more elaborate reworking of the logic will be evaluated after we have a C/C++ version that reproduces the Fortran outputs correctly.

This task depends on the successful completion of tasks #1 - #4 - this file makes use of the files from those tasks. Students shouldn't claim (and mentors shouldn't assign) this task until the others are complete.

Your task involves the following steps:

  1. Download and build the original naca456 from http://www.pdas.com/naca456download.html
  2. Verify that the samples at http://www.pdas.com/naca456samples.html work correctly with the original naca456
  3. Check out the git repository: git clone https://github.com/starseeker/naca
  4. Build the C++ naca456 (cd naca; mkdir build; cd build; cmake ..; make)
  5. Repeat the tests performed with the original naca456 using the new C++ version.
  6. Compare the outputs and make note of any differences.
  7. Correct the C++ code to make the new outputs, if any differences are observed.
  8. Submit any necessary patches, either to the task or via a github pull request if you prefer to work in a git fork.

References:

  • http://www.pdas.com/naca456.html
  • https://github.com/starseeker/naca