In Integrate.cpp's original EPM Original::RunMicrophysics we compute nucleation of SO4 with by calling these functions:
|
x_star = AIM::x_star( observer.m_states[observer.m_states.size()-1][EPM_ind_T], observer.m_states[observer.m_states.size()-1][EPM_ind_H2O] * n_air, std::max(x[EPM_ind_SO4g] * n_air, 0.0) ); |
|
nTot = AIM::nTot( observer.m_states[observer.m_states.size()-1][EPM_ind_T], x_star, observer.m_states[observer.m_states.size()-1][EPM_ind_H2O] * n_air, std::max(x[EPM_ind_SO4g]*n_air, 0.0) ); |
the second argument RH is passed as a molecular concentration, but AIM::x_star and AIM::nTot expect RH as a fraction between [0, 1]. Both functions clamp the input RH argument to [1e-4, 1]. Given we are passing a molecular concentration >> 1, the calculations for x_star and nTot always happens with RH = 1.
This influences the SO4 radius, and only matters for timesteps where the plume is subsaturated (otherwise the clamp to 1 is inadvertently fine). I don't know by how much it makes a difference however.
For reference this is correctly computed in the RHS function passed to the ODE solver, so I really don't know how much this moves results:
|
double RH_liquid = n_air * x[EPM_ind_H2O] * 1.0e6 * kB * x[EPM_ind_T] / pSat_H2Ol( x[EPM_ind_T] ) ; |
|
if ( ( n_air * SO4_rl >= AIM::nThresh( x[EPM_ind_T], RH_liquid))) { |
|
|
|
/* Mole fraction of sulfuric acid */ |
|
x_SO4 = AIM::x_star(x[EPM_ind_T], RH_liquid, n_air*SO4_rl); |
|
|
|
/* Number of molecules per cluster */ |
|
nMolec = AIM::nTot( x[EPM_ind_T], x_SO4, RH_liquid, n_air*SO4_rl ); |
In
Integrate.cpp's original EPMOriginal::RunMicrophysicswe compute nucleation of SO4 with by calling these functions:APCEMM/Code.v05-00/src/EPM/Models/Original/Integrate.cpp
Lines 327 to 328 in adf714b
the second argument
RHis passed as a molecular concentration, butAIM::x_starandAIM::nTotexpectRHas a fraction between [0, 1]. Both functions clamp the inputRHargument to [1e-4, 1]. Given we are passing a molecular concentration >> 1, the calculations forx_starandnTotalways happens withRH = 1.This influences the SO4 radius, and only matters for timesteps where the plume is subsaturated (otherwise the clamp to 1 is inadvertently fine). I don't know by how much it makes a difference however.
For reference this is correctly computed in the RHS function passed to the ODE solver, so I really don't know how much this moves results:
APCEMM/Code.v05-00/src/EPM/Models/Original/RHS.cpp
Lines 80 to 87 in adf714b