Questions about SOA formation

Hi everyone,

I have trouble understanding the relationship between “PM name”, “Vapor name” and “Rxn Cntr Name” in file SOA_DEFN.F. Take reaction TOL+OH → 0.039 CVARO1 + 0.108 CVARO2 as an example. In my opinion, “Vapor name” are “CVARO1” and “CVARO2”, and “Rxn Cntr Name” is TOL, and “PM name” is the corresponding aerosol name. However, I checked the code, relationship between these three seems not what i understand. “Rxn Cntr Name” are all products of reactions, most of the “Vapor name” species are not in the mech.def file. I am confused. Could anyone help with this?


Thanks!
Lin

Dear Lin,

Thanks for your question – this is indeed a complex component of the aerosol code. The first thing to keep in mind is that the species in this table are meant to support all possible mechanisms provided by the CMAQ repo. Some of them, for example, are only relevant in Aero6 (e.g. SVTOL1, SVTOL2, etc.) while others are relevant only for Aero7 (e.g. SVMT1, etc.). Most of the species appear in both mechanism versions.

The PM name is for the particle-phase component of each species. The vapor name is the transported species that is in equilibrium with the PM species on the same row. The Rxn Cntr species are used to communicate the production of condensable vapors from the chemistry module to the SOA module. For example, TOLNRXN tracks the mass of precursor reacted through the high NOx pathway. In the SOA module, it is multiplied by the yields (i.e. alpha) and added to the condensable vapor species.

Hope this helps. I’m happy to clarify anything that is still unclear here.
Best wishes,
Ben

1 Like

Dear Ben,

Thanks so much for your help. I have 2 parts that i am still confused.

  1. “The Rxn Cntr species are used to communicate the production of condensable vapors from the chemistry module to the SOA module.” Is this “condensable vapor” the same vapor as “vapor name” in the table? Or this “condensable vapor” is not listed here in the code?
  2. Below the table, there is one comment says “Reaction Counters are only needed if the vapor species is not formed directly in the gas-phase chemistry mechanism”. What does this mean? I checked the chemistry files for “vapor species”, most of them are in the NR.nml file, not the mech.def file. However, all the “Rxn Cntr name” are in product in the mech.def file.

Thanks!
Lin

Hi Lin,

  1. Yes, condensable vapor is the same as the species in the table column labelled “vapor name”.
  2. This comment explains the two approaches we use to propagate the production of new condensable vapors that go on to form SOA. In approach (a) the condensable vapor is itself in the chemical mechanism and present in the GC namelist. The GC namelist is only for species that appear in the chemical mechanism. With this approach, the condensable vapor species is increased directly when the precursor species is oxidized. In approach (b) the condensable vapor is conceptualized as non-reactive, so it appears in the NR namelist and is not in the chemical mechanism. In order to propagate mass from the reaction within the chemical mechanism to this nonreactive species, we use the RXN Cntr species. They are in the GC namelist and in the chemical mechanism. They increase as the precursor reacts, and then they are used in the SOA module to calculate the amount of condensable vapor formed. At the end of the time step, these Rxn Cntr species are set to zero. They are not transported throughout the domain since they do not actually exist as true pollutants. They are simply a device used in the code to transmit production from inside the chemical mechanism to species outside of it.

Does this explanation further help?
Cheers,
Ben

Hi Ben,

This totally explains it!

Thanks so much!
Lin

Hi Ben,

I have one more question about the parameter C*. If there is no experimental data, how should i calculate C* ? I read Schell et al. paper, C* is given as the equation below:
2022-02-10 (2)
Is this the equation i should use for the calculation of C* ?

Best!
Lin

Hi Lin,
That equation is correct. Here is the reference we usually think of for the C* parameter that has a nice description of it’s impact on predictions: https://pubs.acs.org/doi/abs/10.1021/Es052297c. The supplemental information has the same equation that you have put here, except the vapor pressure is in torr.

You can use a number of methods to estimate vapor pressure if you don’t have it. We have used the UMANSYSPROP interface here extensively: Pure component vapour pressures of organic compounds - UManSysProp
We find that we are usually selecting the EVAPORATION model as the option for the vapor pressure estimation, but certainly each model has its own strengths and weaknesses.

Cheers,
Ben

Hi Ben,

Thanks for your help!!

