Please check the website, http://pgopher.chm.bris.ac.uk/
and the beta version page http://pgopher.chm.bris.ac.uk/pgopher-beta/
The following are not implemented in the current version of PGOPHER, but may be in a
- Spherical Tops
- Nuclear spin effects in symmetric tops are limited to nuclei
on the symmetry axis only.
- Electron spin effects in symmetric tops are partly
- Magnetic dipole transitions in symmetric tops are partly
- Internal rotation and other large amplitude motion effects can
only currently be dealt with if the effects are small, and can
be accounted for by adding one or two terms to the Hamiltonian -
see the discussion around the data file nd3x0one.pgo in The pure rotational spectrum of the ground
state of NH3 for an example involving the
inversion doubling in ammonia.
- The Mac version is less polished than the windows version. Any
problems are, however, likely to affect the user interface only,
rather than the calculations. (A comprehensive test suite for
the calculations passes on all systems.)
Upgrading from previous
Newer versions of PGOPHER can always read
files from older versions, though design changes may mean some
changes must be made on loading selected files, as noted below.
Older versions can normally read .pgo files from newer
versions, though use of new feature can trigger a warning about
unread items. If an error prevents the .pgo file from
loading at all in an older version, an ordinary text editor can be
used to remove the problem item if use of an older version is
- After 8.0.101 calculated angles for an electronic state are shown in
degrees, rather than radians.
- After 8.0.186, files with Polarization
objects set to something other than the default of 1 will
give an error message on loading. This can be ignored, though
earlier calculation with such a setting are likely to have been
wrong. The rank is now taken from the transition moment.
- To allow all nuclear spin states to be included in calculating
partition functions, the SymWt
setting in linear molecules is now (from 8.0.217) included in
intensity calculations even for molecules without a centre of
symmetry. (This is not normally required, but can be important
in, for example, calculations of thermodynamic properties.) To
avoid inconsistencies loading data files prepared with older
versions of the program will force SymWt to 1 for
linear molecules without a centre of symmetry.
- Versions before 8.0.258 swapped the +l and -l
labels in symmetric tops for levels of E2 and E5
vibronic symmetry (not rovibronic symmetry) as compared to the
definition given by Hoy and Mills J. Molec Spectrosc. 46, 333 (1973). The calculated energy levels and
intensities are not affected, just the labels of the states.
Input files for fitting produced by or for older versions may
require adjustment for degenerate vibronic states in the
affected point groups (D4d and other groups with 5
fold or higher rotation axes).
- The J adjusted symmetry handling and associated JAdjustSym
setting and A+/A- B+/B- symmetry notation was only fully
implemented in version 8.0.285. Linelists used for fitting by
earlier versions may require adjustment if J adjusted
symmetry is used in specifying states. (Some of development
versions had + and - swapped.)
- The method used for determining the assumed origin for
Boltzmann calculations changed in 8.0.333. The AssumedOrigin
parameter was introduced allowing this to be explicitly set if
required. In addition the logic for linear molecules was
slightly adjusted for some cases, which may mean that different
results are now obtained if the IntensityUnits
are set to Arbitrary. The difference will only be a
constant scale factor (exp(-ΔE/kT) where
ΔE is the difference between the old and new
- Parameters are scaled by default during fitting in versions
after 8.0.389, as controlled by ScaledParameters.
This changes the useful values for SVDThresh, so the
default for SVDThresh
has changed from 10-15 to 10-6. The
previous behaviour is obtained by setting ScaledParameters
to false, and this is forced on loading old .pgo files
if SVDThresh is
set in the file.
- In version 10.0.21 the method of calculation for two photon
(and higher rank) transitions in the presence of external fields
was changed, and earlier versions will have given wrong results
for perpendicular polarization. See Polarization
objects for more information.
- In version 10 an adjustment has been made to the phase of some
transition moments; see the discussion at the end of Transition Moments and Line Strengths
for more details. For the most correct calculations FixTransitionPhase
should be set to true, and this is likely to become the default.
In practice this will not affect most calculations, but may
change calculations involving multiple interfering transition
moments, particularly if they are of different types.
- In version 10.0.502 the default order of J and
F within a given basis set changed from
decreasing to increasing. This can provide better quantum number
assignments under some circumstances, though in most cases will
have no effect. To force compatibility by reverting to the older
order set OldHyperfineOrder
New Features and Fixed problems
- New Features in 10.0.505
- Automatic Fitting as
described in "Automatic assignment and fitting of spectra with
PGOPHER". There are knock on changes in the Residuals Window, Transitions Window and Line List Window.
- Automatic baseline and peak finding; see under Automatic Fitting for worked
- More general lineshape functions - see Lineshape Function and Custom Lineshape Function.
- Forbidden Transition
Moment to allow a wider range of forbidden transitions
to be simulated.
- Bulk Import From Table for
states, transitions and perturbations.
- Import of Excel (.XLS, .XLSX) files and selected other
spreadsheet formats, depending on the platform.
- The full set of unicode characters are now handled in many
contexts, though it is recommended that object names are
restricted to the standard ASCII set to avoid problems with
earlier versions of the program. PGOPHER assumes
UTF8 encoding in text files in the absence of any other
- The default value of MinI
is now 0.01, which typically gives more useful Fortrat plots
as many weak transitions are excluded.
- Initial implementation of import of Bruker Opus files
- Initial implementation of handling of spectra in FITS format, common
for astronomical data.
- Text file overlay import faster and more robust, and will
also import comment lines from the start of the file.
- In the overlay menu, "Deglitch" is now "Delete
point", and "Delete Points" command has been
- On-line help is now connected on Linux and Mac.
- Enhancements to SPFIT/SPCAT file handling - see the qfmt and
- Significant speed-ups for selected operations, particularly
handling large line lists and experimental data files.
- LAPACK upgraded
- "Offset By..." menu item on manifolds to shift all
state origins by a constant amount.
- Stack traces on non-windows systems now show in the log
window, rather than the console.
- More consistent keyboard shortcuts in Mac version.
- Overlay linelists can include estimated error values; these
are not plotted, but if the peak finder finds a single peak
the value will be copied to the "Std Dev" column in
the linelist window.
- Fixed Problems in 10.0.505
- An adjustment has been made to the phase of some transition
moments; see the discussion at the end of Transition Moments and Line
Strengths for more details. For the most correct
should be set to true
- M dependent line strengths for perpendicular
multiphoton transitions. See Polarization
objects for more information.
- Change in definition of spin forbidden gS; now discards
quantum number dependence
- Changing units changes increment as well as value and
- On non-windows machines, save and restore of a setup with
multiple plot windows open gave a (harmless) error message.
- Colours lost in line list window.
- New Features in 9.1.100
- Comprehensive tutorial Walkthrough of
Simulating and Fitting a Simple Spectrum added to the
documentation, including an N2O sample spectrum to
- Custom Width Functions
provide an alternative simple empirical way of specifying
quantum number dependent line widths and intensities.
- Significant rework of the Transitions
Window to allow selection by more quantum numbers and
- BranchExpr format
added as an option to the linelist
- Remove forced sorting of transition moments by rank.
- Settings set to Auto have the actual value
displayed in the hint in the constants window and in detailed
- Rename parameter command added to the Variables object, and others to
which parameters can be added.
- makesvn script to
give a starting point for compiling PGOPHER if the
available binaries are not suitable.
- Updated fundamental constants to the CODATA 2014 set from http://physics.nist.gov.
The largest effect of this is a to scale effective absolute
temperatures by 1.000000274, the amount by which k/h
- Atomic masses taken from v4.1 of the NIST "Atomic Weights
and Isotopic Compositions" at http://physics.nist.gov/PhysRefData/Compositions
- LAPACK upgraded
- MaxDJ setting for Linear,
Symmetric, Asymmetric Top nuclei to
limit the maximum ΔJ to consider in
evaluating hyperfine matrix elements.
- Fixed Problems in 9.1.100
- Disable global menu on Ubuntu Unity for PGOPHER,
as it interacts badly with the multiple windows used.
- Speed up rejection of vibrational states above Emax.
- All Button on plot now resets vertical scale as well as the
- If Signed
of a Custom Transition
Function was True the function was called
twice, both with and without the signed quantum numbers. The
is only an issue if the Value variable was used.
- Copy Branch Table/Copy Simple Format and
corresponding fits in the linelist
window fixed for linear case for several combinations of
- Transitions window would
show 4th power of transformed transition matrix elements if
transition moments with multiple ranks contributed to it,
rather than the square as labelled.
- In Transitions window
update symmetry names if molecule JAdjustSym
setting is changed.
- Fixed Problems in 9.0.101
- Better handling of multiple spin 0 nuclei on .par/.var
- Some error messages in Mac version resulted in crash.
- New Features in 9.0.100
Partition Function for calculating complete partition
- Command line export of Hamiltonian and
- Scale relative magnitudes of parameters when fitting, based
on the derivatives. This is controlled by the ScaledParameters
- Switch memory manager to FastMM,
which is significantly faster on some workloads. In addition
changes have been made to the code that gives significant
speed-ups for large problems on multi-core machines.
- Export to CSV
file added as option in right clicking an object in the constants window.
parameter to override automatic estimate of this.
setting to override automatic mechanism for assigning Ω,
N and F number in linear molecules.
- l-matrix and other vibrational calculation windows
have an option to rotate the plot plane about the axis plotted
horizontally. (A full 3D plot option is planned for the next
- More plot options in the Residuals
window, including ratios and logarithmic scales most useful
when fitting intensities, and the population option now works.
- zMatrix has a show calculated
parameters menu command.
- A+ and A- (and B+/B-) notation for symmetry alternating with
J in Symmetric Tops.
directive in observation files to specify the units of
- Default Symmetry in
observations files can be specified as either J
adjusted or non J adjusted.
- Branches in linelists for fitting can be expressed in a more
general way using the BranchExpr
directive, to allow easy adjustment to assignments.
- Custom Population
functions now have EB and Origin
variables, to allow a closer match to the PGOPHER
- Simple calculator for testing expressions.
- Table object for use with
- Objects having an expression, such as Custom Population
Functions or Custom
Transition Functions now display with an enlarged (and
correctly labelled) window in the Constants
is now an intensity option.
- Sub-basis numbers can be included in the quantum number
- The SymWt
setting in linear molecules is now included in intensity
calculations even for molecules without a centre of symmetry
to allow all nuclear spins to be included in partition
- The size of matrix that the 64 bit version can handle is now
limited by available memory, rather than 16384×16384.
- Check Derivatives
option to fitting to assess the accuracy of numerical
derivatives, and other tools to assist in fitting.
- Branch format
allows specification of symmetry for symmetric tops.
- Setting SVDThresh
negative switches the least squares process to a QR
- Simple line list format extended for symmetric tops, and
other fixes to K quantum number handling, including branch format input.
See the SymmetryLabels
flags. As part of this fix Copy simple format from the linelist window now works for
- Detailed output now includes simulation parameters, and
fundamental constants used.
- Custom populations can now specify an M dependence in the
presence of external field, either in a custom population
function, or as numerical populations specfied in a manifold.
- Force constants in internal coordinates can now specify the
electronic states they operate on, allowing for Jahn-Teller or
similar terms that act between electronic states to be
- Added zero point rotational constants Bx0, By0 and Bz0 to
calculated parameters for an electronic state. These and the
inertial defect are calculated to avoid problems with
resonances for zero point level, as in A. L. L. East, C. S.
Johnson and W. D. Allen, J. Chem. Phys. 98, 1299
- Switched fundamental constants to CODATA 2010 set (was 2006
set). This has a small effect, most significantly on
intensities. (A temperature of 300.000375 K is required to
reproduce earlier spectra at 300 K).
- Threshold for zero frequency vibrational modes and other
small values now adjustable via SmallCoefficient.
- Loomis-Wood plots.
- Debug setting added to Custom Population
functions and Custom
Transition Moment functions.
- Angstroms (or Å) now a valid unit.
- LAPACK upgraded
- Correlations object now
always written to .pgo file if present. (It was not in version
8 to avoid compatibility problems with earlier versions.)
- Fixed Problems in 9.0.100
- Adjusted treatment of exclude
perturbations flag when plotting observed energy levels.
- Negative Error
Multiplier in energy level plots scales errors by the
estimated error of the observation.
- Inconsistent observation colours in level
and residual plots.
- Improve F1/F2/F3 numbering and N assignment if OmegaSelect is
used for linear molecules. Note that unexpected results are
still possible - see the documentation for OmegaSelect.
- If Symmetry
Coordinates are used the largest coefficient in the L
matrix for a given mode is forced positive by multiplying the
mode by -1. This helps to give consistent signs for Coriolis
coupling constants and some other values.
- Equivalent nuclei with spin 0 that have been explicitly
included in the calculation now have the correct statistical
weight applied. As part of this fix, the irrelevant Spin and
AsNext settings were removed from nuclei for vibrational
- The I2 built in calibration overlay was broken.
- Hönl-London checkbox disabled in Transitions Window if external
fields present, as it does not do a relevant calculation.
- Documentation for Scomp values for linear perturbations was
wrong - values in text were doubled.
- Width setting in
vibrational simulations was treated incorrectly.
- +l and -l labels were swapped in symmetric
tops for levels of E2 and E5 vibronic
symmetry (not rovibronic symmetry) as compared to the
definition given by Hoy and Mills J. Molec Spectrosc. 46, 333 (1973).
- Specifying individual level
populations failed when overall J was half
- l matrix import from molpro was not handling dummy
- Complex transition moment matrices were not displayed
correctly in the transition moments window.
- The RemoveSpins
directive was not correctly removing all terms involving
- Display of symmetric
top perturbations in constants tree inverted if lChange
- Convert to Perturbations for symmetric tops corrupted zeta.
- Branch format linelists failed for linear molecules with
- HITRAN files for O2, NO and OH would not import;
ignore lines not beginning with a number.
- Spectra in the presence of external fields involving
symmetric tops with degenerate vibronic states included
spurious extra transitions.
- M dependence of multiphoton transitions always used 1
as the transition rank, giving incorrect intensities in the
presence of an external field. As part of the fix for this
Rank has been removed as a setting in Polarization objects; the rank
is now taken from the transition moment. In addition spectra
with random polarisation in the presence of an external field
had the wrong relative intensity between ΔM = 0
and ΔM ≠ 0 for all ranks.
- Energy level lists of a single state in a manifold only show
levels assigned to that state.
- Display of vibrations fails in the presence of dummy atoms.
- Force failure when redundant coordinates used and UUT
= 1 test fails.
- Do not decompose Dushinsky
Matrix into equivalent rotations if determinant
- G-1 matrix printed out incorrectly
- Force field analysis printout used two different meanings
for the A matrix.
- Documentation wrong for FixCentre.
- Allow FrequencyOffset
to be set in a .ovr file at the same time as a calibration
- Remove order dependence of node fixup.
- Fixed crash on level printout if widths present.
- Peak finding reported positions to insufficient precision
for spectra with a very non-uniform frequency scale, such as
spectra arising from combining non-adjacent individual
- Custom Population
functions and Custom
Transition Moment functions used ½ the required
values for the Fn variable.
- Precision lost in Voigt profile on some platforms
- Units directive more
flexible: accepts cm1, nmVac, nmAir, angVac, angAir, Angstroms. (Previous versions had
no way of specifying air wavelengths.)
- Fixes for compilation using the free Pascal compiler under
- Fixed Problems in 8.0.102
- Calculated angles for a state
more than 138.5 degrees shown as 180-angle. In fixing this,
the angle display has been changed to degrees, rather than
- Level and states window crash on Mac (only), and fixed some
- Inconsistent results depending on whether the Internal Coordinates and
related windows displayed or not.
- Fixed inconsistent use of Principal axis system in selected
- Molden import of l matrix files now normalizes all
the normal co-ordinates.
Log of older changes
- New Features in 8.0.100
- Tweaks for Mac usage, including more (Mac) standard shortcut
keys and dropping of files onto main window.
- Much increased flexibility in the
use of HITRAN files.
- ExoMol files can be used
in a variety of ways by PGOPHER.
- Added η and γS terms to the linear
molecule Hamiltonian. These are required for some states with
S > 1.
- Custom Transition
Moment Function provides a more general way of modeling
any J dependence of the transition moment, replacing
the C and D parameters of Transition Moment objects.
Data files containing non-zero C or D
values are converted to use this automatically on loading.
- Axis Switching effects can now
- More symbolic matrix elements - selected transition moments,
- half spin Vibrational calculation.
- Open shell symmetric tops.
- Documented lambda doubling for delta and higher states.
- scalestddev directive in fit files to allow
relative standard deviations to be set as a fraction of the
observed value - mainly intended for fitting intensities.
- removespins directive in fit
files now works for intensity fits, as well as line position
- Linelist window has many more
options - fit as branch format, save as branch format.
- A Variables object can be used
to add dummy parameters for constrained fits.
- Constrained parameters are forced to be not floated as part
of the fit setup process.
- Level Window now has option to
use J(J+1) for the x axis, rather than
- Rename of Molecule or Manifold will offer the option of
making the required name change in the linelist window.
- Simplified line list format extended to be more flexible for
linear molecules, and to allow fitting to levels as well as
- Right click on Molecule or Manifold now offers "Energy Level
List" option, sorted by symmetry or energy, and "Partition
Function Table" which prints out a table of partition
functions for the selected node as a function of temperature.
It will also display the fraction of partition function due to
levels up to the level set in "Level List by energy".
- The numerical data from many files produced by Origin (.OPJ
files) can now be read.
- Print out of Stark or Zeeman shifts now estimates linear,
quadratic field shifts and fits to an intermediate two level
- When plotting parts of an overall spectrum, the different
coloured spectra are always plotted in a consistent order.
- Images from many PDF files can now be read as a bitmap overlay.
- UsePopParams as an
alternative, per manifold, way of setting the use of numerical
- The vertical range of both overlays and simulations can now
optionally be set, rather than always auto scaling. This is
controlled by the AutoMin and AutoMax settings in overlays and
simulations. The toolbar on the main window has been updated
to provide some control over these.
- Consistent handling of imaginary operators for asymmetric
- LAPACK upgraded to 3.4.2
- Symbolic matrix elements and convert to perturbation now
implemented for symmetric tops.
- Initial implementation of custom population
- Initial implementation of D3, D4 ... D8
point groups for symmetric tops.
- Compact of a bitmap now prompts for a threshold.
- When simulating spectra in the presence of a static electric
or magnetic field, the partition function is now calculated
with static fields on, rather than at zero field.
- 64 bit version (using unicode internally) now part of the
- Fixed Problems in in 8.0.100
- When importing l matrices from Gaussian output, read
both the "Input orientation" and "Standard orientation" atomic
co-ordinates and use the most recent set when reading
vibrations to allow files produced with the "nosymm" flag to
- Very low temperatures (~0.01 K or less) could cause some
transitions to be missed if Tspin
is not the default. An error message is now printed in these
- Spin forbidden transition moments in linear molecules were
incorrectly giving zero intensity for q = 0 components
in certain circumstances. The definition of the Strength
parameter has been adjusted to fix this.
- Added progress indicator to constructing large vibrational
bases to allow abort on large problems.
- The import of the l matrix from Molden or Molpro
files now assumes average mass for nuclei, rather than the
exact mass for the most abundant isotope. In addition a
different set of atomic co-ordinates is taken from Molpro xml
files, as the one originally chosen did not use a consistent
axis system. For all l matrix imports an orthogonality
check is done and a message displayed if the result is too
- Default vMax for a Vibrational
Mode is now zero, unless there are 3 or less modes, in
which case it is 3. This prevents triggering a very large
calculation by accident; the default was 5 for all modes.
- Line list output - column headed S is actually Spol
- change header appropriately.
- Linear Perturbations with Scomp <> 0 were
not displayed correctly in the object treeview.
- Contour fits now permit undefined values for the observed
- Fix crash of following use of recently opened files on Mac
by replacing TdfsMRUFileList component with simplified
- Switching units scales Displacement in VibrationModeChange
does not change spectrum. (Effective units are
- Move Up/Move Down of plots in overlays window was ignored
until overlay file saved and reloaded.
- Level Window gave corrupt plots
if a very small vertical range was selected.
- Transitions Window was not
showing matrices for selected transitions in the vibration
- Selected transitions omitted for the unusual point groups C3h...C6h
(involving states with E symmetry) and S4...S12
(for non totally symmetric states) point groups.
- Force use of "." for decimal point, even if changed for
system while program running. (This is required so that data
files are not language dependent.)
- Fix blank edit boxes on main window toolbar if system font
set to large on Windows.
- Matrix printout in log window for high print levels could
- Equivalent nuclei case handled incorrectly in presence of
- Degeneracies printed incorrectly in level lists in presence
of static electric or magnetic field.
- Einstein A
coefficient printed incorrectly in line lists if the plot
units were different to the calculation units.
- Covert units button on constants form failed when AsNext set for
- Statistical weights calculated incorrectly for the case of
more than one pair of equivalent nuclei when hyperfine
structure was included.
- Hyperfine structure with more than one set of equivalent
nuclei, or different nuclei using an equivalent coupling
scheme like I12
= I1 + I2; F2 = J + I12; I34 = I3 + I4; F = F2 + I34 was not
- Potentially complex fine and hyperfine terms in asymmetric
tops were not necessarily handled correctly. This affects
"off-diagonal" terms such as eabbar, Tab and CHIab. This is
fixed by the introduction of consistent handling of imaginary
operators for asymmetric tops.
- Fixes for symbolic matrix elements for asymmetric tops
(Origin and BBar).
- State dependent widths (wK, wJ) for symmetric tops were ignored.
- "Another" button on level plot was broken.
- Energy level fit to lower level failed if no default