pycontrails.models.emissions.black_carbon¶
Non-volatile particulate matter (nvPM) calculations.
Functions
|
Calculate the air-to-fuel ratio at cruise conditions via Abrahamson's method. |
|
Calculate the black carbon mass concentration for cruise conditions ( |
|
Calculate the black carbon mass concentration for ground conditions ( |
Calculate the BC mass concentration for ground and cruise conditions with ImFOX methodology. |
|
|
Calculate the black carbon mass emissions index. |
|
Estimate scaling factor to convert the reference BC mass concentration from ground to cruise. |
Calculate the volume of exhaust gas per mass of fuel burnt. |
|
|
Calculate the flame temperature at the combustion chamber (t_fl). |
|
Calculate the BC GMD for singular annular combustor (SAC) engines. |
|
Calculate the black carbon mass emissions index using the Formation and Oxidation Method (FOX). |
Calculate the BC mass EI using the "Improved" Formation and Oxidation Method (ImFOX). |
|
Estimate the black carbon number emission index using the fractal aggregates (FA) model. |
|
Adjust nvPM mass emissions index to account for the effects of sustainable aviation fuels. |
|
Adjust nvPM number emissions index to account for the effects of sustainable aviation fuels. |
|
Calculate the turbine inlet temperature using Abrahamson's method. |
- pycontrails.models.emissions.black_carbon.air_to_fuel_ratio_imfox(thrust_setting)¶
Calculate the air-to-fuel ratio at cruise conditions via Abrahamson’s method.
See Eq. (11) in [Abrahamson et al., 2016].
- Parameters:
thrust_setting (
npt.NDArray[np.float64]
) – Engine thrust setting, which is the fuel mass flow rate divided by the maximum fuel mass flow rate- Returns:
npt.NDArray[np.float64]
– Air-to-fuel ratio at cruise conditions
References
- pycontrails.models.emissions.black_carbon.bc_mass_concentration_cruise_fox(c_bc_ref, t_fl_cru, t_fl_ref, p_3_cru, p_3_ref, afr_cru, afr_ref)¶
Calculate the black carbon mass concentration for cruise conditions (
c_bc_cru
).This quantity is computed at the instrument sampling point without correcting for particle line losses.
- Parameters:
c_bc_ref (
npt.NDArray[np.float64]
) – Black carbon mass concentration at reference conditions, [\(mg m^{-3}\)]t_fl_cru (
npt.NDArray[np.float64]
) – Flame temperature at cruise conditions, [\(K\)]t_fl_ref (
npt.NDArray[np.float64] | float
) – Flame temperature at reference conditions, [\(K\)]p_3_cru (
npt.NDArray[np.float64]
) – Combustor inlet pressure at cruise conditions, [\(Pa\)]p_3_ref (
npt.NDArray[np.float64] | float
) – Combustor inlet pressure at reference conditions, [\(Pa\)]afr_cru (
npt.NDArray[np.float64]
) – Air-to-fuel ratio at cruise conditionsafr_ref (
npt.NDArray[np.float64] | float
) – Air-to-fuel ratio at reference conditions
- Returns:
npt.NDArray[np.float64]
– Black carbon mass concentration for cruise conditions, [\(mg m^{-3}\)]
- pycontrails.models.emissions.black_carbon.bc_mass_concentration_fox(fuel_flow, t_fl, afr)¶
Calculate the black carbon mass concentration for ground conditions (
c_bc_ref
).This quantity is computed at the instrument sampling point without correcting for particle line losses.
- Parameters:
fuel_flow (
npt.NDArray[np.float64]
) – Fuel mass flow rate, [\(kg s^{-1}\)]t_fl (
npt.NDArray[np.float64] | float
) – Flame temperature at the combustion chamber, [\(K\)]afr (
npt.NDArray[np.float64] | float
) – Air-to-fuel ratio
- Returns:
npt.NDArray[np.float64]
– Black carbon mass concentration for ground conditions, [\(mg m^{-3}\)]
- pycontrails.models.emissions.black_carbon.bc_mass_concentration_imfox(fuel_flow_per_engine, afr, t_4, fuel_hydrogen)¶
Calculate the BC mass concentration for ground and cruise conditions with ImFOX methodology.
This quantity is computed at the instrument sampling point without correcting for particle line losses.
- Parameters:
fuel_flow_per_engine (
npt.NDArray[np.float64]
) – fuel mass flow rate per engine, [\(kg s^{-1}\)]afr (
npt.NDArray[np.float64]
) – air-to-fuel ratiot_4 (
npt.NDArray[np.float64]
) – turbine inlet temperature, [\(K\)]fuel_hydrogen (
float
) – percentage of hydrogen mass content in the fuel (13.8% for conventional Jet A-1 fuel)
- Returns:
npt.NDArray[np.float64]
– Black carbon mass concentration, [\(mg m^{-3}\)]
- pycontrails.models.emissions.black_carbon.bc_mass_emissions_index(c_bc, q_exhaust)¶
Calculate the black carbon mass emissions index.
- Parameters:
c_bc (
npt.NDArray[np.float64]
) – Black carbon mass concentration, [\(mg m^{-3}\)]q_exhaust (
npt.NDArray[np.float64]
) – Volume of exhaust gas per mass of fuel burnt, [\(m^{3}/kg_{fuel}\)]
- Returns:
npt.NDArray[np.float64]
– Black carbon mass emissions index, [\(mg/kg_{fuel}\)]
References
- pycontrails.models.emissions.black_carbon.dopelheuer_lecht_scaling_factor(t_fl_cru, t_fl_ref, p_3_cru, p_3_ref, afr_cru, afr_ref)¶
Estimate scaling factor to convert the reference BC mass concentration from ground to cruise.
- Parameters:
t_fl_cru (
npt.NDArray[np.float64]
) – Flame temperature at cruise conditions, [\(K\)]t_fl_ref (
npt.NDArray[np.float64] | float
) – Flame temperature at reference conditions, [\(K\)]p_3_cru (
npt.NDArray[np.float64]
) – Combustor inlet pressure at cruise conditions, [\(Pa\)]p_3_ref (
npt.NDArray[np.float64] | float
) – Combustor inlet pressure at reference conditions, [\(Pa\)]afr_cru (
npt.NDArray[np.float64]
) – Air-to-fuel ratio at cruise conditionsafr_ref (
npt.NDArray[np.float64] | float
) – Air-to-fuel ratio at reference conditions
- Returns:
npt.NDArray[np.float64]
– Dopelheuer & Lecht scaling factor
References
- pycontrails.models.emissions.black_carbon.exhaust_gas_volume_per_kg_fuel(afr)¶
Calculate the volume of exhaust gas per mass of fuel burnt.
- Parameters:
afr (
npt.NDArray[np.float64]
) – Air-to-fuel ratio- Returns:
npt.NDArray[np.float64]
– Volume of exhaust gas per mass of fuel burnt, [\(m^{3}/kg_{fuel}\)]
References
- pycontrails.models.emissions.black_carbon.flame_temperature(t_3)¶
Calculate the flame temperature at the combustion chamber (t_fl).
- Parameters:
t_3 (
ArrayScalarLike
) – Combustor inlet temperature, [\(K\)]- Returns:
ArrayScalarLike
– Flame temperature at the combustion chamber, [\(K\)]
- pycontrails.models.emissions.black_carbon.geometric_mean_diameter_sac(air_pressure, air_temperature, true_airspeed, thrust_setting, pressure_ratio, q_fuel, *, comp_efficiency=0.9, delta_loss=5.75, cruise=True)¶
Calculate the BC GMD for singular annular combustor (SAC) engines.
The BC (black carbon) GMD (geometric mean diameter) is estimated using the non-dimensionalized engine thrust setting, the ratio of turbine inlet to the compressor inlet temperature (
t4_t2
).- Parameters:
air_pressure (
npt.NDArray[np.float64]
) – Pressure altitude at each waypoint, [\(Pa\)]air_temperature (
npt.NDArray[np.float64]
) – Ambient temperature for each waypoint, [\(K\)]true_airspeed (
npt.NDArray[np.float64]
) – True airspeed for each waypoint, [\(m s^{-1}\)]thrust_setting (
npt.NDArray[np.float64]
) – Engine thrust setting, which is the fuel mass flow rate divided by the maximum fuel mass flow ratepressure_ratio (
float
) – Engine pressure ratio from the ICAO EDBq_fuel (
float
) – Lower calorific value (LCV) of fuel, [\(J \ kg_{fuel}^{-1}\)]comp_efficiency (
float
) – Engine compressor efficiency (assumed to be 0.9)delta_loss (
float
) – Correction factor accounting for particle line losses (assumed to be 5.75 nm), [\(nm\)]cruise (
bool
) – Set to true when the aircraft is not on the ground.
- Returns:
npt.NDArray[np.float64]
– black carbon geometric mean diameter, [\(nm\)]
References
- pycontrails.models.emissions.black_carbon.mass_emissions_index_fox(air_pressure, air_temperature, true_airspeed, fuel_flow_per_engine, thrust_setting, pressure_ratio, *, comp_efficiency=0.9)¶
Calculate the black carbon mass emissions index using the Formation and Oxidation Method (FOX).
- Parameters:
air_pressure (
npt.NDArray[np.float64]
) – Pressure altitude at each waypoint, [\(Pa\)]air_temperature (
npt.NDArray[np.float64]
) – Ambient temperature for each waypoint, [\(K\)]true_airspeed (
npt.NDArray[np.float64]
) – True airspeed for each waypoint, [\(m s^{-1}\)]fuel_flow_per_engine (
npt.NDArray[np.float64]
) – Fuel mass flow rate per engine, [\(kg s^{-1}\)]thrust_setting (
npt.NDArray[np.float64]
) – Engine thrust setting, which is the fuel mass flow rate divided by the maximum fuel mass flow ratepressure_ratio (
float
) – Engine pressure ratio from the ICAO EDBcomp_efficiency (
float
) – Engine compressor efficiency, assumed to be 0.9
- Returns:
npt.NDArray[np.float64]
– Black carbon mass emissions index, [\(mg \ kg_{fuel}^{-1}\)]
References
- pycontrails.models.emissions.black_carbon.mass_emissions_index_imfox(fuel_flow_per_engine, thrust_setting, fuel_hydrogen)¶
Calculate the BC mass EI using the “Improved” Formation and Oxidation Method (ImFOX).
- Parameters:
fuel_flow_per_engine (
npt.NDArray[np.float64]
) – Fuel mass flow rate per engine, [\(kg s^{-1}\)]thrust_setting (
npt.NDArray[np.float64]
) – Engine thrust setting, which is the fuel mass flow rate divided by the maximum fuel mass flow ratefuel_hydrogen (
float
) – Percentage of hydrogen mass content in the fuel (13.8% for conventional Jet A-1 fuel)
- Returns:
npt.NDArray[np.float64]
– Black carbon mass emissions index, [\(mg \ kg_{fuel}^{-1}\)]
References
- pycontrails.models.emissions.black_carbon.number_emissions_index_fractal_aggregates(nvpm_ei_m, gmd, *, gsd=1.8, rho_bc=1770, k_tem=1.621e-05, d_tem=0.39, d_fm=2.76)¶
Estimate the black carbon number emission index using the fractal aggregates (FA) model.
The FA model estimates the number emissions index from the mass emissions index, particle size distribution, and morphology.
- Parameters:
nvpm_ei_m (
npt.NDArray[np.float64]
) – Black carbon mass emissions index, [\(kg/kg_{fuel}\)]gmd (
npt.NDArray[np.float64]
) – Black carbon geometric mean diameter, [\(m\)]gsd (
float
) – Black carbon geometric standard deviation (assumed to be 1.80)rho_bc (
float
) – Black carbon material density (1770 kg/m**3), [\(kg m^{-3}\)]k_tem (
float
) – Transmission electron microscopy prefactor coefficient (assumed to be 1.621e-5)d_tem (
float
) – Transmission electron microscopy exponent coefficient (assumed to be 0.39)d_fm (
float
) – Mass-mobility exponent (assumed to be 2.76)
- Returns:
npt.NDArray[np.float64]
– Black carbon number emissions index, [\(kg_{fuel}^{-1}\)]
References
FA model: [Teoh et al., 2019]
gmd
,gsd
,d_fm
: [Teoh et al., 2020]rho_bc
: [Park et al., 2004]k_tem
,d_tem
: [Dastanpour and Rogak, 2014]
- pycontrails.models.emissions.black_carbon.nvpm_mass_ei_pct_reduction_due_to_saf(hydrogen_content, thrust_setting)¶
Adjust nvPM mass emissions index to account for the effects of sustainable aviation fuels.
For fuel with hydrogen mass content > 14.3, the adjustment factor is adopted from Teoh et al. (2022), which was used to calculate the change in nvPM EIn.
- Parameters:
hydrogen_content (
float
) – The percentage of hydrogen mass content in the fuel.thrust_setting (
npt.NDArray[np.float64]
) – Engine thrust setting, where the equivalent fuel mass flow rate per engine at sea level, \([0 - 1]\).
- Returns:
npt.NDArray[np.float64]
– Percentage reduction in nvPM number emissions index
References
- pycontrails.models.emissions.black_carbon.nvpm_number_ei_pct_reduction_due_to_saf(hydrogen_content, thrust_setting)¶
Adjust nvPM number emissions index to account for the effects of sustainable aviation fuels.
- Parameters:
hydrogen_content (
float
) – The percentage of hydrogen mass content in the fuel.thrust_setting (
npt.NDArray[np.float64]
) – Engine thrust setting, where the equivalent fuel mass flow rate per engine at sea level, \([0 - 1]\).
- Returns:
npt.NDArray[np.float64]
– Percentage reduction in nvPM number emissions index
References
- pycontrails.models.emissions.black_carbon.turbine_inlet_temperature_imfox(afr)¶
Calculate the turbine inlet temperature using Abrahamson’s method.
See Eq. (13) in [Abrahamson et al., 2016].
- Parameters:
afr (
npt.NDArray[np.float64]
) – air-to-fuel ratio at cruise conditions- Returns:
npt.NDArray[np.float64]
– turbine inlet temperature, [\(K\)]
References