Skip to content

Mass Transfer

Particula Index / Particula / Dynamics / Condensation / Mass Transfer

Auto-generated documentation for particula.dynamics.condensation.mass_transfer module.

calculate_mass_transfer

Show source in mass_transfer.py:199

Helper function that routes the mass transfer calculation to either the single-species or multi-species calculation functions based on the input dimensions of gas_mass.

Arguments

  • mass_rate : The rate of mass transfer per particle (kg/s).
  • time_step : The time step for the mass transfer calculation (sec).
  • gas_mass : The available mass of gas species (kg).
  • particle_mass : The mass of each particle (kg).
  • particle_concentration : The concentration of particles (number/m^3).

Returns

The amount of mass transferred, accounting for gas and particle limitations.

Examples

Single species input
calculate_mass_transfer(
    mass_rate=np.array([0.1, 0.5]),
    time_step=10,
    gas_mass=np.array([0.5]),
    particle_mass=np.array([1.0, 50]),
    particle_concentration=np.array([1, 0.5])
)
Multiple species input
calculate_mass_transfer(
    mass_rate=np.array([[0.1, 0.05, 0.03], [0.2, 0.15, 0.07]]),
    time_step=10,
    gas_mass=np.array([1.0, 0.8, 0.5]),
    particle_mass=np.array([[1.0, 0.9, 0.8], [1.2, 1.0, 0.7]]),
    particle_concentration=np.array([5, 4])
)

Signature

def calculate_mass_transfer(
    mass_rate: NDArray[np.float64],
    time_step: float,
    gas_mass: NDArray[np.float64],
    particle_mass: NDArray[np.float64],
    particle_concentration: NDArray[np.float64],
) -> NDArray[np.float64]: ...

calculate_mass_transfer_multiple_species

Show source in mass_transfer.py:316

Calculate mass transfer for multiple gas species.

Arguments

  • mass_rate : The rate of mass transfer per particle for each gas species (kg/s).
  • time_step : The time step for the mass transfer calculation (sec).
  • gas_mass : The available mass of each gas species (kg).
  • particle_mass : The mass of each particle for each gas species (kg).
  • particle_concentration : The concentration of particles for each gas species (number/m^3).

Returns

The amount of mass transferred for multiple gas species.

Examples

Multiple species input
calculate_mass_transfer_multiple_species(
    mass_rate=np.array([[0.1, 0.05, 0.03], [0.2, 0.15, 0.07]]),
    time_step=10,
    gas_mass=np.array([1.0, 0.8, 0.5]),
    particle_mass=np.array([[1.0, 0.9, 0.8], [1.2, 1.0, 0.7]]),
    particle_concentration=np.array([5, 4])
)

Signature

def calculate_mass_transfer_multiple_species(
    mass_rate: NDArray[np.float64],
    time_step: float,
    gas_mass: NDArray[np.float64],
    particle_mass: NDArray[np.float64],
    particle_concentration: NDArray[np.float64],
) -> NDArray[np.float64]: ...

calculate_mass_transfer_single_species

Show source in mass_transfer.py:261

Calculate mass transfer for a single gas species (m=1).

Arguments

  • mass_rate : The rate of mass transfer per particle (number*kg/s).
  • time_step : The time step for the mass transfer calculation (sec).
  • gas_mass : The available mass of gas species (kg).
  • particle_mass : The mass of each particle (kg).
  • particle_concentration : The concentration of particles (number/m^3).

Returns

The amount of mass transferred for a single gas species.

Examples

Single species input
calculate_mass_transfer_single_species(
    mass_rate=np.array([0.1, 0.5]),
    time_step=10,
    gas_mass=np.array([0.5]),
    particle_mass=np.array([1.0, 50]),
    particle_concentration=np.array([1, 0.5])
)

Signature

def calculate_mass_transfer_single_species(
    mass_rate: NDArray[np.float64],
    time_step: float,
    gas_mass: NDArray[np.float64],
    particle_mass: NDArray[np.float64],
    particle_concentration: NDArray[np.float64],
) -> NDArray[np.float64]: ...

first_order_mass_transport_k

