Skip to content

particula.particles.properties.diffusion_coefficient

diffusion_coefficient

Particle diffusion coefficient calculation.

get_diffusion_coefficient

get_diffusion_coefficient(temperature: Union[float, NDArray[float64]], aerodynamic_mobility: Union[float, NDArray[float64]], boltzmann_constant: float = BOLTZMANN_CONSTANT) -> Union[float, NDArray[np.float64]]

Calculate the diffusion coefficient of a particle based on temperature and aerodynamic mobility.

The diffusion coefficient (D) can be computed using:

  • D = k_B T × B
    • D is the diffusion coefficient in m²/s,
    • k_B is the Boltzmann constant in J/K,
    • T is the temperature in Kelvin,
    • B is the aerodynamic mobility in m²/s.

Parameters:

  • - temperature

    Temperature in Kelvin (K).

  • - aerodynamic_mobility

    Aerodynamic mobility in m²/s.

  • - boltzmann_constant

    Boltzmann constant in J/K.

Returns:

  • Union[float, NDArray[float64]]
    • The diffusion coefficient of the particle in m²/s.

Examples:

Example
import particula as par
par.particles.get_diffusion_coefficient(
    temperature=300.0, aerodynamic_mobility=1.0e-8
)
# Output: ...
References
  • Einstein, A. (1905). "On the movement of small particles suspended in stationary liquids required by the molecular-kinetic theory of heat." Annalen der Physik, 17(8), 549–560.
  • "Stokes-Einstein equation," Wikipedia, https://en.wikipedia.org/wiki/Stokes%E2%80%93Einstein_equation
Source code in particula/particles/properties/diffusion_coefficient.py
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
@validate_inputs(
    {
        "temperature": "positive",
        "aerodynamic_mobility": "nonnegative",
    }
)
def get_diffusion_coefficient(
    temperature: Union[float, NDArray[np.float64]],
    aerodynamic_mobility: Union[float, NDArray[np.float64]],
    boltzmann_constant: float = BOLTZMANN_CONSTANT,
) -> Union[float, NDArray[np.float64]]:
    """Calculate the diffusion coefficient of a particle based on temperature
    and aerodynamic mobility.

    The diffusion coefficient (D) can be computed using:

    - D = k_B T × B
        - D is the diffusion coefficient in m²/s,
        - k_B is the Boltzmann constant in J/K,
        - T is the temperature in Kelvin,
        - B is the aerodynamic mobility in m²/s.

    Arguments:
        - temperature : Temperature in Kelvin (K).
        - aerodynamic_mobility : Aerodynamic mobility in m²/s.
        - boltzmann_constant : Boltzmann constant in J/K.

    Returns:
        - The diffusion coefficient of the particle in m²/s.

    Examples:
        ``` py title="Example"
        import particula as par
        par.particles.get_diffusion_coefficient(
            temperature=300.0, aerodynamic_mobility=1.0e-8
        )
        # Output: ...
        ```

    References:
        - Einstein, A. (1905). "On the movement of small particles suspended
          in stationary liquids required by the molecular-kinetic theory of
          heat." Annalen der Physik, 17(8), 549–560.
        - "Stokes-Einstein equation," Wikipedia,
          https://en.wikipedia.org/wiki/Stokes%E2%80%93Einstein_equation
    """
    return boltzmann_constant * temperature * aerodynamic_mobility

get_diffusion_coefficient_via_system_state

get_diffusion_coefficient_via_system_state(particle_radius: Union[float, NDArray[float64]], temperature: float, pressure: float) -> Union[float, NDArray[np.float64]]

Calculate the diffusion coefficient from system state parameters.

This function determines the diffusion coefficient (D) of a particle by: 1. Computing gas properties (dynamic viscosity, mean free path), 2. Determining particle slip correction and aerodynamic mobility, 3. Calling get_diffusion_coefficient() to get D.

Parameters:

  • - particle_radius

    Particle radius in meters (m).

  • - temperature

    System temperature in Kelvin (K).

  • - pressure

    System pressure in Pascals (Pa).

Returns:

  • Union[float, NDArray[float64]]
    • The diffusion coefficient of the particle in m²/s.

Examples:

Example
import particula as par
par.particles.get_diffusion_coefficient_via_system_state(
    particle_radius=1.0e-7,
    temperature=298.15,
    pressure=101325
)
# Output: ...
References
  • Millikan, R. A. (1923). "On the elementary electrical charge and the Avogadro constant." Physical Review, 2(2), 109–143. [check]
  • "Mass Diffusion," Wikipedia, https://en.wikipedia.org/wiki/Diffusion#Mass_diffusion
Source code in particula/particles/properties/diffusion_coefficient.py
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
def get_diffusion_coefficient_via_system_state(
    particle_radius: Union[float, NDArray[np.float64]],
    temperature: float,
    pressure: float,
) -> Union[float, NDArray[np.float64]]:
    """Calculate the diffusion coefficient from system state parameters.

    This function determines the diffusion coefficient (D) of a particle by:
    1. Computing gas properties (dynamic viscosity, mean free path),
    2. Determining particle slip correction and aerodynamic mobility,
    3. Calling get_diffusion_coefficient() to get D.

    Arguments:
        - particle_radius : Particle radius in meters (m).
        - temperature : System temperature in Kelvin (K).
        - pressure : System pressure in Pascals (Pa).

    Returns:
        - The diffusion coefficient of the particle in m²/s.

    Examples:
        ``` py title="Example"
        import particula as par
        par.particles.get_diffusion_coefficient_via_system_state(
            particle_radius=1.0e-7,
            temperature=298.15,
            pressure=101325
        )
        # Output: ...
        ```

    References:
        - Millikan, R. A. (1923). "On the elementary electrical charge and the
          Avogadro constant." Physical Review, 2(2), 109–143. [check]
        - "Mass Diffusion," Wikipedia,
          https://en.wikipedia.org/wiki/Diffusion#Mass_diffusion
    """
    # Step 1: Calculate gas properties
    _dynamic_viscosity = get_dynamic_viscosity(temperature=temperature)
    _mean_free_path = get_molecule_mean_free_path(
        temperature=temperature,
        pressure=pressure,
        dynamic_viscosity=_dynamic_viscosity,
    )

    # Step 2: Particle properties in fluid
    _knudsen_number = get_knudsen_number(
        mean_free_path=_mean_free_path, particle_radius=particle_radius
    )
    _slip_correction_factor = get_cunningham_slip_correction(
        knudsen_number=_knudsen_number,
    )
    _aerodynamic_mobility = get_aerodynamic_mobility(
        particle_radius=particle_radius,
        slip_correction_factor=_slip_correction_factor,
        dynamic_viscosity=_dynamic_viscosity,
    )

    # Step 3: Calculate the particle diffusion coefficient
    return get_diffusion_coefficient(
        temperature=temperature,
        aerodynamic_mobility=_aerodynamic_mobility,
    )