Intensity-based Emission with pure absorption ------------------------------------------------------ Uses ArtPureEmis class ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ To perform an ibase (intensity-based) calculation using ``ArtEmisPure`` in ExoJAX, one simply needs to change the ``rtsolver`` option to either "ibased" or "ibased_linsap". The difference between **ibased** and **ibased_linsap** (ibased w/ linear source approximation) in ExoJAX lies in the assumptions regarding the distribution of the source function within the layer. The former assumes a uniform source function, while the latter assumes a linearly approximated source function. The latter can also be described as a linear version of Olson and Kunasz's method. In the case of ibased, the number of streams can be specified. This is done using the ``nstream`` option (which needs to be an even number). .. code:: ipython from exojax.spec.atmrt import ArtEmisPure art = ArtEmisPure(pressure_top=1.e-8, pressure_btm=1.e2, nlayer=100, nu_grid=nu_grid, rtsolver="ibased", # "ibased" or "ibased_linsap" nstream=8) # specify the number of the streams art.change_temperature_range(400.0, 1500.0) #sets temperature range Tarr = art.powerlaw_temperature(1300.0, 0.1) # sets a powerlaw T-P profile mmr_arr = art.constant_mmr_profile(0.1) # sets a constant mass mixing ratio gravity = art.constant_gravity_profile(2478.57) #sets a constant gravity # we here call OpaPremodit as opa just to compute xsmatrix opa = OpaPremodit(mdb=mdb, nu_grid=nu_grid, diffmode=diffmode, auto_trange=[art.Tlow, art.Thigh]) xsmatrix = opa.xsmatrix(Tarr, art.pressure) dtau = art.opacity_profile_xs(xsmatrix, mmr_arr, opa.mdb.molmass, gravity) # computes optical depth profile F0 = art.run(dtau, Tarr) # computes spectrum