From @sirpetergao
First, I added a few aerosol species to gas_properties and pvap, including CO2, H2SO4, and S8. They don't have metallicity dependencies and the gas_mmr is set to that of water, but the idea is that the user needs to give a below-cloud mixing ratio for these to work properly (though the gas_mmr input is still set as optional for now). For H2SO4 I've hard coded an 80% H2SO4 weight percentage - this should be a function of the water vapor mixing ratio and temperature but I think this is enough for now.
Second, for justdoit, I added an extra input argument into the init function of the Atmosphere class, bkg_atm, which is a string that determines what the background gas is; right now there is H2, N2, and CO2; if any other string is input it defaults to H2. Then I split the "true" constants in the constants function (R_GAS, AVOGADRO, K_BOLTZ) into its own function and made 3 other functions, constants_h2, constants_n2, and constants_co2; in these I put eps_k, d_molecule, and c_p_factor, which are different for each of H2, N2, and CO2 background atmospheres. I got the eps_k and d_molecule values for N2 and CO2 from the same source as you, Rosner 2000; for the c_p_factor of CO2 I'm using wikipedia for now, which shows that it's roughly 13/3 (or rather, gamma ~1.3 at room temperature, and c_p_factor = gamma/(gamma-1)).
And that's it! I probably missed something but I went through the whole code and these are the parts that stuck out to me. I would love to know if there are other parts that I need to change! Now I just need to put in the refractive indices for those new condensates and make the .mieff files.
gaocode.zip
From @sirpetergao