DDT
- class pypbomb.DDT
Methods for estimating the deflagration-to-detonation transition (DDT).
- static calculate_blockage_diameter(pipe_id, blockage_ratio, unit_registry=<pint.registry.UnitRegistry object>)
Calculates the diameter of a Shchelkin spiral corresponding to a given blockage ratio within a pipe of given inner diameter.
- Parameters:
pipe_id (pint.Quantity or Tuple[float, str]) – Length scale representing the inner diameter of the pipe used for the detonation tube
blockage_ratio (float) – Ratio of blocked area to total cross-sectional area, \(0 < BR < 1\)
unit_registry (pint.UnitRegistry) – Unit registry for managing units to prevent conflicts with parent unit registry
- Returns:
Shchelkin spiral diameter inside a tube of pipe_id inner diameter giving a blockage ratio of blockage_ratio. Units are the same as pipe_id.
- Return type:
pint.Quantity
- static calculate_blockage_ratio(tube_inner_diameter, blockage_diameter, unit_registry=<pint.registry.UnitRegistry object>)
Calculates the blockage ratio of a Shchelkin spiral within a detonation tube.
- Parameters:
tube_inner_diameter (pint.Quantity or Tuple[float, str]) – Inner diameter of the detonation tube
blockage_diameter (pint.Quantity or Tuple[float, str]) – Outer diameter of the blockage used to create the Shchelkin spiral (i.e. a Shchelkin spiral made from 1/2” round stock would be
blockage_diameter=quant(0.5, "inch")
unit_registry (pint.UnitRegistry) – Unit registry for managing units to prevent conflicts with parent unit registry
- Returns:
Ratio of blocked to open area (between 0 and 1)
- Return type:
float
- static calculate_run_up(blockage_ratio, tube_diameter, initial_temperature, initial_pressure, species_dict, mechanism, unit_registry=<pint.registry.UnitRegistry object>, phase_specification='')
Calculates the runup distance needed for a detonation to develop from a deflagration for a given blockage ratio, tube diameter, and mixture. This is accomplished using equations collected by Ciccarelli and Dorofeev [1] for blockage ratios <= 0.75. If the desired blockage ratio is less than 0.3, the mixture viscosity is needed, and the phase_specification option may be necessary depending on the mechanism.
[1] G. Ciccarelli and S. Dorofeev, Flame acceleration and transition to detonation in ducts, Progress in Energy and Combustion Science, vol. 34, no. 4, pp. 499–550, Aug. 2008. https://doi.org/10.1016/j.pecs.2007.11.002
- Parameters:
blockage_ratio (float) – Ratio of blocked area to total cross-sectional area, \(0 < BR < 1\)
tube_diameter (pint.Quantity or Tuple[float, str]) – Internal diameter of the detonation tube
initial_temperature (pint.Quantity or Tuple[float, str]) – Mixture initial temperature
initial_pressure (pint.Quantity or Tuple[float, str]) – Mixture initial pressure
species_dict (dict) – Dictionary containing the species in the mixture as keys, with total moles or mole fractions as values
mechanism (str) – Mechanism file name for Cantera. See
thermochem.find_mechanisms()
for a list of installed mechanisms.unit_registry (pint.UnitRegistry) – Unit registry for managing units to prevent conflicts with parent unit registry
phase_specification (str, optional) – Phase specification within the mechanism file used to evaluate thermophysical properties. If
gri30.yaml
is used with no phase specification viscosity calculations will fail, resulting in an error for all blockage ratios less than 0.3.
- Returns:
Predicted DDT distance
- Return type:
pint.Quantity