Ejemplo n.º 1
0
        /// <exception cref="ArgumentException">Invalid vertical mode.</exception>
        private double FuelFlow(double grossWt, VerticalMode mode)
        {
            switch (mode)
            {
            case VerticalMode.Climb:
                return(fuelData.ClimbFuelFlow(grossWt));

            case VerticalMode.Cruise:
                return(fuelData.CruiseFuelFlow(grossWt));

            case VerticalMode.Descent:
                return(fuelData.DescentFuelFlow(grossWt));

            default:
                throw new ArgumentException();
            }
        }
Ejemplo n.º 2
0
        public static double EstimatedAvgWt(this FuelDataItem item,
                                            double distance, double landingWt)
        {
            double    grossWt   = landingWt;
            const int iteration = 2;

            for (int i = 0; i < iteration; i++)
            {
                var alt  = item.OptCruiseAlt(grossWt);
                var ktas = Ktas(item.CruiseKias(grossWt), alt);
                var time = distance / ktas * 60.0;
                var ff   = item.CruiseFuelFlow(grossWt);
                grossWt = landingWt + ff * time / 2.0;
            }

            return(grossWt);
        }