particula.particles.activity_factories¶
activity_factories
¶
Activity strategy factories for calculating activity and partial pressure of species in a mixture of liquids.
ActivityFactory
¶
Bases: StrategyFactoryABC[Union[ActivityIdealMassBuilder, ActivityIdealMolarBuilder, ActivityKappaParameterBuilder, ActivityNonIdealBinaryBuilder], Union[ActivityIdealMass, ActivityIdealMolar, ActivityKappaParameter, ActivityNonIdealBinary]]
Factory for creating activity strategy builders for liquid mixtures.
This class supports strategies to compute activity and partial pressures of species based on different thermodynamic models:
- mass_ideal: Raoult's Law based on mass fractions
- molar_ideal: Raoult's Law based on mole fractions
- kappa_parameter / kappa: Kappa hygroscopic parameter (Petters 2007)
- non_ideal_binary / binary_non_ideal: BAT model for non-ideal organic–water mixtures (Gorkowski 2019)
Methods:
-
get_builders–Provides a mapping from strategy type to builder.
-
get_strategy–Validates inputs and returns a strategy instance for the specified strategy type.
Raises:
-
ValueError–If the strategy type is unknown or if required parameters are missing or invalid.
Examples:
import particula as par
factory = par.particles.ActivityFactory()
# Ideal mass activity
strategy = factory.get_strategy("mass_ideal")
# Non-ideal binary (BAT model)
params = {
"molar_mass": 0.200,
"oxygen2carbon": 0.4,
"density": 1400.0,
}
bat_strategy = factory.get_strategy("non_ideal_binary", params)
# bat_strategy.get_name() -> "ActivityNonIdealBinary"
References
- Petters, M. D., & Kreidenweis, S. M. (2007). DOI:10.5194/acp-7-1961-2007
- Gorkowski, K., Preston, T. C., & Zuend, A. (2019). DOI:10.5194/acp-19-13383-2019
get_builders
¶
get_builders()
Return a mapping of strategy types to their corresponding builders.
Returns:
-
–
dict[str, Any]: A dictionary mapping the activity strategy type
-
–
to a builder instance.
Supported types
- "mass_ideal": ActivityIdealMassBuilder (Raoult's Law, mass)
- "molar_ideal": ActivityIdealMolarBuilder (Raoult's Law, mole)
- "kappa_parameter": ActivityKappaParameterBuilder (kappa model)
- "kappa": Alias for "kappa_parameter"
- "non_ideal_binary": ActivityNonIdealBinaryBuilder (BAT model)
- "binary_non_ideal": Alias for "non_ideal_binary"
Examples:
factory = ActivityFactory()
builder_map = factory.get_builders()
non_ideal_builder = builder_map["non_ideal_binary"]
# non_ideal_builder -> ActivityNonIdealBinaryBuilder()
Source code in particula/particles/activity_factories.py
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 | |