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