Activity Strategies¶
Particula Index / Particula / Particles / Activity Strategies
Auto-generated documentation for particula.particles.activity_strategies module.
ActivityIdealMass¶
Show source in activity_strategies.py:145
Calculate ideal activity based on mass fractions (Raoult's Law).
Attributes¶
- None
Methods¶
- activity : Computes activity from mass concentration, treating mass fractions as ideal.
Examples¶
import particula as par
strategy = par.particles.ActivityIdealMass()
a = strategy.activity([0.5, 1.0, 1.5])
# a -> ...
References¶
- "Raoult's Law," Wikipedia.
Signature¶
class ActivityIdealMass(ActivityStrategy): ...
See also¶
ActivityIdealMass().activity¶
Show source in activity_strategies.py:169
Calculate the activity of a species based on mass concentration.
Arguments¶
- mass_concentration : Concentration of the species in kg/m^3.
Returns¶
- Activity of the species, unitless.
Signature¶
def activity(
self, mass_concentration: Union[float, NDArray[np.float64]]
) -> Union[float, NDArray[np.float64]]: ...
ActivityIdealMolar¶
Show source in activity_strategies.py:94
Calculate ideal activity based on mole fractions (Raoult's Law).
Attributes¶
- molar_mass : Molar mass of the species in kg/mol.
Methods¶
- activity : Computes ideal activity from mass concentration and molar mass.
Examples¶
import particula as par
strategy = par.particles.ActivityIdealMolar(molar_mass=0.018)
# mass_concentration in kg/m^3
a = strategy.activity(np.array([1.2, 2.5, 3.0]))
# a -> ...
References¶
- "Raoult's Law," Wikipedia.
Signature¶
class ActivityIdealMolar(ActivityStrategy):
def __init__(self, molar_mass: Union[float, NDArray[np.float64]] = 0.0): ...
See also¶
ActivityIdealMolar().activity¶
Show source in activity_strategies.py:128
Calculate the activity of a species based on mass concentration.
Arguments¶
- mass_concentration : Concentration of the species in kg/m^3.
Returns¶
- Activity of the species, unitless.
Signature¶
def activity(
self, mass_concentration: Union[float, NDArray[np.float64]]
) -> Union[float, NDArray[np.float64]]: ...
ActivityIdealVolume¶
Show source in activity_strategies.py:184
Calculate ideal activity based on volume fractions (Raoult's Law).
Attributes¶
- density : The density of the species in kg/m^3, used to derive volume fractions from mass concentrations.
Methods¶
- activity : Computes activity from mass concentration and density.
Examples¶
strategy = ActivityIdealVolume(density=1000.0)
a = strategy.activity(2.5)
# a -> ...
References¶
- "Raoult's Law," Wikipedia.
Signature¶
class ActivityIdealVolume(ActivityStrategy):
def __init__(self, density: Union[float, NDArray[np.float64]] = 0.0): ...
See also¶
ActivityIdealVolume().activity¶
Show source in activity_strategies.py:216
Calculate the activity of a species based on mass concentration.
Arguments¶
- mass_concentration : Concentration of the species in kg/m^3.
- density : Density of the species in kg/m^3.
Returns¶
- Activity of the species, unitless.
Signature¶
def activity(
self, mass_concentration: Union[float, NDArray[np.float64]]
) -> Union[float, NDArray[np.float64]]: ...
ActivityKappaParameter¶
Show source in activity_strategies.py:235
Non-ideal activity strategy using the kappa hygroscopic parameter.
Attributes¶
- kappa : Kappa hygroscopic parameters (array or scalar).
- density : Densities (array or scalar) in kg/m^3.
- molar_mass : Molar masses (array or scalar) in kg/mol.
- water_index : Index identifying the water species in arrays.
Methods¶
- activity : Computes non-ideal activity using kappa hygroscopicity approach.
Examples¶
import particula as par
import numpy as np
strategy = par.particles.ActivityKappaParameter(
kappa=np.array([0.1, 0.0]),
density=np.array([1000.0, 1200.0]),
molar_mass=np.array([0.018, 0.058]),
water_index=0,
)
a = strategy.activity(np.array([1.0, 2.0]))
# a -> ...
References¶
- Petters, M. D., & Kreidenweis, S. M. (2007). A single parameter representation of hygroscopic growth and cloud condensation nucleus activity. Atmospheric Chemistry and Physics, 7(8), 1961-1971. DOI.
Signature¶
class ActivityKappaParameter(ActivityStrategy):
def __init__(
self,
kappa: NDArray[np.float64] = np.array([0.0], dtype=np.float64),
density: NDArray[np.float64] = np.array([0.0], dtype=np.float64),
molar_mass: NDArray[np.float64] = np.array([0.0], dtype=np.float64),
water_index: int = 0,
): ...
See also¶
ActivityKappaParameter().activity¶
Show source in activity_strategies.py:291
Calculate the activity of a species based on mass concentration.
Arguments¶
- mass_concentration : Concentration of the species in kg/m^3.
Returns¶
- Activity of the species, unitless.
References¶
- Petters, M. D., & Kreidenweis, S. M. (2007). A single parameter representation of hygroscopic growth and cloud condensation nucleus activity. Atmospheric Chemistry and Physics, 7(8), 1961-1971. DOI.
Signature¶
def activity(
self, mass_concentration: Union[float, NDArray[np.float64]]
) -> Union[float, NDArray[np.float64]]: ...
ActivityStrategy¶
Show source in activity_strategies.py:22
Abstract base class for vapor pressure and activity calculations.
This interface is used by subclasses for computing particle activity and partial pressures. General methods include activity() and partial_pressure().
Attributes¶
- None
Methods¶
- get_name : Return the type of the activity strategy.
- activity : Calculate the activity of a species. (abstract method)
- partial_pressure : Calculate the partial pressure of a species using its pure vapor pressure and computed activity.
Examples¶
class CustomActivity(ActivityStrategy):
def activity(self, mass_concentration):
return 1.0
my_activity = CustomActivity()
pvap = my_activity.partial_pressure(101325.0, 1.0)
# pvap -> 101325.0
References¶
- "Vapor Pressure," Wikipedia.
Signature¶
class ActivityStrategy(ABC): ...
ActivityStrategy().activity¶
Show source in activity_strategies.py:55
Calculate the activity of a species based on its mass concentration.
Arguments¶
- mass_concentration : Concentration of the species in kg/m^3.
Returns¶
- Activity of the species, unitless.
Signature¶
@abstractmethod
def activity(
self, mass_concentration: Union[float, NDArray[np.float64]]
) -> Union[float, NDArray[np.float64]]: ...
ActivityStrategy().get_name¶
Show source in activity_strategies.py:69
Return the type of the activity strategy.
Signature¶
def get_name(self) -> str: ...
ActivityStrategy().partial_pressure¶
Show source in activity_strategies.py:73
Calculate the vapor pressure of species in the particle phase.
Arguments¶
- pure_vapor_pressure : Pure vapor pressure of the species in Pa.
- mass_concentration : Concentration of the species in kg/m^3.
Returns¶
- Vapor pressure of the particle in Pa.
Signature¶
def partial_pressure(
self,
pure_vapor_pressure: Union[float, NDArray[np.float64]],
mass_concentration: Union[float, NDArray[np.float64]],
) -> Union[float, NDArray[np.float64]]: ...