Procedures Details | <Prev Next> |

The range of J used for simulating spectra
and calculating partition functions can require some consideration
for certain values of the constants, particularly if centrifugal
distortion is large. (This can be a particular problem when
fitting as intermediate values used as part of the normal trial
and error process can cause problems even if the final values are
fine.) The symptoms are either the error message "Overflow in
Boltzmann for xxxx: E=-nnnn" or a very strange simulated spectrum
consisting of just a few high J
lines.

The problem typically arises because the standard rotational energy expression involving centrifugal distortion:

### Evaluating the Partition Function

The partition function sum for a molecule, Q,

The problem typically arises because the standard rotational energy expression involving centrifugal distortion:

B
J(J+1) - D J(J+1)

will always lead to physically
unreasonable increasingly negative energies at high enough J. (The same is true for
non-linear molecules, though the energy expressions are more
complicated.) Typical values for J range and centrifugal distortion mean that
this is not normally a problem, but it is fairly easy to use
values that give this effect. Large negative energies will
either cause the the Boltzmann expression exp(-E/kT) to overflow, or to put all the population
in the highest J
levels. The problem is most likely to show in evaluating the
partition function sum as this is where PGOPHER normally uses
the highest J values.
To fix try one or more of the following:

- If the problem is only in the calculation of the partition function, then simply using a partition function of 1 provides a quick fix. You can force this behavior by setting IntensityUnits to Arbitrary for the simulation as a whole. This is not unrecommended for general use, as it can give very misleading relative intensities in simulations.
- Check the centrifugal distortion constants are reasonable -
an energy level plot including
high
*J*values can be particularly helpful in showing this.

- If the problem only occurs in evaluating the partition
function, set AutoQConverge
in the affected manifold to false. This may need to be
combined with the following two points.

- Adjust the maximum J used in the calculation (See Determining Colours and J ranges).
- If the centrifugal distortion is particularly problematic, perhaps as a result of perturbations, it may be necessary to add higher terms. A small positive value for a very high order constant can be used for this; given the high power of J it can be set to have a negligible effect at low J and to force the correct limiting behavior at high J.
- Use an external table of partition function values as a function of temperature; see InterpolatedPartitionFunction for how to do this. Unless several ground state vibrational levels are included in the calculation, this approach is anyway likely to be necessary for full accuracy in absolute intensities.
- For some molecules this can be triggered at very low
temperatures (~0.1 K or below) as an assumed origin is used in
calculating the Boltzmann factor, which can be significantly
above the lowest energy level of the system. This is only
likely for linear molecules with large rotational constants,
in which case the
`AssumedOrigin`should be set manually.

Q
= Σ g_{i}
exp(-Ei/kT)

is needed to calculate
relative intensities and is evaluated unless the IntensityUnits
are set to Arbitrary
for the simulation as a whole
(or unless the sum overflows as discussed above). The sum
extends over all manifolds where Initial is true,
and by default continues until the highest 8 J values have
contributed < 10^{-4} of the overall sum. This
behavior can be controlled by the AutoQConverge
in individual manifolds; if
this is set to false then the sum stops at the maximum J set for the manifold
(See Determining Colours and J ranges
for a discussion of how this is determined). To verify that
the partition function sum has been calculated correctly after
adjusting these settings, the contributions to the sum from
individual manifolds and J
can be seen by going to the Energy
Level Plot Window and pressing the "List"
button.

It is possible to skip evaluating the partition function by setting IntensityUnits to Arbitrary, but note this can give misleading relative intensities. (Relative intensities between isotopologues such as^{35}Cl_{2}
and ^{35}Cl^{37}Cl will come out wrong, for
example.)

The origin used for the energy level values can also be important in avoiding arithmetic overflows, and some special logic is used for linear molecules to estimate the energy of the lowest Ω. All energies are then taken as relative to this in evaluating the sum. This value is printed out (if non zero) when displaying the details of the partition function sum.

It is possible to skip evaluating the partition function by setting IntensityUnits to Arbitrary, but note this can give misleading relative intensities. (Relative intensities between isotopologues such as

The origin used for the energy level values can also be important in avoiding arithmetic overflows, and some special logic is used for linear molecules to estimate the energy of the lowest Ω. All energies are then taken as relative to this in evaluating the sum. This value is printed out (if non zero) when displaying the details of the partition function sum.