public int ExportSweep(CelestialBody body, double pitch, int flapSetting, bool spoilers) { if (!IsReady()) { return(0); } FARAeroUtil.UpdateCurrentActiveBody(body); FARAeroUtil.ResetEditorParts(); StaticAnalysisExportFile exportdata = new StaticAnalysisExportFile(); InstantConditionSimInput input = new InstantConditionSimInput(0, 0, 0, 0, 0, 0, FlightEnv.NewDefaultVal(body), pitch, flapSetting, spoilers); InstantConditionSimOutput output; Vector3d centerofmass = _instantCondition.GetCoM(); // Loop through each combination (two dimensions). foreach (float mach in exportdata.MachNumberList) { input.fltenv.MachNumber = mach; input.alpha = 0; // zero is used as a neutral value for the reset _instantCondition.ResetClCdCmSteady(centerofmass, input); // reset old results (particularly cossweep) that may not reflect the current mach number foreach (float aoadeg in exportdata.AoADegreeList) { input.alpha = aoadeg; _instantCondition.GetClCdCmSteady(input, out output, true, true); exportdata.AddDatapoint(mach, aoadeg, output.Cl, output.Cd, output.Cm); } } exportdata.Export(); return(exportdata.DataCount); }
public InstantConditionSimVars(InstantConditionSim parent, CelestialBody body, double altitude, double machNumber, double neededCl, double beta, double phi, int flap, bool spoilers) { this.parent = parent; this.neededCl = neededCl; this.CoM = parent.GetCoM(); FlightEnv fltenv = FlightEnv.NewSim(body, altitude, machNumber); iterationInput = new InstantConditionSimInput(0, beta, phi, 0, 0, 0, fltenv, 0, flap, spoilers); iterationOutput = new InstantConditionSimOutput(); }