One-Dimensional Climate Models: Brown Dwarfs w/ Disequilibrium Chemistry with Self-Consistent Kzz
In this tutorial you will learn how to run 1d climate models with the effects of disequilibrium chemistry as was done for the Elf-OWL Grid Mukherjee et al. 2024 (note this should also be cited along with Mang et al. 2026 if using this code/tutorial).
What you should already be familiar with:
What you should have downloaded:
Download New 1460, 661 wno Correlated-k Tables to be used by the climate code for opacity by individual molecule
You can easily do this with the get_data function:
Use the data.get_data helper function to get resortrebin files and add them to the default picaso location: reference/opaities/resortrebin >> import picaso.data as d
d.get_data(category_download=’ck_tables’,target_download=’by-molecule’)
Setting K\(_{zz}\)
We will add one more concept which is the addition of K\(_{zz}\) [cm\(^2\)/s]. K\(_{zz}\) is the eddy diffusion constant, which sets the strength of vertical mixing. In PICASO we have two options for K\(_{zz}\):
Constant value: sets a constant at every atmospheric layer
Self consistent (see Eqn. 27 and 28 in Mukherjee et al 2023)
New code parameters:
diseq_chem=True: Turns on disequilibrium chemistryself_consistent_kzz: (True/False) This solves self consistently forsave_all_kzz: (True/False) Similar tosave_all_profilesthis saves your intermediate k_zz values if you are trying to solve for aself_consistent_kzz=True.kz: constant value ifself_consistent_kzz=False
Which of those 6 do I need change change
Likely you will only be changing kz and/or, for example, playing around with a self_consistent_kzz vs a constant profile. Unless you are certain, we recommend the following set of gases_fly to remain unchanged.
In this case, we are going to use a self-consistent kzz. Because of this we don’t need to define kz, we just need to make sure that self_consistent_kzz = True.
[6]:
cl_run.inputs_climate(temp_guess= temp_guess, pressure= pressure,
rcb_guess=rcb_guess, rfacv = rfacv)
mh=1#NOT LOG
cto_relative = 1 #relative to solar
#now that we are not using preweighted ck tables we need to tell picaso how to compute chemistry on the fly
cl_run.atmosphere(mh=mh, cto_relative=cto_relative, chem_method='visscher', quench=True)
out = cl_run.climate(opacity_ck, save_all_profiles = True, with_spec=True,
save_all_kzz = False, self_consistent_kzz=True,diseq_chem = True)
SUMMARY
-------
Clouds: False
quench True
cold_trap False
vol_rainout False
no_ph3 False
Moist Adiabat: False
Kzz for chem: Self Consistent Treatment
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
I dont have fluxes, let me compute them
Computed quenched levels at {'CO-CH4-H2O': np.int64(77), 'CO2': np.int64(67), 'NH3-N2': np.int64(80), 'HCN': np.int64(78), 'PH3': np.int64(75)}
Quench=True; Adjusting quench chemistry
Iteration number 0 , min , max temp 235.64466644735649 2707.9291287071073 , flux balance 0.12227283166156303
Iteration number 1 , min , max temp 239.68421235650072 2710.8843960336876 , flux balance 0.09058816231369736
Iteration number 2 , min , max temp 243.3052239436151 2713.703039135567 , flux balance 0.05995520380199323
Iteration number 3 , min , max temp 246.56706016121936 2716.374603016509 , flux balance 0.030404100425359938
Iteration number 4 , min , max temp 249.49804205682187 2718.87686933563 , flux balance 0.0019842258376915525
Iteration number 5 , min , max temp 249.64398921491212 2718.9931193796588 , flux balance 1.7600739896628484e-05
In t_start: Converged Solution in iterations 5
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
Computed quenched levels at {'CO-CH4-H2O': np.int64(76), 'CO2': np.int64(66), 'NH3-N2': np.int64(80), 'HCN': np.int64(77), 'PH3': np.int64(74)}
Quench=True; Adjusting quench chemistry
Big iteration is 249.64398921491212 0
Iteration number 0 , min , max temp 248.96937104904438 2722.615636164977 , flux balance 0.00041824068535500247
Iteration number 1 , min , max temp 248.969402725668 2722.616718793263 , flux balance 3.1489649421502983e-06
In t_start: Converged Solution in iterations 1
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
Computed quenched levels at {'CO-CH4-H2O': np.int64(76), 'CO2': np.int64(66), 'NH3-N2': np.int64(80), 'HCN': np.int64(77), 'PH3': np.int64(74)}
Quench=True; Adjusting quench chemistry
Profile converged before max_outer_iterations
convection zone status
0 79 89 0 0 0
1
[0, 64, 64, 64, 79, 89]
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
I dont have fluxes, let me compute them
Computed quenched levels at {'CO-CH4-H2O': np.int64(75), 'CO2': np.int64(66), 'NH3-N2': np.int64(80), 'HCN': np.int64(76), 'PH3': np.int64(73)}
Quench=True; Adjusting quench chemistry
Iteration number 0 , min , max temp 248.3777166878026 2725.9686060505023 , flux balance 4.4208655123865917e-05
In t_start: Converged Solution in iterations 0
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
Computed quenched levels at {'CO-CH4-H2O': np.int64(76), 'CO2': np.int64(67), 'NH3-N2': np.int64(80), 'HCN': np.int64(77), 'PH3': np.int64(74)}
Quench=True; Adjusting quench chemistry
Big iteration is 248.3777166878026 0
Iteration number 0 , min , max temp 248.81990293857473 2721.844231453631 , flux balance 0.0006533012747070504
Iteration number 1 , min , max temp 248.82388893065865 2721.8105874259722 , flux balance 5.106271789008316e-06
In t_start: Converged Solution in iterations 1
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
Computed quenched levels at {'CO-CH4-H2O': np.int64(76), 'CO2': np.int64(67), 'NH3-N2': np.int64(80), 'HCN': np.int64(77), 'PH3': np.int64(74)}
Quench=True; Adjusting quench chemistry
Profile converged before max_outer_iterations
Grow Phase : Upper Zone
[0, 63, 64, 64, 79, 89]
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
I dont have fluxes, let me compute them
Computed quenched levels at {'CO-CH4-H2O': np.int64(75), 'CO2': np.int64(66), 'NH3-N2': np.int64(80), 'HCN': np.int64(76), 'PH3': np.int64(73)}
Quench=True; Adjusting quench chemistry
Iteration number 0 , min , max temp 248.3007075925421 2725.99061516703 , flux balance 0.0001954597241472304
Iteration number 1 , min , max temp 248.28169974943725 2725.989494613352 , flux balance 1.488771072697019e-06
In t_start: Converged Solution in iterations 1
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
Computed quenched levels at {'CO-CH4-H2O': np.int64(76), 'CO2': np.int64(67), 'NH3-N2': np.int64(80), 'HCN': np.int64(77), 'PH3': np.int64(74)}
Quench=True; Adjusting quench chemistry
Big iteration is 248.28169974943725 0
Iteration number 0 , min , max temp 248.8532548493831 2721.764818014999 , flux balance 0.0006068707391129284
Iteration number 1 , min , max temp 248.85914111290344 2721.729674127943 , flux balance 4.7242145185885e-06
In t_start: Converged Solution in iterations 1
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
Computed quenched levels at {'CO-CH4-H2O': np.int64(76), 'CO2': np.int64(67), 'NH3-N2': np.int64(80), 'HCN': np.int64(77), 'PH3': np.int64(74)}
Quench=True; Adjusting quench chemistry
Profile converged before max_outer_iterations
[0, 62, 64, 64, 79, 89]
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
I dont have fluxes, let me compute them
Computed quenched levels at {'CO-CH4-H2O': np.int64(75), 'CO2': np.int64(66), 'NH3-N2': np.int64(80), 'HCN': np.int64(76), 'PH3': np.int64(73)}
Quench=True; Adjusting quench chemistry
Iteration number 0 , min , max temp 248.4063406231432 2725.912544375541 , flux balance 0.00022603243952764055
Iteration number 1 , min , max temp 248.3899466536482 2725.911094310485 , flux balance 1.8025968021404994e-06
In t_start: Converged Solution in iterations 1
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
Computed quenched levels at {'CO-CH4-H2O': np.int64(76), 'CO2': np.int64(67), 'NH3-N2': np.int64(80), 'HCN': np.int64(77), 'PH3': np.int64(74)}
Quench=True; Adjusting quench chemistry
Big iteration is 248.3899466536482 0
Iteration number 0 , min , max temp 248.97850016197614 2721.691020117972 , flux balance 0.0005904402172787402
Iteration number 1 , min , max temp 248.98411968047756 2721.6561731449315 , flux balance 4.673807233044697e-06
In t_start: Converged Solution in iterations 1
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
Computed quenched levels at {'CO-CH4-H2O': np.int64(76), 'CO2': np.int64(67), 'NH3-N2': np.int64(80), 'HCN': np.int64(77), 'PH3': np.int64(74)}
Quench=True; Adjusting quench chemistry
Profile converged before max_outer_iterations
[0, 61, 64, 64, 79, 89]
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
I dont have fluxes, let me compute them
Computed quenched levels at {'CO-CH4-H2O': np.int64(75), 'CO2': np.int64(66), 'NH3-N2': np.int64(80), 'HCN': np.int64(76), 'PH3': np.int64(73)}
Quench=True; Adjusting quench chemistry
Iteration number 0 , min , max temp 248.5837054285988 2725.7802075892473 , flux balance -3.5088898352621534e-05
Iteration number 1 , min , max temp 248.5664751349512 2725.815069501177 , flux balance -1.823110870810325e-07
In t_start: Converged Solution in iterations 1
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
Computed quenched levels at {'CO-CH4-H2O': np.int64(76), 'CO2': np.int64(67), 'NH3-N2': np.int64(80), 'HCN': np.int64(77), 'PH3': np.int64(74)}
Quench=True; Adjusting quench chemistry
Big iteration is 248.5664751349512 0
Iteration number 0 , min , max temp 249.16245015646615 2721.6035779115464 , flux balance 0.000577950426644675
Iteration number 1 , min , max temp 249.16752985506818 2721.569097251191 , flux balance 4.736039862709016e-06
In t_start: Converged Solution in iterations 1
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
Computed quenched levels at {'CO-CH4-H2O': np.int64(76), 'CO2': np.int64(67), 'NH3-N2': np.int64(80), 'HCN': np.int64(77), 'PH3': np.int64(74)}
Quench=True; Adjusting quench chemistry
Profile converged before max_outer_iterations
[0, 60, 64, 64, 79, 89]
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
I dont have fluxes, let me compute them
Computed quenched levels at {'CO-CH4-H2O': np.int64(75), 'CO2': np.int64(66), 'NH3-N2': np.int64(80), 'HCN': np.int64(76), 'PH3': np.int64(73)}
Quench=True; Adjusting quench chemistry
Iteration number 0 , min , max temp 248.81852637240976 2725.4939203859994 , flux balance -0.001543511365247636
Iteration number 1 , min , max temp 248.7872693792162 2725.7169873917514 , flux balance -1.1870028737152435e-05
In t_start: Converged Solution in iterations 1
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
Computed quenched levels at {'CO-CH4-H2O': np.int64(76), 'CO2': np.int64(67), 'NH3-N2': np.int64(80), 'HCN': np.int64(77), 'PH3': np.int64(74)}
Quench=True; Adjusting quench chemistry
Big iteration is 248.7872693792162 0
Iteration number 0 , min , max temp 249.39469856676251 2721.511699626939 , flux balance 0.0005683430241744049
Iteration number 1 , min , max temp 249.39939356635014 2721.4774522543084 , flux balance 4.828796279261242e-06
In t_start: Converged Solution in iterations 1
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
Computed quenched levels at {'CO-CH4-H2O': np.int64(76), 'CO2': np.int64(67), 'NH3-N2': np.int64(80), 'HCN': np.int64(77), 'PH3': np.int64(74)}
Quench=True; Adjusting quench chemistry
Profile converged before max_outer_iterations
[0, 59, 64, 64, 79, 89]
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
I dont have fluxes, let me compute them
Computed quenched levels at {'CO-CH4-H2O': np.int64(75), 'CO2': np.int64(66), 'NH3-N2': np.int64(80), 'HCN': np.int64(76), 'PH3': np.int64(73)}
Quench=True; Adjusting quench chemistry
Iteration number 0 , min , max temp 249.09160830651484 2725.2297975615243 , flux balance -0.003035940593410077
Iteration number 1 , min , max temp 249.05009952583998 2725.625280748028 , flux balance -2.3008240545995775e-05
In t_start: Converged Solution in iterations 1
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
Computed quenched levels at {'CO-CH4-H2O': np.int64(76), 'CO2': np.int64(67), 'NH3-N2': np.int64(80), 'HCN': np.int64(77), 'PH3': np.int64(74)}
Quench=True; Adjusting quench chemistry
Big iteration is 249.05009952583998 0
Iteration number 0 , min , max temp 249.65636187305785 2721.426418233515 , flux balance 0.000563278070220533
Iteration number 1 , min , max temp 249.66049555736828 2721.3923757967477 , flux balance 5.01549196190927e-06
In t_start: Converged Solution in iterations 1
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
Computed quenched levels at {'CO-CH4-H2O': np.int64(76), 'CO2': np.int64(67), 'NH3-N2': np.int64(80), 'HCN': np.int64(77), 'PH3': np.int64(74)}
Quench=True; Adjusting quench chemistry
Profile converged before max_outer_iterations
[0, 58, 64, 64, 79, 89]
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
I dont have fluxes, let me compute them
Computed quenched levels at {'CO-CH4-H2O': np.int64(75), 'CO2': np.int64(66), 'NH3-N2': np.int64(80), 'HCN': np.int64(76), 'PH3': np.int64(73)}
Quench=True; Adjusting quench chemistry
Iteration number 0 , min , max temp 249.3860227904144 2724.996381698511 , flux balance -0.0044462539043245985
Iteration number 1 , min , max temp 249.33744670776704 2725.5453297369672 , flux balance -3.380378119025983e-05
In t_start: Converged Solution in iterations 1
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
Computed quenched levels at {'CO-CH4-H2O': np.int64(76), 'CO2': np.int64(67), 'NH3-N2': np.int64(80), 'HCN': np.int64(77), 'PH3': np.int64(74)}
Quench=True; Adjusting quench chemistry
Big iteration is 249.33744670776704 0
Iteration number 0 , min , max temp 249.93901690863638 2721.3511520339052 , flux balance 0.0005621314288731528
In t_start: Converged Solution in iterations 0
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
Computed quenched levels at {'CO-CH4-H2O': np.int64(76), 'CO2': np.int64(67), 'NH3-N2': np.int64(80), 'HCN': np.int64(77), 'PH3': np.int64(74)}
Quench=True; Adjusting quench chemistry
Profile converged before max_outer_iterations
[0, 57, 64, 64, 79, 89]
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
I dont have fluxes, let me compute them
Computed quenched levels at {'CO-CH4-H2O': np.int64(75), 'CO2': np.int64(66), 'NH3-N2': np.int64(80), 'HCN': np.int64(76), 'PH3': np.int64(73)}
Quench=True; Adjusting quench chemistry
Iteration number 0 , min , max temp 249.70102611330987 2724.8678410194525 , flux balance -0.004967247912219826
Iteration number 1 , min , max temp 249.65562820018673 2725.471572021222 , flux balance -3.918325553187402e-05
In t_start: Converged Solution in iterations 1
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
Computed quenched levels at {'CO-CH4-H2O': np.int64(76), 'CO2': np.int64(67), 'NH3-N2': np.int64(80), 'HCN': np.int64(77), 'PH3': np.int64(74)}
Quench=True; Adjusting quench chemistry
Big iteration is 249.65562820018673 0
Iteration number 0 , min , max temp 250.22545888270875 2721.293364024795 , flux balance 0.0005622120381812013
In t_start: Converged Solution in iterations 0
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
Computed quenched levels at {'CO-CH4-H2O': np.int64(76), 'CO2': np.int64(67), 'NH3-N2': np.int64(80), 'HCN': np.int64(77), 'PH3': np.int64(74)}
Quench=True; Adjusting quench chemistry
Profile converged before max_outer_iterations
[0, 56, 64, 64, 79, 89]
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
I dont have fluxes, let me compute them
Computed quenched levels at {'CO-CH4-H2O': np.int64(75), 'CO2': np.int64(66), 'NH3-N2': np.int64(80), 'HCN': np.int64(76), 'PH3': np.int64(73)}
Quench=True; Adjusting quench chemistry
Iteration number 0 , min , max temp 249.95605502067218 2725.4389045979315 , flux balance 0.0002256724026744298
Iteration number 1 , min , max temp 249.95347147600597 2725.435730646332 , flux balance 2.2335923592265314e-06
In t_start: Converged Solution in iterations 1
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
Computed quenched levels at {'CO-CH4-H2O': np.int64(76), 'CO2': np.int64(67), 'NH3-N2': np.int64(80), 'HCN': np.int64(77), 'PH3': np.int64(74)}
Quench=True; Adjusting quench chemistry
Big iteration is 249.95347147600597 0
Iteration number 0 , min , max temp 250.50201671317245 2721.25304937623 , flux balance 0.0005754776519113361
In t_start: Converged Solution in iterations 0
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
Computed quenched levels at {'CO-CH4-H2O': np.int64(76), 'CO2': np.int64(67), 'NH3-N2': np.int64(80), 'HCN': np.int64(77), 'PH3': np.int64(74)}
Quench=True; Adjusting quench chemistry
Profile converged before max_outer_iterations
[0, 56, 65, 65, 79, 89]
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
I dont have fluxes, let me compute them
Computed quenched levels at {'CO-CH4-H2O': np.int64(75), 'CO2': np.int64(66), 'NH3-N2': np.int64(80), 'HCN': np.int64(76), 'PH3': np.int64(73)}
Quench=True; Adjusting quench chemistry
Iteration number 0 , min , max temp 250.38397370755953 2725.319799127631 , flux balance 8.683191268619317e-05
Iteration number 1 , min , max temp 250.38644167353465 2725.315855447758 , flux balance 2.555583692422366e-07
In t_start: Converged Solution in iterations 1
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
Computed quenched levels at {'CO-CH4-H2O': np.int64(76), 'CO2': np.int64(67), 'NH3-N2': np.int64(80), 'HCN': np.int64(77), 'PH3': np.int64(74)}
Quench=True; Adjusting quench chemistry
Big iteration is 250.38644167353465 0
Iteration number 0 , min , max temp 250.8662415188588 2721.1082821933824 , flux balance 0.0006439031087809991
Iteration number 1 , min , max temp 250.86386780020246 2721.07591403355 , flux balance 7.680464440913108e-06
In t_start: Converged Solution in iterations 1
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
Computed quenched levels at {'CO-CH4-H2O': np.int64(76), 'CO2': np.int64(67), 'NH3-N2': np.int64(80), 'HCN': np.int64(77), 'PH3': np.int64(74)}
Quench=True; Adjusting quench chemistry
Profile converged before max_outer_iterations
[0, 55, 65, 65, 79, 89]
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
I dont have fluxes, let me compute them
Computed quenched levels at {'CO-CH4-H2O': np.int64(75), 'CO2': np.int64(66), 'NH3-N2': np.int64(80), 'HCN': np.int64(76), 'PH3': np.int64(73)}
Quench=True; Adjusting quench chemistry
Iteration number 0 , min , max temp 250.5797452518462 2725.2598117113876 , flux balance 0.00015620307673083753
Iteration number 1 , min , max temp 250.58094885915673 2725.2545337445044 , flux balance 1.1168102231999084e-06
In t_start: Converged Solution in iterations 1
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
Computed quenched levels at {'CO-CH4-H2O': np.int64(76), 'CO2': np.int64(67), 'NH3-N2': np.int64(80), 'HCN': np.int64(77), 'PH3': np.int64(74)}
Quench=True; Adjusting quench chemistry
Big iteration is 250.58094885915673 0
Iteration number 0 , min , max temp 251.06559633636343 2721.0640256871534 , flux balance 0.0006173808936475986
In t_start: Converged Solution in iterations 0
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
Computed quenched levels at {'CO-CH4-H2O': np.int64(76), 'CO2': np.int64(67), 'NH3-N2': np.int64(80), 'HCN': np.int64(77), 'PH3': np.int64(74)}
Quench=True; Adjusting quench chemistry
Profile converged before max_outer_iterations
[0, 55, 66, 66, 79, 89]
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
I dont have fluxes, let me compute them
Computed quenched levels at {'CO-CH4-H2O': np.int64(75), 'CO2': np.int64(66), 'NH3-N2': np.int64(80), 'HCN': np.int64(76), 'PH3': np.int64(73)}
Quench=True; Adjusting quench chemistry
Iteration number 0 , min , max temp 250.93723724802732 2725.1419874802064 , flux balance 2.205123158137816e-05
Iteration number 1 , min , max temp 250.94400714282747 2725.135654423727 , flux balance -1.1267542984823537e-06
In t_start: Converged Solution in iterations 1
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
Computed quenched levels at {'CO-CH4-H2O': np.int64(76), 'CO2': np.int64(67), 'NH3-N2': np.int64(80), 'HCN': np.int64(77), 'PH3': np.int64(74)}
Quench=True; Adjusting quench chemistry
Big iteration is 250.94400714282747 0
Iteration number 0 , min , max temp 251.37041550078075 2720.9300081578895 , flux balance 0.0006850673675536076
In t_start: Converged Solution in iterations 0
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
Computed quenched levels at {'CO-CH4-H2O': np.int64(76), 'CO2': np.int64(67), 'NH3-N2': np.int64(80), 'HCN': np.int64(77), 'PH3': np.int64(74)}
Quench=True; Adjusting quench chemistry
Profile converged before max_outer_iterations
[0, 54, 66, 66, 79, 89]
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
I dont have fluxes, let me compute them
Computed quenched levels at {'CO-CH4-H2O': np.int64(75), 'CO2': np.int64(66), 'NH3-N2': np.int64(80), 'HCN': np.int64(76), 'PH3': np.int64(73)}
Quench=True; Adjusting quench chemistry
Iteration number 0 , min , max temp 251.07417030290895 2725.1247452989082 , flux balance 3.195499959214249e-05
Iteration number 1 , min , max temp 251.07768121615905 2725.1176487073403 , flux balance -1.3029148713126302e-06
In t_start: Converged Solution in iterations 1
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
Computed quenched levels at {'CO-CH4-H2O': np.int64(76), 'CO2': np.int64(67), 'NH3-N2': np.int64(80), 'HCN': np.int64(77), 'PH3': np.int64(74)}
Quench=True; Adjusting quench chemistry
Big iteration is 251.07768121615905 0
Iteration number 0 , min , max temp 251.4607648447167 2720.916055671242 , flux balance 0.0006972074375237345
In t_start: Converged Solution in iterations 0
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
Computed quenched levels at {'CO-CH4-H2O': np.int64(76), 'CO2': np.int64(67), 'NH3-N2': np.int64(80), 'HCN': np.int64(77), 'PH3': np.int64(74)}
Quench=True; Adjusting quench chemistry
Profile converged before max_outer_iterations
[0, 54, 67, 67, 79, 89]
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
I dont have fluxes, let me compute them
Computed quenched levels at {'CO-CH4-H2O': np.int64(75), 'CO2': np.int64(66), 'NH3-N2': np.int64(80), 'HCN': np.int64(76), 'PH3': np.int64(73)}
Quench=True; Adjusting quench chemistry
Iteration number 0 , min , max temp 251.23356171852754 2725.0814494147335 , flux balance -4.7166160737003496e-05
Iteration number 1 , min , max temp 251.2421519060187 2725.0717788633096 , flux balance -3.1783924338505417e-06
In t_start: Converged Solution in iterations 1
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
Computed quenched levels at {'CO-CH4-H2O': np.int64(76), 'CO2': np.int64(67), 'NH3-N2': np.int64(80), 'HCN': np.int64(77), 'PH3': np.int64(74)}
Quench=True; Adjusting quench chemistry
Big iteration is 251.2421519060187 0
Iteration number 0 , min , max temp 251.59703800819466 2720.8456342593645 , flux balance 0.0007629509543057032
In t_start: Converged Solution in iterations 0
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
Computed quenched levels at {'CO-CH4-H2O': np.int64(76), 'CO2': np.int64(67), 'NH3-N2': np.int64(80), 'HCN': np.int64(77), 'PH3': np.int64(74)}
Quench=True; Adjusting quench chemistry
Profile converged before max_outer_iterations
[0, 54, 67, 67, 78, 89]
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
I dont have fluxes, let me compute them
Computed quenched levels at {'CO-CH4-H2O': np.int64(75), 'CO2': np.int64(66), 'NH3-N2': np.int64(80), 'HCN': np.int64(76), 'PH3': np.int64(73)}
Quench=True; Adjusting quench chemistry
Iteration number 0 , min , max temp 251.26582396605028 2727.894474077628 , flux balance -3.498398277094843e-05
In t_start: Converged Solution in iterations 0
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
Computed quenched levels at {'CO-CH4-H2O': np.int64(76), 'CO2': np.int64(67), 'NH3-N2': np.int64(80), 'HCN': np.int64(76), 'PH3': np.int64(73)}
Quench=True; Adjusting quench chemistry
Big iteration is 251.26582396605028 0
Iteration number 0 , min , max temp 251.6816971964791 2722.4121181072483 , flux balance 0.0007791944828965544
In t_start: Converged Solution in iterations 0
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
Computed quenched levels at {'CO-CH4-H2O': np.int64(76), 'CO2': np.int64(67), 'NH3-N2': np.int64(80), 'HCN': np.int64(77), 'PH3': np.int64(74)}
Quench=True; Adjusting quench chemistry
Profile converged before max_outer_iterations
final [0, 54, 67, 67, 78, 89]
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
I dont have fluxes, let me compute them
Computed quenched levels at {'CO-CH4-H2O': np.int64(75), 'CO2': np.int64(66), 'NH3-N2': np.int64(80), 'HCN': np.int64(76), 'PH3': np.int64(73)}
Quench=True; Adjusting quench chemistry
Iteration number 0 , min , max temp 251.2845375055398 2727.8974558261734 , flux balance -3.358255040595615e-05
In t_start: Converged Solution in iterations 0
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
Computed quenched levels at {'CO-CH4-H2O': np.int64(76), 'CO2': np.int64(67), 'NH3-N2': np.int64(80), 'HCN': np.int64(76), 'PH3': np.int64(73)}
Quench=True; Adjusting quench chemistry
Big iteration is 251.2845375055398 0
Iteration number 0 , min , max temp 251.68569419760348 2722.4117330887593 , flux balance 0.0007817562179592434
In t_start: Converged Solution in iterations 0
I am updating kzz. This could be either because clouds were requested (which always use self consistent kzz) or because self consistent kzz profiles were requested for chemistry.
Computed quenched levels at {'CO-CH4-H2O': np.int64(76), 'CO2': np.int64(67), 'NH3-N2': np.int64(80), 'HCN': np.int64(77), 'PH3': np.int64(74)}
Quench=True; Adjusting quench chemistry
Profile converged before max_outer_iterations
YAY ! ENDING WITH CONVERGENCE
Compare Diseq and Chemeq Climate Profile
For the case we chose to do a self-consistent kzz instead of a low, constant kzz. We also use the resort-rebin chemistry method compared to the pre-weighted CK tables. For more information about the difference between these, you can look at the chemistry notebook
[7]:
plt.ylim(200,1.7e-4)
plt.semilogy(out['temperature'],out['pressure'],"r", label='Resort-Rebin, Chemical Disequilibrium, Self Consistent Kzz')
plt.semilogy(temp_guess,pressure,color="k",linestyle="--", label='Pre-weighted CK, Chemical Equilibrium')
[7]:
[<matplotlib.lines.Line2D at 0x7f552c5c8f50>]