sink terms in n-level atoms
some models of heavy elements include photoionization of excited levels as a loss mechanism. This is an important ionization mechanism is some special cases where the ground term is shielded from ionizing radiation while the upper level is exposed.
This should be treated the way that the iso sequences are, within an inhomogenesous system of equations that couple in the ionization ladder. That is the purpose of this ticket.
this process is currently treated as follows. The ionization rate is included in the main ionization ladder solver by including the ratio of excited to total level population
[total ionization rate] = [ground ionization rate] + [ionization rate excited] * n(excited)/n(total ion) where the population n(excited) is computed in the cooling routine.
The excited state photoionization rate must be included in the n-level solvers as a loss term for the excited states. In the current implementation this is added as a source term for the ground term of the same atom - it just adds to the decay rate from the excited to ground terms. This approximation is "reasonable" since the ionization / cooling routines are quasi simultaneous. This would introduce a source of error if conservation tolerances were increased a great deal as was the case with the iso-solvers.
Not including the loss terms in the n-level atoms caused convergence problems in pdr_leiden_v4 when the NI model was improved. The solution, in keeping with the above, is to increase the radiative rate from upper levels to ground. This was done in r3417 by adding the excited state photoionization rate to the transition probability, dividing the term photorate by statistical weight. The 5-level solver could then be used without change.
This is also done in the three-level solver atom_pop3 as the third to last argument in the function interface.
The current scheme should not introduce significant error but is a hack. someday it would be good to bring these level solvers into closer communication with the ionization solvers.