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¶
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])
)
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¶
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¶
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¶
first_order_mass_transport_k(
radius=1e-6,
vapor_transition=0.6,
diffusion_coefficient=2e-9
)
# Output: 1.5079644737231005e-14
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¶
mass_transfer_rate(
pressure_delta=10.0,
first_order_mass_transport=1e-17,
temperature=300.0,
molar_mass=0.02897
)
# Output: 1.16143004e-21
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¶
radius_transfer_rate(
mass_rate=1e-21,
radius=1e-6,
density=1000
)
# Output: 7.95774715e-14
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]]: ...