Treat fine-structure mixing for He-like ions
Up to and including r12749 the code supported the command DATABASE HE-LIKE FSM (note that the name of the command evolved over time) that enabled treatment of intercombination lines in He-like ions. This was investigated by Bauman+ (2005) and the conclusion was that this made very little difference to the total strength of a line once you add up the various allowed and intercombination components between two given configurations (this is the principle of spectroscopic stability). Since the components are all blended in He I, it is impossible to observe any noticeable effect from the intercombination transitions.
However, the situation is different in the X-ray regime, e.g. for Fe XXV. Due to relativistic effects the singlet, triplet and intercombination fine structure components shift further and further apart as Z increases. They are easily resolved by e.g. XMM for Fe XXV. The principle of spectroscopic stability will not hold for the individual fine structure components and there will be a noticeable effect on the observed spectrum. Therefore it is desirable to correctly predict this.
Bauman used a separate code for his 2005 paper that is maintained in the bauman repository. It looks like the necessary code to treat intercombination lines was only party merged into Cloudy and never worked correctly. Presumably the project was abandoned halfway once the principle of spectroscopic stability was discovered. The problems will be analyzed further below.
There are only two places where FSM is taken into account: when we calculate the Einstein A coefficients and when we push the lines onto the line stack.
I analyzed the latter code and found the FSM-specific code in prt_lines_helium.cpp cannot be executed under any circumstances. It looks like it has been inserted in the wrong place.
The former code (in the routine DoFSMixing() in helike_einsta.cpp) also seems to have issues. It is governed by a complex if-statement that has its peculiarities. I will not go into details here, but the bottom line is that the mixing is only done for transitions with Δn = 0 and min(l,l') >= 2. This seems to contradict Bauman's 2005 paper where he does show n-changing intercombination lines in Table 2. Also other things do not stack up. E.g., the paper mentions tabulated mixing angles which are not present in Cloudy.
Collisional intercombination transitions are not considered at all, but as far as I can see that is not the case in the Bauman paper either (which only considers the low-density limit).
It looks like the implementation in Cloudy is not complete and was never seriously tested. We therefore decided to remove it.
To get the code working correctly for X-ray spectra, the following needs to be done:
1 - fully J-resolve the triplet levels; this is necessary since the individual triplet components can be resolved in X-ray spectra.
2 - reintroduce the code for calculating Einstein A coefficients; the existing code can likely be used for this (but note that it has not been tested!); it needs fixing as it now generates error messages and does not make predictions for Δn > 0 lines.
3 - create code for estimating collisional rate coeficients for intercombination transitions.
4 - create code for pushing the components on the line stack; the current code cannot be used for that as it tries to add up the components, which is no longer what we want.