public class NACA4Uncambered extends java.lang.Object implements Airfoil
This class represents an arbitrary uncambered NACA 4 digit airfoil section such as a NACA 0012 airfoil. The 1st two digits indicate a symmetric airfoil, the 2nd two, the thickness to chord ratio. All NACA 4 and 5 digit (and 16 series and mod-4 digit) airfoils inherit from this class the generic code for generating airfoil ordinates.
Ported from FORTRAN "NACA4.FOR" to Java by: Joseph A. Huwaldt, October 8, 2000
Original FORTRAN "NACA4" code had the following note:
AUTHORS - Charles L.Ladson and Cuyler W. Brooks, NASA Langley Liam Hardy, NASA Ames Ralph Carmichael, Public Domain Aeronautical Software Last FORTRAN version: 8Aug95 1.7 RLC NOTES - This program has been known by the names ANALIN, FOURDIGIT and NACA4. REFERENCES- NASA Technical Memorandum TM X-3284 (November, 1975), "Development of a Computer Program to Obtain Ordinates for NACA 4-Digit, 4-Digit Modified, 5-Digit and 16-Digit Airfoils", by Charles L. Ladson and Cuyler W. Brooks, Jr., NASA Langley Research Center. NASA Technical Memorandum TM 4741 (December 1996), "Computer Program to Obtain Ordinates for NACA Airfoils", by Charles L. Ladson, Cuyler W. Brooks, Jr., and Acquilla S. Hill, NASA Langley Research Center and Darrell W. Sproles, Computer Sciences Corporation, Hampton, VA. "Theory of Wing Sections", by Ira Abbott and Albert Von Doenhoff.
Modified by: Joseph A. Huwaldt
Modifier and Type | Class and Description |
---|---|
protected class |
NACA4Uncambered.Ordinate
Class that serves as a simple container for airfoil ordinate data.
|
Modifier and Type | Field and Description |
---|---|
protected static double |
BIG |
protected java.util.List<java.awt.geom.Point2D> |
camberLine |
protected double |
chord
Chord length.
|
protected static double |
EPS |
protected java.util.List<java.awt.geom.Point2D> |
lower |
protected double |
TOC
Thickness-to-Chord Ratio
|
protected java.util.List<java.awt.geom.Point2D> |
upper |
protected double |
xMaxT
Chord location of maximum thickness.
|
protected java.util.List<java.lang.Double> |
yLp |
protected java.util.List<java.lang.Double> |
yUp |
Constructor and Description |
---|
NACA4Uncambered()
Creates an uncambered NACA 4 digit airfoil with a
thickness to chord ratio of 20% and a chord length of 1.0.
|
NACA4Uncambered(double thickness,
double length)
Create an uncambered NACA 4 digit airfoil with the
specified parameters.
|
Modifier and Type | Method and Description |
---|---|
protected double |
calcCamber(double x,
NACA4Uncambered.Ordinate o)
Method to calculate the camber distribution for the airfoil.
|
protected void |
calcLESlope(NACA4Uncambered.Ordinate o)
Method to determine the local slope of the airfoil at
the leading edge.
|
protected void |
calcOrdinateAft(double x,
NACA4Uncambered.Ordinate o)
Method to calculate the ordinate of the uncambered airfoil
aft of the maximum thickness point.
|
protected void |
calcOrdinateForward(double x,
NACA4Uncambered.Ordinate o)
Method to calculate the ordinate of the uncambered airfoil
forward of the maximum thickness point.
|
java.util.List<java.awt.geom.Point2D> |
getCamber()
Returns a list of points containing the camber line of the airfoil.
|
java.util.List<java.awt.geom.Point2D> |
getLower()
Returns a list of points containing the abscissas (X coordinate) and
ordinates (Y coordinate) of the points defining the lower surface of the airfoil.
|
java.util.List<java.lang.Double> |
getLowerYp()
Returns a list containing the slope (dy/dx) of the lower
surface of the airfoil at each ordinate.
|
java.util.List<java.awt.geom.Point2D> |
getUpper()
Returns a list of points containing the abscissas (X coordinate) and
ordinates (Y coordinate) of the points defining the upper surface of the airfoil.
|
java.util.List<java.lang.Double> |
getUpperYp()
Returns a list containing the slope (dy/dx) of the upper
surface of the airfoil at each ordinate.
|
static void |
main(java.lang.String[] args)
Simple method to test this class.
|
java.lang.String |
toString()
Returns a string representation of this airfoil
(the NACA designation of this airfoil).
|
protected static final double EPS
protected static final double BIG
protected double xMaxT
protected double TOC
protected double chord
protected transient java.util.List<java.awt.geom.Point2D> upper
protected transient java.util.List<java.awt.geom.Point2D> lower
protected transient java.util.List<java.awt.geom.Point2D> camberLine
protected transient java.util.List<java.lang.Double> yUp
protected transient java.util.List<java.lang.Double> yLp
public NACA4Uncambered()
public NACA4Uncambered(double thickness, double length)
thickness
- The thickness to chord ratio (e.g.: 0.20 ==> 20% t/c).length
- The chord length.public java.util.List<java.awt.geom.Point2D> getUpper()
public java.util.List<java.awt.geom.Point2D> getLower()
public java.util.List<java.awt.geom.Point2D> getCamber()
public java.util.List<java.lang.Double> getUpperYp()
getUpperYp
in interface Airfoil
public java.util.List<java.lang.Double> getLowerYp()
getLowerYp
in interface Airfoil
public java.lang.String toString()
toString
in class java.lang.Object
protected void calcLESlope(NACA4Uncambered.Ordinate o)
o
- The ordinate data structure. The following are set: tanth, yp, ypp.protected void calcOrdinateForward(double x, NACA4Uncambered.Ordinate o)
x
- The x/c location currently being calculated.o
- The ordinate data structure. The following are set: y, yp, ypp.protected void calcOrdinateAft(double x, NACA4Uncambered.Ordinate o)
x
- The x/c location currently being calculated.o
- The ordinate data structure. The following are set: y, yp, ypp.protected double calcCamber(double x, NACA4Uncambered.Ordinate o)
x
- The x/c location currently being calculated.o
- The ordinate data structure. The following are set: yCMB, tanth, thp.public static void main(java.lang.String[] args)