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(); } }