package uk.co.flyingsquirrels.aero;
import flanagan.interpolation.CubicSpline;
/**
* Interpolates data from an AirfoilTable
*/
public class Airfoil {
private final CubicSpline cl;
private final CubicSpline cd;
private final CubicSpline cm;
private final AirfoilTable table;
public Airfoil(AirfoilTable table) {
this.table = table;
double[] alpha = table.getAlpha();
cl = createSpline(alpha, table.getCl());
cd = createSpline(alpha, table.getCd());
cm = createSpline(alpha, table.getCm());
}
private CubicSpline createSpline(double[] alpha, double[] cy) {
CubicSpline spline = new CubicSpline(alpha, cy);
spline.calcDeriv();
return spline;
}
public double getCl(double alpha) {
return cl.interpolate(alpha);
}
public double getCd(double alpha) {
return cd.interpolate(alpha);
}
public double getCm(double alpha) {
return cm.interpolate(alpha);
}
public String getName() {
return table.getName();
}
public long getReynolds() {
return table.getReynolds();
}
}