Show source in mass_transfer.py:46

First-order mass transport coefficient per particle.

Calculate the first-order mass transport coefficient, K, for a given radius diffusion coefficient, and vapor transition correction factor. For a single particle.

Arguments

  • radius : The radius of the particle [m].
  • diffusion_coefficient : The diffusion coefficient of the vapor [m^2/s], default to air.
  • vapor_transition : The vapor transition correction factor. [unitless]

Returns

The first-order mass transport coefficient per particle (m^3/s).

Examples

Float input
first_order_mass_transport_k(
    radius=1e-6,
    vapor_transition=0.6,
    diffusion_coefficient=2e-9
    )
# Output: 1.5079644737231005e-14
Array input
first_order_mass_transport_k
    radius=np.array([1e-6, 2e-6]),
    vapor_transition=np.array([0.6, 0.6]),
    diffusion_coefficient=2e-9
    )
# Output: array([1.50796447e-14, 6.03185789e-14])

References

  • Aerosol Modeling: Chapter 2, Equation 2.49 (excluding number)
  • Mass Diffusivity: Wikipedia

Signature

def first_order_mass_transport_k(
    radius: Union[float, NDArray[np.float64]],
    vapor_transition: Union[float, NDArray[np.float64]],
    diffusion_coefficient: Union[float, NDArray[np.float64]] = 2e-05,
) -> Union[float, NDArray[np.float64]]: ...

mass_transfer_rate

Show source in mass_transfer.py:100

Calculate the mass transfer rate for a particle.

Calculate the mass transfer rate based on the difference in partial pressure and the first-order mass transport coefficient.

Arguments

  • pressure_delta : The difference in partial pressure between the gas phase and the particle phase.
  • first_order_mass_transport : The first-order mass transport coefficient per particle.
  • temperature : The temperature at which the mass transfer rate is to be calculated.
  • molar_mass : The molar mass of the species [kg/mol].

Returns

The mass transfer rate for the particle [kg/s].

Examples

Single value input
mass_transfer_rate(
    pressure_delta=10.0,
    first_order_mass_transport=1e-17,
    temperature=300.0,
    molar_mass=0.02897
)
# Output: 1.16143004e-21
Array input
mass_transfer_rate(
    pressure_delta=np.array([10.0, 15.0]),
    first_order_mass_transport=np.array([1e-17, 2e-17]),
    temperature=300.0,
    molar_mass=0.02897
)
# Output: array([1.16143004e-21, 3.48429013e-21])

References

  • Aerosol Modeling Chapter 2, Equation 2.41 (excluding particle number)
  • Seinfeld and Pandis: "Atmospheric Chemistry and Physics", Equation 13.3

Signature

def mass_transfer_rate(
    pressure_delta: Union[float, NDArray[np.float64]],
    first_order_mass_transport: Union[float, NDArray[np.float64]],
    temperature: Union[float, NDArray[np.float64]],
    molar_mass: Union[float, NDArray[np.float64]],
) -> Union[float, NDArray[np.float64]]: ...

radius_transfer_rate

Show source in mass_transfer.py:157

Convert mass rate to radius transfer rate.

Convert the mass rate to a radius transfer rate based on the volume of the particle.

Arguments

  • mass_rate : The mass transfer rate for the particle [kg/s].
  • radius : The radius of the particle [m].
  • density : The density of the particle [kg/m^3].

Returns

The radius growth rate for the particle [m/s].

Examples

Single value input
radius_transfer_rate(
    mass_rate=1e-21,
    radius=1e-6,
    density=1000
)
# Output: 7.95774715e-14
Array input
radius_transfer_rate(
    mass_rate=np.array([1e-21, 2e-21]),
    radius=np.array([1e-6, 2e-6]),
    density=1000
)
# Output: array([7.95774715e-14, 1.98943679e-14])

Signature

def radius_transfer_rate(
    mass_rate: Union[float, NDArray[np.float64]],
    radius: Union[float, NDArray[np.float64]],
    density: Union[float, NDArray[np.float64]],
) -> Union[float, NDArray[np.float64]]: ...