ColRadPy
ColRadPy copied to clipboard
Added capability to model energy evolution of a species in a plasma
This adds the capability to track the time evolution of the temperature of a species during the course of an ionization balance. It runs the ionization balance as normal, and in addition tracks the change in total energy of each charge state over time by evaluating the collisional heating between each charge state and background ions.
The rate equations for energy transfer are non-linear, so the matrix exponentiation method cannot be used for solving the system. Instead the scipy.integrate.solve_ivp method is used, which numerically integrates the system of ODE's.
The temperature of each charge state is calculated using the equation E = 3/2 * N * T, where E is the energy in each charge state, N is the population of each charge state, and T is the temperature of each charge state. During times where the population is small, the division of two very small numbers can cause T to become numerically unstable.
This modelling was motivated by trying to model the temperature of carbon charge states sputtered off a material into a background plasma (with the goal of understanding how the temperature of each charge state measured by a spectrometer relates to the background ion temperature). Therefore, it is not tested for atoms other than carbon.