Skip to content

Fuel Burn Calculations

Tip

This page lists a selection of the fuel burn calculations available in the jetfuelburn package.
For a full list, see the API Reference (Public).

Range Equation

Using the Breguet range equation is perhaps the most well-known approach to computing the range of an aircraft. Of course, the equation can also be solved for the fuel required to fly a given distance.

While mass-after-cruise and range are straightforward inputs, the lift-to-drag ratio (L/D) and specific fuel consumption (TSFC) are often more difficult to obtain.

Note

First, we import the jetfuelburn package and the pint package unit registry. \ All code editors on this page will remember these imports and later variable definitions.

Editor (session: fuel) Run
import jetfuelburn
from jetfuelburn import ureg
from jetfuelburn.rangeequation import calculate_fuel_consumption_breguet

calculate_fuel_consumption_breguet(
    R=2000*ureg.nmi,
    LD=18,
    m_after_cruise=100*ureg.metric_ton,
    v_cruise=800*ureg.kph,
    TSFC_cruise=17*(ureg.mg/ureg.N/ureg.s),
)
Output Clear

Note

For additional information, compare the function documentation: jetfuelburn.rangeequation.calculate_fuel_consumption_breguet

Payload/Range Diagrams

Using payload/range diagrams is another common method for calculating fuel burn of aircraft. This method is particularly popular due to the excellent data availability. After all, the payload/range diagram is a standard feature of aircraft performance manuals.

Editor (session: fuel) Run
from jetfuelburn.diagrams import calculate_fuel_consumption_payload_range

calculate_fuel_consumption_payload_range(
    d=2000*ureg.nmi,
    oew=142.4*ureg.metric_ton,
    mtow=280*ureg.metric_ton,
    range_point_A=500*ureg.nmi,
    payload_point_B=54*ureg.metric_ton,
    range_point_B=5830*ureg.nmi,
    payload_point_C=25*ureg.metric_ton,
    range_point_C=8575*ureg.nmi,
    range_point_D=9620*ureg.nmi,
)
Output Clear

Note

For additional information, compare the function documentation: jetfuelburn.diagrams.calculate_fuel_consumption_payload_range

Reduced-Order Models

Both the range equation and payload/range diagrams cannot capture the full complexity of fuel burn calculations. For example, they do not explicitly consider the impact of climb/descent phases. This is why researchers have developed reduced order models.

These models are based on detailed simulations, using eg. the EUROCONTROL BADA or Piano X software. Both are physics-based models that simulate the fuel-burn of aircraft depending on its flight profile. All reduced-order models used these high-resolution models to compute many data points and then fit a simplified (=reduced order) model to these data points. Some reduced order models have only one variable (eg. range), while others have more (eg. range, payload, altitude, etc.). Below is a selection of models implemented in the jetfuelburn package:

Yanto et al. (2017-2019)

Reduced-order models always offer multiple aircraft, for which simulations were run. The available_aircraft function always returns a list of these aircraft.

Editor (session: fuel) Run
from jetfuelburn.reducedorder import yanto_etal
yanto_etal.available_aircraft()[0:10]
Output Clear

Fuel consumption calculations are then performed using the calculate_fuel_consumption function.

Editor (session: fuel) Run
yanto_etal.calculate_fuel_consumption(
    acft='A321',
    R=2200*ureg.km,
    PL=18*ureg.metric_ton
)
Output Clear

Note

For additional information, compare the function documentation: jetfuelburn.reducedorder.yanto_etal

Seymour et al. (2019)

Warning

Note that Seymour et al. use "average weights" for every aircraft. The only variable input is therefore the aircraft range.

Editor (session: fuel) Run
from jetfuelburn.reducedorder import seymour_etal
seymour_etal.calculate_fuel_consumption(
    acft='A321',
    R=2200*ureg.km,
)
Output Clear

Note

For additional information, compare the function documentation: jetfuelburn.reducedorder.seymour_etal

Lee et al. (2010)

Warning

Note that Lee et al. use weight [N] instead of mass [kg] as input.

Editor (session: fuel) Run
from jetfuelburn.reducedorder import lee_etal
lee_etal.calculate_fuel_consumption(
    acft='B732',
    W_E=265825*ureg.N,
    W_MPLD=156476*ureg.N,
    W_MTO=513422*ureg.N,
    W_MF=142365*ureg.N,
    S=91.09*ureg.m ** 2,
    C_D0=0.0214,
    C_D2=0.0462,
    c=(2.131E-4)/ureg.s,
    h=9144*ureg.m,
    V=807.65*ureg.kph,
    d=2000*ureg.nmi
)
Output Clear

Note

For additional information, compare the function documentation: jetfuelburn.reducedorder.lee_etal

AIM2025 (from 2015)

Warning

Note that the AIM2015 model uses 'representative' aircraft (in different size classes) instead of specific aircraft types. See the function documentation for a list of available size classes.

Editor (session: fuel) Run
from jetfuelburn.reducedorder import aim2015
aim2015.calculate_fuel_consumption(
    acft_size_class=8,
    D_climb=300*ureg.km,
    D_cruise=(15000-300-200)*ureg.km,
    D_descent=200*ureg.km,
    PL=55.5*ureg.metric_ton
)
Output Clear

Note

For additional information, compare the function documentation: jetfuelburn.reducedorder.aim2015

Helper Functions (Aerodynamics/Atmospheric Physics)

The jetfuelburn package also includes helper functions for basic atmospheric physics problems. Some reduced-order models call these internally - but they can also be used independently.

Editor (session: fuel) Run
from jetfuelburn.utility.physics import _calculate_airspeed_from_mach
_calculate_airspeed_from_mach(
    mach_number=0.8,
    altitude=10000*ureg.m
)
Output Clear