Best!

Lin

~WRD0001.jpg

Hi Ben,

I noticed in Schell et al paper, they mentioned that “gas/particle partitioning of these compounds is simulated as an absorption process into the organic mass on the aerosol particle”. The SOA code is also based on this right? I am thinking, if i want to calculate the gas/particle partitioning of the compound into the PM2.5, not “organic mass”. which part of the code should i change?

Thanks so much!!
Lin

Hi Lin,

You are right that we calculate the gas/particle partitioning of most of the organic aerosol (SOA and POA) as an absorption process into the organic mass of aerosols described by Raoult’s Law. Although there are situations where adsorption also may play a role, there is broad consensus and overwhelming evidence from laboratory experiments that this is the correct mechanism so I would not advise changing this aspect of the particle microphysics.

However, if you do want to explore the impact of this approach or modifications to it, you can find it in the function soabisect within the file SOA_DEFN.F. This function takes as input the total mass of organic species to partition, their saturation concentrations (i.e. vapor pressures), and the total organic aerosol mass in moles.

Best wishes,
Ben

1 Like

Hi Ben,

I have another question about the partition coefficient. In the paper you sent me “Coupled Partitioning, Dilution, and Chemical Aging of Semivolatile Organics”, it is defined as:


But from the papers i read before, partition coefficient is defined as (F/TSP)/A, F is particulate phase concentration and A is gas phase concentration. I am kind of confused what is the difference between these two and why they are different. Could you help explain this?

Thanks so much!!
Lin

Hi Lin,

The term partitioning coefficient may have been used in the past to mean different things. The term in equation 1 above is often called the aerosol mass fraction, which is essentially [Particle Phase Conc]/[Total Particle + Gas Conc]. If you look at the supporting info for that paper, you can find that the definition of C* is actually the reciprocal of the formula (F/TSP)/A formula that you have found in other papers.

Cheers,
Ben

Hi Ben,

Thanks for your help!! What i am doing is i tried to add gas particle partitioning of a series of other gases using the same method as the SOA gas particle partitioning. But i want to calculate partition to all PM2.5 particles not just OA. I wonder if i could do this simply changed the aerosol mass fraction from using OA to using TSP. That is changing [Particle Phase Conc of i]/[TSP + Gas Conc]. Particle conc=TSP*aerosol mass fraction.

Best!
Lin

Hi Ben,

Thanks so much for all your help!! I have one question regarding the SOA_DEFN.F code.

  1. For the “Calculate the Initial Partitioning of Each volatile compound” part, the initial fraction of each semivolatile compound is calculated as fear=totorg/(totorg+c0*mw), caer(i)=ctotf(i)*fear. Why using total organic aerosol to calculate fear, not individual aerosol species.

Best Regards!
Lin

Hi Lin,

Unfortunately, we cannot extend the Raoult’s Law -based approach for calculating OA partitioning to the nonOA species. You can check out, for example, the documentation for the ISORROPIA II model that we use to calculate the vapor pressures of nonOA species:

Let me know if I have misunderstood your question.
Cheers,
Ben

Hello Lin,

We use the totorg in this case in order to calculate an upper bound on the aerosol fraction of each species. These initial guesses will then be passed to the bisection solver which will further refine the answer. If we used a value smaller than totorg, then it is possible that we would underestimate the upper bound and the solver would perhaps be unstable.

Cheers,
Ben

Hi Ben,

Got it, thanks! So in the following code, is the solved orgmoles the total moles of organic aerosol or the moles of individual organic species?

Best Regards!
Lin

Yep, orgmoles is the total moles of organic aerosol in the particle phase.
Cheers,
Ben

Hi Ben,

Sorry to bother you again… I have one more question, so what equation does the soabisect function solve?

Best Regards!
Lin

No Problem Lin,

The objective function used for the bisection solver is:

image

which is minimized so the f(n) is as close to zero as possible. Here, Nsv = the total number of semivolatile species, C_T,i is the total mass concentration of species i. C*_i is the saturation concentration of species i in mass units, mw_i is the molecular weight of species i, n_NV is the total number of nonvolatile POA and SOA moles, and n_OA is the total number of moles of organic aerosol. n_OA is the variable that the bisection solver varies to minimize f(n).

Cheers,
Ben

1 Like