settling Process Documentation¶
Overview¶
Gravitational settling process for atmospheric particles implementing physics-based settling schemes with temperature-dependent viscosity, slip correction, and robust numerical integration.
Process Type: transport Author: CATChem Development Team Version: 1.0 Date: 2025
Features¶
Available Schemes¶
- Stokesscheme: Advanced Stokes settling with Cunningham slip correction and temperature-dependent dynamic viscosity
- Sutherland's formula for dynamic viscosity
- Cunningham slip correction for small particles
- CFL-stable time integration with automatic subcycling
- Support for non-spherical particles via shape factors
-
Robust error handling and bounds checking
-
Intermediatereynoldsscheme: Intermediate Reynolds number settling scheme for larger particles
Physical Features¶
- Dynamic viscosity: Temperature-dependent air viscosity using Sutherland's law
- Slip correction: Cunningham slip correction for particles smaller than mean free path
- Shape factors: Support for non-spherical particles
- CFL stability: Automatic subcycling to maintain numerical stability
- Error handling: Comprehensive bounds checking and validation
Usage¶
Initialization¶
use settlingProcess_Mod
type(settlingProcessType) :: process
type(StateContainerType) :: container
integer :: rc
! Initialize the process
call process%init(container, rc)
Running the Process¶
Finalization¶
Configuration¶
The settling process requires particle properties and meteorological data to calculate settling velocities.
Required Meteorological Fields¶
- temperature: Air temperature [K]
- pressure: Air pressure [Pa]
- air_density: Air density [kg/m³]
Required Tracer Properties¶
- particle_radius: Effective particle radius [m]
- particle_density: Particle density [kg/m³]
Optional Tracer Properties¶
- shape_factor: Dynamic shape factor for non-spherical particles [dimensionless, default: 1.0]
Available Diagnostics¶
- settling_velocity: Gravitational settling velocity [m/s]
- settling_flux: Vertical settling mass flux [kg/m²/s]
- cfl_number: CFL number for settling time step [dimensionless]
- dynamic_viscosity: Temperature-dependent air dynamic viscosity [kg/m/s]
- slip_correction: Cunningham slip correction factor [dimensionless]
Physical Equations¶
Stokes Settling Velocity¶
The basic Stokes settling velocity is calculated as:
Where: - g = gravitational acceleration [9.81 m/s²] - ρ_p = particle density [kg/m³] - ρ_air = air density [kg/m³] - r = particle radius [m] - μ = dynamic viscosity [kg/m/s]
Dynamic Viscosity (Sutherland's Law)¶
Where: - μ₀ = 1.458e-6 kg/(m·s·K^1.5) - S = 110.4 K (Sutherland temperature) - T = temperature [K]
Cunningham Slip Correction¶
Where: - λ = mean free path [m] - A₁ = 1.257, A₂ = 0.4, A₃ = 1.1 (slip coefficients)
Final Settling Velocity¶
Where χ is the dynamic shape factor for non-spherical particles.
Implementation Details¶
Process Structure¶
src/process/settling/
├── settlingProcess_Mod.F90 # Main process module
├── settlingCommon_Mod.F90 # Common utilities
└── schemes/ # Scheme implementations
├── StokesschemeScheme_Mod.F90
├── IntermediatereynoldsschemeScheme_Mod.F90
Testing¶
Unit tests are available in:
Run tests with: