Type IIP thermal balance

Species treatment

H I is the only NLTE species. Its level populations are solved from the NLTE rate equations, and the H ionization balance uses the H I continuum rates. Elements without continuum rates, such as helium when only H I is listed under continuum_interaction.species, follow the C-TARDIS treatment:

  • Ionization uses the nebular approximation of Mazzali & Lucy (1993) at the radiation temperature and dilution factor of the current iteration and at each trial electron temperature. Charge conservation sets the electron density.

  • Excitation is dilute LTE at the radiation temperature and dilution factor of the current iteration.

Collision strengths for levels missing from the atomic level data are ignored with a warning, so a model with helium needs no extra atomic data.

Level-population solve

The Type IIP workflow solves NLTE level populations for each thermal-balance trial. When the direct root does not yield a physical population that closes the normalized level equations to 1e-10, it retries from the fixed initial population using logarithmic population ratios. These ratios keep trial fractions positive and normalized.

If the equations remain open, the level solver retries with an empirical 1e-4 floor on each starting fraction and then renormalizes. This permits excited levels depleted by the previous thermal state to recover. The solver keeps the candidate with the smallest normalized physical equation residual, regardless of the optimizer’s reported success status.

Thermal-balance solve

In the inner shells cooling is dominated by collisional bound-bound pairs close to detailed balance, so the fractional-heating residual responds about 100 times less to the temperature than the electron residual does to the density. The joint solve therefore divides each residual row by its Jacobian diagonal, measured once per solve by forward differences at the starting candidate. This puts both rows of every shell in candidate units without moving the root, and lets the trust-region solver cross the curved, stiff valley of these shells.

The thermal optimizer can evaluate an approximate physical level state during its search. After the joint solve, the workflow rebuilds the full plasma state from the joint candidate. That state must close the level and charge equations, and its populations must be valid; otherwise the workflow raises an error. A shell whose electron-density change exceeds 2e-8 or whose fractional heating exceeds 2e-7 is reported by a warning that lists each such shell with the ratio of its residuals to these limits, and the run continues. The next iteration starts its thermal solve from the accepted state, so such shells continue to converge across iterations.