PGOPHER

Colin Western (help-pgopher@bristol.ac.uk)
School of Chemistry, University of Bristol, UK

Version 8.0.102 (11 December 2013): Minor update to fix crashes in energy level plots in the Mac version, and some issues with vibrational calculations. See the release notes for a more detailed list of problems fixed; there are no new features

Version 8.0 (2 December 2013): A significant new release of PGOPHER, with the major new feature being the addition of the calculations involved in a Force Field Analysis to PGOPHER. This allows vibrational frequencies and many other related quantities including Franck-Condon factors and centrifugal distortion distortion constants to be calculated from a force field expressed in terms of bond bending and stretching coordinates or symmetry coordinates. Fitting the force field to any reasonable combination of observations is also possible, and this has been set up so that scaling or otherwise adapting ab initio force fields is straightforward. Other significant new features include:
  • Custom population functions, allowing an essentially arbitrary function to be used as an alternative to the Boltzmann distribution.
  • Flexible use of HITRAN and ExoMol linelists.
  • Axis switching effects
  • Custom transition moment functions to allow for Herman-Wallis factors
  • Tweaks for Mac usage, including more (Mac) standard shortcut keys and dropping of files onto main window.
  • 64 bit version now part of the standard release, allowing larger calculations to be performed.
See the release notes for a detailed list of changes, including notes on upgrading from previous versions.

Version 7.1 (13 September 2010): Bug fix release - In the vibrational only mode, linear molecule Franck-Condon factor calculations for states with non zero vibronic angular momentum had incorrect intensities, as the degeneracies were not properly accounted for. A few other minor issues have also been fixed.

New in version 7.0 (15 June 2010): Apart from many minor improvements and bug fixes, several features have been added at the request of users:
  • Interactive adjustment of parameters with the mouse.
  • Fits to combination differences.
  • Uncertainties in calculated line positions can now be estimated from the results of least squares fitting. This is enabled by the ShowEstUnc setting at the top level.
  • A separate nuclear spin temperature can be set, Tspin, to model the non equilibration of nuclear spin states on cooling, such as the ortho and para states in H2.
  • Alternative, simplified line list format.
  • A command line version of PGOPHER is also now available, with text or Binary format output. This is particularly suitable for using PGOPHER with other programs.
  • Doppler double peak line shape, as often found in Fourier transform microwave spectroscopy which can be used in addition to the standard Gaussian, Lorentzian and Voigt line shapes.
New in the previous version (6.0):
  • A mode for simulating vibrational structure, including anharmonic and Renner-Teller effects, starting from a harmonic model. The intensity calculation includes full multidimensional Franck-Condon factors taking account of both mode displacements and mixing between modes (The Dushinsky effect).
  • Spectra in the presence of static external electric and/or magnetic fields can now be simulated, including plots of energy levels against electric field suitable for predicting Stark deceleration, focusing and trapping of molecules.

PGOPHER is a general purpose program for simulating and fitting rotational, vibrational and electronic spectra. It represents a distillation of several programs written and used over the past decade or so within the Bristol laser group and elsewhere, but is a re-write from scratch to produce a general purpose and flexible program. PGOPHER will handle linear molecules and symmetric and asymmetric tops, including effects due to unpaired electrons and nuclear spin, with a separate mode for vibrational structure. The program can handle many sorts of transitions, including Raman, multiphoton and forbidden transitions. It can simulate multiple species and states simultaneously, including special effects such as perturbations and state dependent predissociation. Fitting can be to line positions, intensities or band contours.

PGOPHER is designed to be easy to use; it uses a standard graphical user interface and the program is currently in use for undergraduate practicals and workshops as well as research work. It has features to make comparison with, and fitting to, spectra from various sources easy. In addition to overlaying numerical spectra it is also possible to overlay pictures from pdf files and even plate spectra to assist in checking that published constants are being used correctly.

The program is freely downloadable from a supporting web site at Bristol (http://pgopher.chm.bris.ac.uk), for Microsoft Windows, Apple Mac and Linux, with a beta version available for the . The data files are the same, regardless of the platform. The program is released as open source, and can be compiled with open source tools.

Graphical User Interface Features

  • Simple enough to use for undergraduate practicals, but flexible enough to use for multiple interacting states.
  • Multiple simulations coloured by species, isotope, state or transition type.
  • Interactively changing spectrum range, temperature, linewidth, display style.
  • Displaying Fortrat diagrams and energy level plots
  • Select transitions by lower or upper state J, symmetry or ΔJ.
  • Right clicking on peaks to see assignment.
  • Overlaying experimental spectra from file(s) or the clipboard (frequency, intensity format).
  • Overlay pictures from pdf files or other sources.
  • Alt+left mouse dragging experimental spectra to adjust offset between simulation and overlay.
  • Built in Calibration (I2, Ne, Fe) for experimental spectra.
  • Energy Level plots.

Calculation Features

  • Linear molecules in Hund's case (a) or (b). (Other cases can be handled with some restrictions.)
  • Symmetric top molecules
  • Asymmetric top molecules
  • A separate mode for simulating Vibrational structure only, based on a harmonic model, but anharmonic and Renner-Teller effects can be added. The intensity calculation includes full multidimensional Franck-Condon factors including both mode displacements and mixing between modes (The Dushinsky effect).
  • Spectra in the presence of static external electric and/or magnetic fields can be simulated, including plots of energy level against electric field suitable for predicting Stark deceleration, focusing and trapping of molecules
  • Open and closed shell systems (symmetric tops are currently closed shell only)
  • Simulates microwave, infra-red and electronic absorption and emission spectra.
  • Multiphoton and Raman transitions, with any combination of transition moments including interfering transition moments.
  • Handling an arbitrary number of states and perturbations between them.
  • Fitting to line positions, band contours or line intensities.
  • Flexible input formats, including HITRAN (http://www.hitran.com) .par files and JPL (http://spec.jpl.nasa.gov/) .cat files.
  • Many molecular parameter (.par) data files for Herb Pickett's CALPGM spectroscopy program suite (http://spec.jpl.nasa.gov/) can be imported as PGOPHER input files.
  • Handling arbitrary combinations of isotopes and molecules with spectra coloured for easy identification.
  • Simulate effects of quantum number dependent predissociation on line width and intensity.
  • Hyperfine structure (not currently for symmetric tops).
  • Symbolic matrix elements available for linear molecules and asymmetric tops. (Right click on a state or constant and select Matrix Elements)
  • For larger calculations, parallel calculations can be done on systems with multiple CPU's.

Supported Platforms

  • Windows
  • Linux
  • Apple Mac

System Requirements

Most calculations will run on any reasonably modern machine; larger calculations involving multiple states can benefit from more memory or processors.


GNU Lesser General Public License

Version 2.1, February 1999

Copyright (C) 1991, 1999 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

[This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.]

Preamble

The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users.

This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below.

When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things.

To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it.

For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights.

We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library.

To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others.

Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license.

Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs.

When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library.

We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances.

For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License.

In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system.

Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library.

The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run.

TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you".

A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables.

The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".)

"Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library.

Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does.

1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library.

You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.

2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:

a) The modified work must itself be a software library.

b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change.

c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License.

d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful.

(For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.)

These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library.

In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.

3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices.

Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy.

This option is useful when you wish to copy part of the code of the Library into a program that is not a library.

4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange.

If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code.

5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License.

However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables.

When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law.

If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.)

Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself.

6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications.

You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things:

a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.)

b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with.

c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution.

d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place.

e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy.

For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.

It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute.

7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things:

a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above.

b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work.

8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.

9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it.

10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License.

11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library.

If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances.

It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.

This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.

12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.

13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.

Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation.

14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.

NO WARRANTY

15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

END OF TERMS AND CONDITIONS


Citing PGOPHER

Publications which use PGOPHER should cite it as follows:
  • PGOPHER, a Program for Simulating Rotational Structure, C. M. Western, University of Bristol, http://pgopher.chm.bris.ac.uk
I would also appreciate being informed of any publications using PGOPHER.


Acknowledgments

The current version of PGOPHER is the product of many years research in the general area of spectroscopy. During that time my work has mainly been funded by the Engineering and Physical Sciences Research Council (EPSRC) and (in the early stages) by The Royal Society. I should also acknowledge the input of colleagues in Bristol and around the world for assistance in testing, finding bugs and making suggestions for improvements to the programs. There are too many to name individually on the whole, though I should mention Nicky Elliott who helped in the preparation of this documentation.


Installation - Windows

No special procedure is required for installation; for basic operation just download one of the self contained PGOPHER executables:
  • Pgopher.exe - 32 bit version; should run on any PC
  • PgopherU64.exe - 64 bit unicode version; requires a 64 bit version of windows. This can handle larger problems, but for most use cases either version will work fine. The data files are interchangeable.
and double click on it to run the program. The executable can be saved in any convenient directory. Not essential, but also available are:
  • tabslave.exe, a simple text editor optimized for use with PGOPHER, the Slave Editor,.
  • slave.exe provides an earlier version of the Slave Editor.
  • pgopher.chm provides a local version of the on-line help
These should be placed in the same directory as the PGOPHER executable.

Known Issues

If the cursor does not appear as a cross in the main window:

Try changing the cursor theme in the control panel. (The mouse icon in the "classic" view and then select "pointers").

If the help file does not display correctly:

I am getting some reports of problems with the help file, pgopher.chm; it is in a Microsoft standard format but for Windows 2000/XP changes around June 2005 have meant that .chm files may not display correctly under some circumstances. The problems are minimized if the help file is on a local drive (rather than a mapped drive), or you may have to apply the fixes suggested in one or more of the following Microsoft knowledgebase articles:
      • KB902225 if the help file does not open at all
      • KB896054 if the help file opens, but displays the index but no contents
      • KB896905
      • KB892675


Installation - Linux

The Linux version is not quite as polished as the Windows version, but should be perfectly usable. Any problems are likely to be user interface glitches only, rather than the calculations. (A comprehensive test suite for the calculations passes on all systems.) PGOPHER should run on most recent Linux distributions as is provided the correct libraries are installed, mainly gnome support libraries.

The website has two tar files:

  • pgopher-i386-linux.tgz for 32 bit x86 machines
  • pgopher-x86_64-linux.tgz for 64 bit x86 machines. This can handle larger problems than the 32 bit version, but for most use cases does not provide any significant advantage. It will not run on 32 bit operating systems.
If running a 64 bit operating system the 64 bit version is probably the version to go for, though the 32 bit version will run on 64 bit systems, provided the appropriate 32 bit libraries are installed. (This is ia32-libs on Debian and derivatives.)

For either file, simply download and unpack using the command line (tar xvf <filename>) and run the PGOPHER executable (./pgopher). Executables (slave and tabslave) are also provided for the Slave Editor in the tar file, and this should be kept in the same directory as the PGOPHER executable.

If the binary does not run on your system you may need to compile from source, or email help-pgopher@bristol.ac.uk.

The Help menu entries do not do anything at the moment, but the help files are available at http://pgopher.chm.bris.ac.uk/Help/ and a tarball of the current help files can be downloaded from the website.


Installation - Mac

The Mac version is not as polished as the Windows version, but should be perfectly usable. Any problems are likely to be user interface glitches only, rather than the calculations. (A comprehensive test suite for the calculations passes on all systems.) I have also had reports of success running the Windows version on emulators for the Mac; speed is only likely to be an issue for the larger calculations (asymmetric tops, for example).

The website has the following file available:
  • Intel: pgopher-MacOSX-i386.app.zip compiled for OS X Leopard (10.5) and above.
Simply double click on the zip file to produce the application that can be run in the normal way. The application is not signed, so more recent versions of OS X will give a security warning. In this case to run PGOPHER for the first time control click or right click on the PGOPHER icon and select "Open". A PowerPC version is available on request.

Usage Notes

  • Interactive fits are much easier with a two button mouse rather than a one button mouse or trackpad. (Right clicking is required, which can be done with a slightly awkward ctrl+click.)
  • Some operations require the delete (not backspace) key. This is fn+backspace if your keyboard doesn't have a (forward) delete.

If the binary does not run on your system you may need to compile from source, or email help-pgopher@bristol.ac.uk.

The Help menu entries do not do anything at the moment, but the help files are available at http://pgopher.chm.bris.ac.uk/Help/ and a zip file containing the current help files can be downloaded from the website.


Command Line Version

PGOPHER is also available in a command line version, pgo[.exe] without the graphical user interface but with otherwise identical code. This is most useful when the output is to be used with other programs. Typical usage is:

pgo file.pgo

which will output a linelist as a text file using the parameters in the .pgo file. Common alternatives include:

pgo Mixture.PrintLevel=CSV file.pgo >file.csv
which will produce the line list in .csv format which, for example, spreadsheets can read. If a specific program is being written to use PGOPHER output, the binary linelist format may be quicker and easier to use:
pgo Mixture.PrintLevel=Binary Mixture.OThreshold=0 file.pgo >file.bin

Here Mixture.OThreshold=0 is being used to set a value in the Mixture object, in this case the cut off in line intensity; setting it to 0 ensures all lines are output. Any other parameter in any object can be set in this way; right click on the parameter in the constants view to show the name.Some of the intermediate objects can be omitted if their is no ambiguity; for example in the linear molecule example Mixture.Species.LinearMolecule.Excited.v=1.B can be abbreviated to Mixture.v=1.B.

To fit use:

pgo --fit file.pgo line.lin

The second file contains the observations. Alternative options are:

--fit
 Normal line list fit
--intensityfit
 Observations are intensity, not line positions
--fitlower
 Fit to lower state energies
--fitupper
 Fit to upper state energies
--contourfit
 Contour fit; second file should normally be an overlay file in this case.
--fitcdlower
 Fit to lower state common differences
--fitcdupper
 Fit to upper state common differences

To produce a plot use:

pgo --plot file.pgo plot.txt

This produces a simple text file with the plot data as lists of x,y values; other available formats are .svg and .xfig. Use --eplot to generate a plot as a function of electric or magnetic field.

Other command line options are shown below.

--np n
 Use n threads when calculating.
--overwrite
 When fitting, write out a new .pgo file with the new parameters on top of the old one.
--newpgo When fitting write out a new .pgo file with the new parameters to a file with name file1.pgo. (The number is chosen so as not to overwrite any existing file.)
--trackmemory
 Show time and memory usage at end of run
--times
 Show selected processing times at end of run.

The full graphical user interface version will load all the files given on the command line, and will also respond to most of the commands given above.


The Slave Editor

The Slave and TabSlave Editors

This are simple text editors, with the standard basic functions for text editing with a couple of features added to make working with PGOPHER easier:
  1. When starting a fit from PGOPHER (or other feature using external files), the contents of all modified open slave editor files are saved to disk.
  2. Right clicking on the assigned lines marks in the plot window or points in the residual plot can bring the slave editor to the front and move the cursor to the relevant line.
It is also optimized for handling text files from different operating systems, and can read and write files with any of the standard (Windows or Unix) line endings.

The TabSlave version only differs in allowing multiple files to be open at once in different tabs.

Installation

The executables require no special installation; for the link with PGOPHER to work fully they should be placed in the same directory as PGOPHER or somewhere on the users PATH.

Usage

In use it is a simple text editor. The only point that needs care is that if the automatic save feature is enabled, then if the file name is not set (as for a new file) or the file can't be written then PGOPHER will not run fits. The slave editor window will normally come to the front in these circumstances.

The status bar fields are character number, line number, Modified display (blank if not changed since the last save) and keystroke recording status

Menu Items

File

Open (Ctrl+O)
 Open a file
New (Ctrl+N)
 Create a new file

Reload
 Reload file from disk

Close
 Close file
Save (Ctrl+S)
 Save file

Save As...
 Save file with new name

Open File at Cursor (Ctrl+Enter) Read the file name at the current cursor position, and open it in a separate slave editor window.

Start File at Cursor (Alt+Enter)
 Execute file with name under cursor (as if double clicked in explorer)

Another...
 Open a separate slave window

Print
 Print the file

Print Preview
 Preview printing of the current file

Exit
 Close the editor
Edit

Undo (Ctrl+Z)
 Undo last edit
Redo
 Redo last undone action
Cut (Ctrl+X)
 Copy selected text to the clipboard and delete it
Copy (Ctrl+C)
 Copy selected text to the clipboard.

Clear (Ctrl+Del)
 Delete selected text
Paste (Ctrl+V)
 Paste selected text from the clipboard

Select All (Ctrl+A)
 Select all the text
Find... (Ctrl+F)
 Bring up dialog to find text
Find Next (F3)
 Find next occurrence of the text that was last looked for

Find Word (F2)
 Find next occurrence of the word at the cursor

Replace... (Ctrl+R)
 Bring up dialog box for searching and replacing text.

Go To Line... (Ctrl+G)
 Prompt for line number to go to.
Special

Set Bookmark (Ctrl+B)
 Set the bookmark to the current cursor location

Exchange with Bookmark (Shift+Ctrl+B)
 Exchange cursor and bookmark locations

Goto Bookmark
 Move cursor to bookmark

Increment (F11)
 Increment number under cursor. This is most useful when recording keystrokes

Decrement (Shift+F11)
 Decrement number under cursor

Remove Tabs
 Replace tabs with spaces in selected text.

Set Tab Spacing...
         Prompt for the tab spacing; the default is 8.
Sort Up
 Sort the lines in the file in ascending order. To indicate the columns to sort on select the appropriate characters in one line.
Sort Down
 Sort the lines in the file in descending order. To indicate the columns to sort on select the appropriate characters in one line.
Options

Record KeyStrokes (Shift+F12)
 Start recording key strokes (and menu selections). To stop recording, select this menu item again. "Recording" is indicated in the status bar while recording.

Play Macro (F12)
 Execute the recorded actions again.
Font...
 Choose the font used to display text

Keep Backup
 If selected (the default) then rename the previous version of the file (as <filename>.bak>) before saving the file.

Alien Newline
 If not selected (normally the default, but see "Preserve Newline") then the normal line ending character(s) are used on saving the file:
  • Windows: Carriage Return and Line Feed
  • Unix/Mac: Line Feed only.
If selected the alternative style is used.

Preserve Newline
 If selected (the default) then the line ending used in a file is determined on reading, and used to set "Alien Newline" so that the line ending is preserved on saving.

Slave
 If selected (the default) then the editor will respond to requests from PGOPHER to save the file.
Help

About...
 Display the version of the editor.


Help and Support

For a list of frequently encountered problems and messages, please see Notes on Common Error Messages

Online help in the Windows version is available simply by pressing F1 at any stage; you will be taken to a help page related to the currently selected item in the program. You can also press shift+F1, and click on a specific part of the program to get help about that item. The documentation can also be read on-line in any web browser at http://pgopher.chm.bris.ac.uk/Help/.

If you have queries about the program that are not answered by the help files, please contact help-pgopher@bristol.ac.uk

If you find a problem, please check the website, http://pgopher.chm.bris.ac.uk/, in particular the release notes page. The beta version page http://pgopher.chm.bris.ac.uk/pgopher-beta/ may also contain more recent versions. If the problem is reproducible, the following information will be required:
  • The version of PGOPHER used (This can be found from Help, About).
  • The operating system used.
  • The data files used
  • The stack trace of the crash, if available (see below).
Please send these to the e-mail address above. To avoid problems with blocked e-mails, please send any attachments in a separate message.

Stack Traces

Depending on how the program was compiled, PGOPHER may produce a stack trace.

Under Microsoft Windows, this will be saved to a "pgopher.log" file. A popup box will indicate the location of this file, which is normally in the same directory as the executable or the data file (depending on which is writeable). An entry is added to this file for each crash.

On Linux systems, the trace will appear in PGOPHER's log window, or on the console.

On Macs the trace is visible by clicking in the "Report Problem" dialog that pops up, if you click on the "Show Details" button.


Release Notes

Please check the website, http://pgopher.chm.bris.ac.uk/ and the beta version page http://pgopher.chm.bris.ac.uk/pgopher-beta/ for updates.

The following are not implemented in the current version of PGOPHER, but may be in a future version:
  • 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 implemented.
  • Magnetic dipole transitions in Symmetric Tops
  • 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.

Known problems

  • The Help menu only works on Microsoft Windows (but the documentation can be read using any web browser).
  • The Linux and Mac versions are 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 versions

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 essential.
  • After 7.0.105 the interpretation of the Strength parameter of the electronic transition moment in multidimensional Franck Condon factors in the vibration only calculation mode changed to be consistent with transition dipoles used for rotational structure calculations. Values from older files are multiplied by Sqrt(3) on loading. Note also that linear molecule Franck-Condon factor calculations for states with non zero vibronic angular momentum had incorrect intensities, as the degeneracies were not properly accounted for.
  • After 7.1.137 the handling of imaginary operators for asymmetric tops is improved so that a well defined phase is used for such operators. This mainly affects perturbations, and perturbations involving odd powers of Jy or Sy will have their sign changed on loading if required to give results consistent with earlier versions. The treatment of some electron spin-rotation and nuclear hyperfine terms is also affected. See AllowComplex and PhaseAdjust for options in handling imaginary operators.
  • After 7.1.142 the simulation of hyperfine structure for pairs of equivalent nuclei requires different settings for the statistical weights for both linear molecules and asymmetric tops. For a single pair of equivalent nuclei (such as in I2) the statistical weights should be SymWt=1, AsymWt = 0, rather than both 1. This change is made automatically on loading an older version. The change is made so that multiple pairs of equivalent nuclei are now simulated correctly; the older versions were incorrect if hyperfine structure was simulated for some or all of the equivalent nuclei. For asymmetric tops with two equivalent nuclei two of the weights will be 1, and the other two 0. See Hyperfine structure in the B-X transition in I2 and the Stark effect in (NO)2 for examples.
  • After 7.1.315 the C and D parameters of Transition Moment objects have been removed in favour of the more general Custom Transition Moment Function for modelling J dependence of the transition moment. Data files containing non-zero C or D values are converted to use this automatically on loading.
  • After 7.1.323 the definition of the spin-spin parameters alpha and beta for Symmetric and Asymmetric tops has been changed to be consistent with the literature. Values in older files are converted on loading by multiplying alpha by sqrt(5) and beta by sqrt(6).
  • After 7.1.370 the import of the l matrix from Molden or Molpro files 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.
  • After 7.1.515 contour fitting residuals are expressed in simulation intensity units, rather than the vertical scale of the experimental spectrum.
  • After 8.0.101 calculated angles for an electronic state are shown in degrees, rather than radians.

New Features and Fixed problems

  • 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 radians.
    • Level and states window crash on Mac (only), and fixed some layout issues.
    • Inconsistent results depending on whether the Internal Coordinates and related windows displayed or not.
    • Fixed inconsistent use of Principal axis system in selected vibrational calculations.
    • Molden import of l matrix files now normalizes all the normal co-ordinates.
  • 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 be simulated.
    • More symbolic matrix elements - selected transition moments, ...
    • half spin Vib
    • 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 fits.
    • 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 just J.
    • 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 transitions.
    • 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 model.
    • 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 populations.
    • 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 tops.
    • LAPACK upgraded to 3.4.2
    • Symbolic matrix elements and convert to perturbation now implemented for symmetric tops.
    • Initial implementation of custom population functions.
    • 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 standard release.
  • 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 be read.
    • 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 circumstances.
    • 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 large.
    • 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 intensity.
    • Fix crash of following use of recently opened files on Mac by replacing TdfsMRUFileList component with simplified equivalent.
    • Switching units scales Displacement in VibrationModeChange does not change spectrum. (Effective units are 1/Sqrt(Energy)).
    • 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 only mode.
    • 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 crash.
    • Equivalent nuclei case handled incorrectly in presence of static field.
    • 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 equivalent nuclei.
    • 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 calculated correctly.
    • 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 manifold.
  • New Features in 7.1.108
    • The Level Window now does not update the plot automatically if AutoReplot is off for the Mixture; a plot button has been added to update the plot in these circumstances.
    • Compiler used for Windows version updated to Delphi 2007.
    • The IncludeSPFIT directive can now handle the case where unused quantum numbers are zero, rather than blank.
  • Fixed Problems in 7.1.108
    • In the vibrational only mode, linear molecule Franck-Condon factor calculations for states with non zero vibronic angular momentum had incorrect intensities, as the degeneracies were not properly accounted for. In fixing this, the interpretation of the Strength parameter of the electronic transition moment in multidimensional Franck Condon factors was changed to be consistent with transition dipoles used for rotational structure calculations.
    • Bitmap overlays display code tweaked to avoid crashes at large magnifications.
    • BlockMatrix = true caused crash for some combinations of molecule type and LimitSearch.
    • StdDev column output for least squares fit will use scientific format if appropriate. (Zero could be displayed for combined microwave/visible fits if cm-1 units were used.)
    • Operation menu items for TElectronicState should only show if nNuclei > 0.
    • "Set Zero from Visible" menu item should only be visible when there is an overlay.
  • New Features in 7.0.101
    • Interactive adjustment of parameters with the mouse.
    • Simplified line list format for fitting introduced as an alternative to the standard format, designed particularly for use with line lists from external sources.
    • IntensityUnits = EinsteinA now comes in two varieties, EinsteinA and EinsteinASum (the old behavior). Detailed documentation of all the IntensityUnits settings is now provided under Intensity Formulae .
    • Transitions Window now offers option to display Hönl-London factors instead of the S pol related matrix elements currently displayed.
    • "Weight" is now referred to as "Standard Deviation" or "Std Dev" throughout, including fit outputs and the line list window . This makes clearer that theweights required are the (relative) standard deviations, rather than their reciprocal which might be implied by the name.
    • Estimated uncertainties in calculated line positions are now calculated in line listings, and displayed in the line list window if ShowEstUnc is set at the top level. To implement this, standard deviations of parameters, and the correlations between them, are now displayed in the constants window (note the Correlations object) and are now saved in .pgo files if ShowEstUnc is set.
    • Correlations between observations can now be set in line lists for least squares fitting using the correlation directive.
    • Default for SVDThresh changed to 1e-15, and least squares fit adjusted to provide more information when combinations of parameters are not changed.
    • Binary format for line list output, controlled by additional PrintLevel settings.
    • BlockMatrix setting, to check Hamiltonian matrix for factorization into blocks before diagonalisation. If blocks are found, these are diagonalized separately, ensuring states that have no connecting matrix elements are not accidentally mixed if the eigenvalues happen to be very close. Defaults to on.
    • Initial implementation of C4h , C5h , C6h , S4 , S6 , S8 , S10 , S12 . (Not fully tested.)
    • Initial hyperfine implementation for symmetric tops - currently on-axis quadrupole and nuclear spin-rotation only.
    • Compress of experimental overlays can now specify new x axis interval instead of number of points to average.
    • Use LAPACK singular value decomposition routine in least squares fitting.
    • Calibration fits now use standard deviation of a parameter from the last cycle as increment for numerical derivatives in the next cycle.
    • Toggle between arbitrary and normalized vertical scale for overlays.
    • Print and export to file available by right clicking any plot.
    • .pgo files and .ovr files can also be read if they are renamed to have an extension of .xml, which simplifies handling of these files.
    • Fits to combination differences.
    • Prompt on import item on Overlays menu to force prompting for layout of data on import.
    • Adjust automatic naming of plots within overlays.
    • Doppler double peak line shape, as in Fourier transform microwave spectroscopy.
    • Add upper and lower state energy and intensity to line list input selection.
    • Overlay units default to the current plot units, rather than cm-1 .
    • Read normal modes from Gaussian output files where (recommended) option freq=hpmode is used.
    • NoLineList setting in Mixture to allow larger calculations.
    • Tspin parameter in simulations to allow for non-equilibrated nuclear spin states.
    • Parameter context menu in constants window has entry to show full parameter name for setting constraints.
  • Fixed problems in 7.0.101
    • IntensityUnits = PopDist or NormPopDist intensity values did not display correctly in the line list window.
    • Franck-Condon factors for linear molecules with vibrational or electronic angular momentum were calculated incorrectly in some cases.
    • "Square" checkbox on Transition Selection was ignored.
    • Updates to import of SPCAT/SPFIT input files, mainly for symmetric tops.
    • Quote "<" and ">" in attribute values, so XML produced is valid.
    • (Global)MoveUp/MoveDown for vibrational not working reliably.
    • State/Manifold not displayed for vibrational wavefunctions.
    • Vibrational mode names beginning with numbers produced unreadable .pgo files.
    • Fit can fail if more than one species present
    • Join of experimental plots was discarding offset and scale.
    • Export of plot as text file could loose traces.
    • Wrong symbolic matrix element for spin-spin constant in vibrational structure mode.
    • Allow all symmetry names in custom populations.
    • Etalon actual positions set wrongly if actual position specified for one or both starting peaks.
    • Molecule names can now have spaces in them, though this is not recommended.
    • Log window could be invisible if main window fills screen.
    • Detection of line list in imported text files broken.
    • Discard lines with negative width, and display warning message.
    • Name change of vibrational mode not propagated properly.
    • Intensity fits not always converting units correctly.
    • Convoluting an overlay with a line width incompletely implemented.
    • Import of JPL .cat files as overlay was broken.
    • Eigenvalue selection problems in transition selection window.
    • QuantumNumberFormat J+1/2 directive not recognized in input file.
    • Fixed crash on empty mixture.
    • Fixed possible crash when adding to overlay when overlays window open.
    • 64 bit compilation fixes.
Log of older changes


Release notes and log of changes to older versions

Release notes and log of changes to older versions (6.0 and earlier)

Upgrading from previous versions

  • The default for display of quantum numbers from 5.2.343 is now to display, and accept as input, true values throughout, so a quantum number of 1/2 is now displayed as 0.5 rather than 1. Associated with this the variable setting the display style has changed from DoubleQnos to QuantumNumberFormat at the Mixture level. To revert to the previous style of working set this to 2J rather than the default of J. Some care needs to be taken with data files when moving between versions; while the .pgo files always have quantum numbers written as doubled values line list files used for fitting may well use the wrong format when reading as they will default to the format determined by QuantumNumberFormat (or DoubleQnos). This can be adjusted as required by adding one of the following directives to the line list file:
    QuantumNumberFormat 2J
    QuantumNumberFormat J
  • The window positions and other settings can now be written to the .pgo file. If this is done the files can't be read by versions of PGOPHER before 5.2.343 - an error message along the lines of "Can't find FormSettings" will be displayed. Saving this additional information can be disabled by turning off the "Save" settings under File, File Options. Alternatively, these are separate objects in the .pgo file and can be removed with a text editor if necessary.
  • In version 5.2 of PGOPHER a different numbering scheme is introduced to label the rovibronic symmetry for asymmetric tops. This has a more straightforward relationship with the various ways of denoting symmetry, and the schemes are as described in Axis systems and symmetries for asymmetric tops. This only affects molecules with C2v, D2 and D2h symmetry, but does imply that for these the input and display of symmetry for transitions has necessarily changed. This is perhaps most obvious for line list files for fits; files produced for the old version can only be read by the new version if the following directive is added at the top of the line list file:
pgopherversion 5.1
  • In the course of full implementation of the PseudoC2v setting in version 5.2 the numbering scheme for some of the symmetries has changed; see the documentation for the new numbering scheme. Some input line list files may require manual editing to work with the new version as as a result.
  • For asymmetric top molecules the default value of LimitSearch in manifold is now true rather than false. Old files loaded into the new version will normally use the new setting rather than the old, which may affect the values displayed for the Ka and Kc quantum numbers in some circumstances. It does not affect the energy levels or intensities calculated, merely the algorithm used to generate quantum numbers for display. See Manifold for a discussion of this.
  • The default IntensityUnits in Simulation are now (after 5.1.44) Normalized, rather than Arbitrary. As default values for settings are not written to .pgo files, files saved by older versions of the program with IntensityUnits=Arbitrary will now load with it set as IntensityUnits=Normalized. This change was made as a setting of IntensityUnits=Arbitrary gives misleading relative intensities for isotopologues or isotopomers with different symmetry or statistical weights, such as 35Cl2 and 35Cl37Cl. (The calculation is "correct", in that the partition function is excluded by design when IntensityUnits=Arbitrary but it means this setting makes a poor default.) No action is required by this change unless abundances or transition moments have been set to work around this issue.
  • Statistical weights were treated incorrectly for D2d, D4d, D6d, D8d symmetric tops in versions before 5.2.513. Files prepared with older versions using these point groups may give a warning on loading, and the statistical weights will typically need correcting.
  • After version 5.3.137 a "Parameter" directive is normally required at the start of a line in an observation file adding a parameter as an input value for fit. (Without this directive otherwise valid input files could be misread.)
  • In versions before 5.3.330 the relative intensity of magnetic dipole transitions was not always correct with respect to electric dipole transitions. For the units used for the Strength of transition moments (Debye for electric dipole, Bohr Magneton for magnetic dipole) the intensities of magnetic dipole transitions need to be scaled by 1042μB2 = 8.6007252×10-5 to give the correct relative intensity. This factor was included when the simulation had units (IntensityUnits = EinsteinA, nm2MHzperMolecule, cm2WavenumberperMolecule or HzperMolecule) but not otherwise. The appearance of simulations with no units will not change unless both electric and magnetic dipole transitions are present in the same simulation. To obtain the same absolute intensities scale the magnetic dipole moments by 10-21/μB.
  • In versions before 5.3.335 intensities of transitions arising from a rotational magnetic moment in a linear molecule were a factor of 3 too large. The units for rotational magnetic moments have also been switched to nuclear magnetons, μN, from Bohr magnetons, μB so the Strength will need scaling by me/mp.
  • The Rank property was been removed from some TransitionMoment objects in version 5.3.335, as it was superfluous.
  • The branch label format for symmetric tops has changed in versions after 5.3.335. All spaces have been removed, and the kl labels now show as '+', '-' or nothing, rather than '+1', '-1' and space. In addition a problem with degenerate states in symmetric tops has been fixed; the kl label was sometimes taken from the upper, rather than the lower state in the transition.
  • After 6.0.188 the ContourFile setting has been moved to the Overlays object. This setting change cannot be made automatically, as it will be in a different file, but a notification is displayed.
  • After 6.0.199 the JAdjustSym setting has been moved to be a per Molecule , rather then a per Mixture setting. Old data files will be updated automatically on loading.
  • After 6.0.224 the Correlations object is written to the .pgo file if ShowEstUnc is set, which will cause an error in previous versions. Turn off ShowEstUnc if compatibility is required with previous versions.
  • After 6.0.228 IntensityUnits = EinsteinASum is required to achieve the old IntensityUnits = EinsteinA behaviour, with EinsteinA now giving a radiative rate. EinsteinA is converted to EinsteinASum on reading old data files. See Intensity Formulae for a description of the settings.

Fixed problems and new features

  • Fixed problems in 6.0.111
    • Changing the rank of a spherical transition moment did not take effect until saved and loaded from a .pgo file.
  • New Features in 6.0.110 (Note that not all changes have been listed for this major revision)
    • New vibrational structure mode.
    • Effects of static external electric and/or magnetic fields can now be simulated.
    • Wavefunctions can now be complex if necessary, though this is disabled by default.
    • State dependent widths implemented for symmetric tops.
    • Variable character size on printer, clipboard and exported plots can now be disabled.
    • Convolute option added to experimental plots to allow them to be convoluted with the simulation linewidth(s).
    • "Add all levels" to prepare custom populations can now be applied to a state as well as a manifold.
    • Add InterpolatedPartitionFunction objects to allow partition functions to be generated from external tables as afunction of temperature, such as those available from HITRAN.
    • Partial implementation of C3h symmetry.
    • Add (partial) import of OceanOptics .ProcSpec files.
    • Symmetry directive in observations file to select symmetry to use on BranchFormat input for cases such as symmetric tops where two otherwiseidentical transitionsare found.
    • Add centrifugal distortion of qplus term for symmetric tops.
    • Implement 'auto' component for transition moments in symmetric tops.
    • Add symmetric top to the choice available in File, New.
    • Pick destination form switched to using radio buttons to select destination channels and add "None" button.
    • Spin terms added as perturbation types for asymmetric tops, allowing higher centrifugal distortion terms in spin-rotation coupling to be added.
    • Add "ScalePrev " setting to perturbation types to allow fixed combinations of operators to be expressed, such as that required for Bbar in asymmetric tops.
    • "Split ", "As Linelist" , "Hide Out of Range" operations added to overlay menu on plot.
    • "Copy Branch Table" added to "More" menuon line list form
    • "Spline" option and dialog box in calibration form.
    • Log output control ("PrintLevel" ) added to log window
    • Detailed printout of parameters and matrix elements to log if PrintLevel set appropriately.
    • Initial External Molecule implementation.
    • State eigenvector can now be limited to displaying the n largest contributors to any state, rather than all basis states.
  • Fixed problems in 6.0
    • kl label not always generated from the correct state for symmetric top transitions involving degenerate states.
    • Intensities of transitions arising from a rotational magnetic moment in a linear molecule were a factor of 3 too large. The default units have also been switched to nuclear magnetons, μN , from Bohr magnetons, μB .
    • Plots exported as SVG can now be read directly by Firefox.
    • For transitions with contributions from multiple ranks (e.g. rank 0 and rank 2 together) some low J transitions could be excluded
    • Jmax for upper manifold was being taken from lower manifold
    • Multiphoton transitions in symmetric tops had been broken by previous change.
    • HITRAN line list input can now cope with states with vibrational angular momentum.
    • Accept .5 as well as 0.5 for quantum number input.
    • Allow "$$" at start of line for comment in .jdx files.
    • Allow "," at end of free format numbers in .jdx files.
    • Adding new transition moment for symmetric top molecules failed in tree view.
    • Adjust branch format (such as pQ(10)) to make use on input easier.
    • Bitmap overlays would not save after being compacted (needed fix to pngimage library).
    • Edit, Copy Picture and File, Export, Plot menu items split into separate items for Fortrat and main plot window. Also fix right click on plots to copy correct plot.
    • Etalon peak finding mode works with partially calibrated plot; speed up.
    • ComboBox form settings were not restored correctly from a .pgo file if previous value was not the default.
    • Speed up selecting states by index number; this was very slow if no J selection.
    • Add choice of methods for timing; note that no method is guaranteed to give sensible values, particularly on multiple CPU systems.
    • Empty line list not always saved as empty.
    • JCAMP-DX files with units of "MICROMETERS" not loaded correctly.
    • Transitions with Colour = clHide now not used for contour fitting.
    • Some default values written to .pgo files.
    • Use "FrequencyScale" on plots adjusted so that centre point of plot does not shift in frequency.
  • New Features in 5.2.524
    • Import of selected .svw files from Ohio SpecView program.
    • Right click in Fortrat plot only shows lines close to selected J. (Previously only the horizontal position of the mouse was used to select lines.)
    • Speed up of importing spectrum data files.
    • Paste of file from Windows Explorer implemented.
    • Initial implementation of spline fitting for calibration.
    • Option to print constants used in I2 calibration simulation.
    • Implemented equivalent nuclei in linear molecules, and initial implementation for asymmetric tops (C2v, pairs only).
    • General constraints on parameter values in fits.
  • Fixed problems in 5.2.524
    • Right click in Fortrat diagram was not always giving lines under mouse.
    • Read of linear molecule JPL .cat files when J not specified in quantum numbers in .cat file was failing.
    • Drag and drop of .pgo file on to plot window discarded limits.
    • Save Overlay and Save Overlay As menu items in main window failed if Overlays window was not open.
    • Display of partition function sum was not using QuantumNumberFormat.
    • Calculate Boltzmann factor for cm-1 and eV by conversion so that identical populations are obtained when compared with energy levels calculated using MHz. Previously a value tabulated to the (relatively low) precision of k was used, giving slightly different populations with notionally identical constants
    • Unit conversion incorrectly treated C and D in a transition.moment as having units.
    • Intensity incorrectly scaled for some IntensityUnits when the PlotUnits were different to the calculations Units.
    • Crash on hitting F1 for help in main window.
    • Adjust height of individual items in the constants window to make it less likely to show scroll bars when not really needed, and make sure selected item in tree is always visible.
    • In line list displays, make column heading "Position" rather than "Frequency" (as line position is often not in frequency units).
    • Fix column header alignment in line list export.
    • Line list for IntensityUnits = PopDist was blank, and fix related problems when right clicking on a population distribution plot.
    • Optimize logic for not saving default form settings.
    • Force legal symmetries following point group changes.
    • Possible I/O error 105 in Slave Editor.
    • Width conversion to/from velocity scale wrong.
    • Default Kmin and Kmax display as "all" for asymmetric tops.
    • Foffset on simulation incorrectly taken into account when peak measuring on a simulation in calibration mode.
    • Adding a new linear state to a manifold in the tree view defaults to the same g/u value as the other states in the manifold.
    • Close and re-open transition selection window does not loose manifold/state selection.
    • "Auto" checkbox in linelist dialog was always treated as checked.
    • Measure using mouse of peak position on simulated spectrum does not result in automatic assignment in line list window.
    • Right click in vertical axis region of simulation should not find lines.
    • TransitionMoments with more than 2 components and at least 2 different ranks may not simulate correctly.
    • TransitionMoment selection with the transition selection window not working.
    • Various fixes to calibration methods.
    • Potential crash when form closed when editing a value in a grid.
    • Statistical weights wrong for D2d, D4d, D6d, D8d. As a consequence old data files with these point groups will give a warning on loading.
    • Symbolic matrix element output now honours QuantumNumberFormat.
    • Transition strength calculation fixes for symmetric tops.
  • New Features in 5.2.343
    • Slave Editor added to distribution.
    • "Hide others/Show All" menu items in overlay context menu on main and overlay forms.
    • Colour = clHide lines now excluded from consideration in more contexts, including line count, scaling and right click on plot.
    • Choose random overlay colour (rather than black) if no unused colours available.
    • Upgrade to Eigenvalue routines from version 3.1 of LAPACK.
    • Implement Branch style input in .lin files for symmetric tops.
    • Add velocity (in units of cm-1/2) as a horizontal scale in spectrum plots.
    • Hyperfine quantum number display for basis states has been adjusted - now always shows J.
    • Read .sp files from (at least some) Perkin-Elmer spectrometers.
    • Prompt when clearing line list window when there are some assigned lines.
    • Swap frequency and intensity, discard intensity operations added to experimental plots.
    • Mouse over on observed-calculated line on main plot shows linelist number on both ends.
    • Small adjustments for Microsoft Windows Vista.
    • Temperature in I2 calibration spectrum independent of overall simulation temperature.
    • Simulation parameters (such as linewidth and temperature) are now recorded in a separate Simulation object rather than the base Mixture object. This allows for multiple Simulation objects corresponding to multiple simulation windows. For back compatibility if there is only one Simulation object its values and settings are written to (and read from) the base Mixture object. .pgo files written with more than one simulation object can't be read by previous versions.
    • Optionally save and restore more settings, including parameters for energy level and transition windows, and form positions.
    • Constants and overlay windows will rearrange their contents depending on their aspect ratio.
    • Replace DoubleQnos with QuantumNumberFormat, Mixture, and set the default to undoubled quantum number display.
    • Symmetry selection in the transition (and other) windows now uses symmetry names, rather than numbers.
    • Write version to .pgo files. (It is ignored on input for the time being.)
    • SMargin now implemented in simulation, which defines how many additional points to calculate off either end of a spectrum.
  • Fixed problems in in 5.2.343
    • Do not permit JAdjustedSym when hyperfine structure present in asymmetric tops.
    • Allow .pgo files that trigger errors to load so they can be fixed.
    • Hyperfine quantum numbers not displayed for asymmetric tops.
    • Compilation fixes for 64 bit and Mac/Intel.
    • Fix crash on pasting too many items into parameters in constants form; allow copy/paste in settings grid.
    • Load of some overlay files could fail for a if the frequency was not sufficiently varying.
    • Cancel on "File Changed - discard?" prompt not always effective.
    • Fix error handling for failures in calculating eigenvalues.
    • Data file name shown in task bar.
    • Detect spurious xml entries in .pgo file, rather than silently ignoring them.
    • Wrong sign in documentation for spherical transition moments.
  • New features in 5.2.149
    • Experimental support for multiple CPU cores is now available for selected calculations; this is most useful for fitting. It is disabled by default, as it is only helpful for larger problems and can reveal obscure bugs. To try this, select the number of threads using the View, Threads menu item - twice the actual number of processors is a good starting point.
    • PseudoC2v is now implemented for all appropriate point groups and full documentation prepared. The numbering scheme for some of the symmetries has changed so some line list input files may need manual adjustment.
    • Change in numbering scheme for labellings rovibronic symmetry for asymmetric tops - now directly related to standard symmetry labels as described in Axis systems and symmetries for asymmetric tops
    • Adjust overlay scaling algorithm - for IntensityUnits = Normalized now uses current Baseline and Scale.
    • The least squares fit routine now displays Watson's sensitivity parameter (J. K. G. Watson, J. Mol. Spectrosc. 66, 500 (1977)) for each floated variable, and uses this to determine the number of figures to display in the estimated error for each parameter.
    • The least squares fit routine will display the results of a singular value decomposition if Mixture.FitDetails is set to True. Singular value decomposition eigenvalues less than Mixture.SVDThresh will be discarded. This is normally 0, but small values can be used to limit changes to combinations of parameters that are poorly or completely undetermined.
    • Parameters can now be used as "observed" values in fits as a method of applying constraints.
    • Overall rovibronic symmetry selection has now been generalized so it applies to all types of states and perturbations.
    • The number of lines displayed in the Line List window on right clicking on a simulation can now be adjusted (click on More, Options in the line list window.) The default is now to display the 10 strongest lines with intensity more than 5% of the strongest, and to assign lines that are more that 25% of the intensity of the strongest.
    • Level plot can now select by other quantum numbers, including Ka and Kc (Asymmetric tops) and Ω for Linear molecules.
    • Better handling of overflow in Boltzmann case - see J Range and Partition Functions.
    • Several processing commands for numerical (as opposed to bitmap) overlays, including smoothing and joining spectra together.
    • Selected calibration spectra are now built into PGOPHER (I2, Ne, Fe) for use with the new calibration system.
    • A full calibration process is now available for overlaid spectra.
    • IntensityUnits in overlays now implemented
    • IntensityUnits = PopDist, NormPopDist for simulating time of flight spectra or similar cases where energy levels are seen, rather than transitions.
    • Fitting and associated plots now work for fitting to energy levels, as well as transitions. (Use blank upper manifold name and J = '-' in fit files to indicate this).
    • Colour coded names in constants and overlay tree view.
    • Several improvements to the linelist window, and fix some bugs causing range check errors.
    • Symbolic Matrix elements now available for Linear Molecules and Asymmetric tops
    • Plate tracing has been updated to allow accurate determination of the plate angle, and selection of the area to trace.
    • Float setting for parameters can now be toggled by single (rather than double) mouse click or space bar.
    • Ctrl + Left mouse now also offsets spectra as well as Alt + Left mouse, to allow for Linux window managers that use Alt+Left to drag windows.
    • Updates to non-Boltzmann populations.
    • Add K selection to asymmetric top perturbations.
  • Fixed problems in 5.2.149
    • Asymmetric tops with Ci symmetry have approximately 1/4 of the rotational states missing.
    • Transitions with exactly zero frequency within a Manifold are now discarded; previously these could appear twice in a line list (with zero intensity).
    • Plot of overlay with negative intensity scale could have scale problems.
    • Peak find on a line list including more than one peak took the first line in the range, rather than an average when all the peaks in the range had the same intensity.
    • Asymmetric tops with C2h symmetry have half the rotational states missing for states with Au or Bu vibronic symmetry.
    • Auto detection of frequency channel of overlay can fail if intensity channel is flat.
    • Parameters with an absolute value less than about 10-18 are not saved in the pgo file.
    • Minor adjustment to phase choice for linear molecule LS perturbation matrix element for the case that Λ' = Λ. Now chooses parameter to be matrix element such that largest S is on the left.
    • Right click on first spectrum from File, New, Linear Molecule did not show assignments.
    • Some asymmetric top perturbation matrix elements not calculated correctly for operators containing JxnJym with m ≠ n and m ≠ 0 and n ≠ 0.
    • Fixed problem with Normalized intensities introduced in earlier development version
    • Quantum number label is always shown as J in Fortrat plots, even if not appropriate.
    • Mouse over on Level plot could indicate wrong line in observations file on status bar.
  • New features in 5.1.222
    • Convert for compilation with Delphi2006.
    • JPL line lists (.cat) as overlay.
    • K selection in symmetric tops.
    • Cartesian transition moments now accepted for symmetric tops.
    • Perturbations in symmetric tops now implemented.
  • Fixed problems in 5.1.222
    • ζ constant in symmetric tops was incorrectly converted when switching units.
    • Copy with linked items, then paste fails when there is more than one transition moments object.
    • Linux/Mac version: Linelist export no longer crashes
    • Mac version: fixed problems due to compiler.
    • State assignment in Cs or lower symmetry asymmetric tops.
    • Count in exported linelists wrong.
    • Intensity fits of transitions within a manifold could be to wrong state.
  • New features in 5.1.164
    • Line fits can now be to intensities as well as positions.
    • Non-Boltzmann population distributions can now be entered and fit
    • Residuals from fit can now be plotted in a variety of ways in the Log window.
    • Multiple views of the same spectrum now available from View, Another. The plot range is independently selectable, and the frequency offset, temperature and linewidths can be synchronized or independent.
    • Saturation parameter.
    • Add Quadrupole and Nuclear Spin - Rotation matrix elements to asymmetric tops.
    • Options to exclude some or all spins when line fitting to some or all lines.
    • More options for energy level plots.
    • More options for Fortrat plots.
    • Linear molecule states can now be restricted by Ω and parity (This is particularly designed for Hund's case (c) or other cases where there are many perturbations.)
    • Linear molecule perturbations can now be symmetry and omega selective
    • Least squares fit to line positions now gives file and line number in the output log.
    • HITRAN format line lists (.par files) can now be used as overlay files or as line position or intensity input to least squares fits.
  • Fixed problems in 5.1.164:
    • Preliminary fix for C3v perpendicular band intensities.
    • Change to default method for displaying quantum numbers for asymmetric top molecules (see discussion above).
    • Drag and drop of multiple files of the same type forces merge mode
    • Improve prompt when loading files with two or more spectra in the same file.
    • Mis-pelt colour names in observation file now gives error message, rather than prompting for colour.
    • Fixed problem where save (rather than save as) of overlay file sometimes goes to wrong directory.
    • Intensities more consistent when switching from spectra with width to "stick" spectra where width does not show.
    • Fix problem with vertical axes on multiple plots.
    • Fix incorrect printing of weighted overall residual after fit.
    • Negative and zero fit increments not displayed in constants window
    • Allow units in observed line file to differ from units in constants window.
    • Export of individual overlay of multiple fixed
    • File including itself gives error message rather than crashing
    • Adjust partition function convergence algorithm and add AutoQConverge setting.
    • Copy and paste of linked items in constants window now renames transition moments
    • Decimal separator now forced to be "." regardless of system setting.
    • Default IntensityUnits now Normalized (See comment about upgrading above)
    • Switch Delphi version to use FastMM memory manager
    • mkpgopher.bat build script fixed
    • Exclude *.cfg files from source distribution
    • Minor change to number output style
  • In 5.1.44
    • Cancel in rename of new matrix element deletes new object
    • Remove possibly confusing test for ungerade states in symmetric linear molecules
    • Add Suncouple as perturbation type for linear molecules
    • Allow state number selection in transition dialog
    • Correct error in formula given in the documentation for linear molecule statistical weights
  • In 5.1.42
    • In level plots:
      • Fix observed level plot problem with emission spectra
      • Simple symmetry selection
      • Observed level plot can now be both upper and lower states simultaneously
      • Fix observed level plot problem where transition is within a single manifold
    • .pgo files (these changes are backward compatible)
      • "Name" of matrix element style items no longer written to file ("Bra" and "Ket" are sufficient).
      • Display name in tree of Mixture is just filename part of full path
    • Sample data files:
      • Add 18O16O to show different isotopes and symmetry
      • Add 17O16O to show nuclear hyperfine structure
    • Clear observed line marks menu item
    • Colour of sum spectrum is now always black
    • Fix plotting glitch with multiple spectra
    • Add "Hide" colour; "None" will show as black.
    • Documentation: Add "forbidden transitions in linear molecules" section
    • Fix display glitch in bitmap overlays
    • Fix state assignment problem when EigenSearch = True and LimitSearch = False
  • In 5.1.34
    • CFBr sample data file corrupt
    • Octic centrifugal distortion in symmetric tops
    • States form display fix
  • In 5.1.34
    • C3v symmetric tops now working
    • Fixed crash when deleting overlays with overlays property window open
  • In 5.1.32
    • File, Print and Edit, Styles now working
    • Version numbers now consistent


Notes on common error messages

No error message, but no simulated spectrum either

  • Try the All button - your spectrum may simply not be in the current plot range.
  • The transition moment between the states of interest may not be correct; check that one is present, and that the component or axis is set to give a transition between the states involved.

No error message, but the simulated spectrum or exported plot does not look as expected

If the plotted spectrum shows with no net width to lines, either because you have not chosen to set one with "Gau" or "Lor", or because they are rather smaller than the effective plot resolution, then the resulting plot can easily be misleading. This is because of issues with closely spaced transitions - do they combine as one strong line or several weak ones? A physically meaningful plot is only guaranteed if the resolution of the plot, equal to (Fmax - Fmin)/nDF, is significantly less (by a factor of 3 or more) than the linewidth used for the simulation.

No error message, but the quantum numbers are not as expected

All quantum numbers shown apart from total angular momentum and symmetry can give strange computed values, particularly in the presence of state mixing, but also for certain combinations of parameter values and quantum numbers. The algorithm used by PGOPHER to determine quantum numbers is affected by the EigenSearch and LimitSearch settings in the Manifold.

Problem loading a .pgo or .ovr file

The PGOPHER native format .pgo and .ovr files must have the right extension to load correctly; when downloading from a web page or from an email the extension can sometimes be changed to .xml, or .xml is added to the filename. To fix this, simply rename the file to have the correct extension. (Versions of PGOPHER after 6.0.163 will load files that have been renamed in this way automatically.) If this is not the problem, both types of files are xml text files, and can be edited with most text editors.

"Overflow in Boltzmann for xxxxx: E=-nnnnnnn"

This results from a large negative energy causing the Boltzmann expression exp(-E/kT) to overflow. See the discussion of J range and Partition Functions for a discussion of the causes of this problem and possible solutions.

Progress dialog stuck on Partition Function sum

This can indicate too many levels included in the partition function, possibly because the parameters correspond to levels much too close together. See the discussion of J range and Partition Functions for a discussion of the causes of this problem and possible solutions.

"Odd and even numbers of electrons in xxxx"

Did you remember to set the right spin for all states? This results if, for example you have the changed the ground state to doublet and left the excited state as singlet (the default).

"Mix of integral and half integral quantum numbers"

The error message means that you have asked PGOPHER to calculate an impossible level, such as a J = 1/2 level for a triplet state. This error message is likely to arise on upgrade to version 5.2, if you are using an observation file prepared for version 5.1. You may need to add the following directive to the start of the observations file:
QuantumNumberFormat 2J
See the upgrading section for more on this.

"Singular Matrix"

When least squares fitting, this normally means that you have floated a parameter (or some combination of parameters) that is not determined from the supplied experimental data. For example, you may well see this if you attempt to float both the upper and lower state origin for a transition, as only the difference is determined. To fix this, float fewer (or at least different) parameters.

"Inconsistent Statistical Weights"

This error occurs when two states with the same J and symmetry but with different statistical weights are included in the same Hamiltonian matrix.
  • For linear molecules, this will currently occur if gerade and ungerade states in linear molecules are included in the same manifold, as PGOPHER does not currently implement this. Such states can't mix anyway, so move them to a separate manifolds, at a minimum one for g states and one for u states.
  • For asymmetric tops this indicates that the eeWt, eoWt ... settings are inconsistent with the choice of symmetries. (Setting all four to the same value will stop the error message, though this is (probably) not right if you have equivalent nuclei.)


Compiling From Source

PGOPHER is mainly written in Pascal, using the object oriented extensions originally available from the Borland Pascal compiler and now also available in the Free Pascal compiler (not GNU Pascal). The program is distributed as a zip file. Unpack this in a directory on its own, which will create several sub-directories.

Microsoft Windows

The current version is compiled with Embarcadero (originally Borland, then Codegear) Delphi 2006 (32 bit version) and XE3 (64 bit version), though it should compile with any recent version (20066 or later), possibly with minor modifications. The mkpgopher.bat file in the pgopher directory will compile it from the command line. Alternatively install the utils/Putils.dpk and wutils/Pcontrols.dpk packages into the IDE, after which the pgopher/Pgopher.dpr project can be loaded and compiled in the IDE. Note that various open source graphics libraries are required for a complete build; these are included in the GraphicEx directory. The files with "orig" in the name are the files as distributed with the library.

Compilation using the open source Free Pascal (http://www.freepascal.org) and Lazarus (http://www.lazarus.freepascal.org) packages is also possible. Installing the current Lazarus snapshot gives a good starting point though the development version may be required for correct operation, particularly for Lazarus. There is a helpful wiki page on the Lazarus site at http://wiki.lazarus.freepascal.org/index.php/Installing_Lazarus on installing both the compiler and Lazarus. Once the Lazarus IDE and the PGOPHER source are installed, the instructions are as for Linux below.

Linux

The current version is compiled the using the open source Free Pascal (http://www.freepascal.org) and Lazarus (http://www.lazarus.freepascal.org) packages. The development versions may be required for correct operation, particularly for Lazarus. There is a helpful wiki page on the Lazarus site at http://wiki.lazarus.freepascal.org/index.php/Installing_Lazarus on installing both the compiler and Lazarus. The standard development (compiler) tools will be required, and possibly some additional libraries not installed by default, but can be installed using the standard package system for your distribution. Given this installation, PGOPHER can be compiled with the mkpgopher script in the pgopher directory (the LAZDIR variable may need setting manually). Alternatively, to use the Lazarus IDE:
  1. Start the IDE using the startlazarus shortcut
  2. Install the Pcontrols package by:
    1. Go to "Components", "Open Package File" and open the Putils.lpk file in the utils directory.
    2. Similarly, open the gutils.lpk and Pcontrols.lpk packages in the wutils directory
    3. Click "Install" on the Pcontrols package window , and accept the rebuild of Lazarus.
  3. Repeat steps 1 and 2 of the the previous step for the lutils.lpk package in the lutils directory and the lforms.lpk package in the lforms directory
  4. Use "Project", "Open Project" to load pgopher.lpi in the pgopher directory.
  5. Compile and run with "Run", "Build All"
Steps 2 and 3 are only required on initial installation of Lazarus

Mac

Compilation on the Mac is similar to the process on Linux. See the "Installing Free Pascal under Mac OS X" section in the Lazarus wiki page at:

http://wiki.lazarus.freepascal.org/Installing_Lazarus_on_MacOS_X

for more details. Compiling PGOPHER is then as for Linux.

LAPACK (and BLAS)

PGOPHER uses slightly modified versions of selected parts of the LAPACK library to diagonalize matrices. Precompiled versions of these (using g77 or gfortran) are included with the source distribution, as these do not normally need to be recompiled. For systems other than Microsoft Windows this can normally be accomplished using the command:

    make -f GNUmakefile
in the utils/blas and utils/lapack directories. The modifications are mainly so that the fortran run time library is not required.


Procedures

This section outlines the main procedures that can be carried out using PGOPHER:
  • Creating a data file
  • Simulating a Spectrum
  • Overlaying an Experimental Spectrum
  • Exporting Plots
  • Calibrating Spectra
    • Using Etalons
  • Line Position Fitting
  • Contour Fitting
  • Combination Difference Fitting
  • Other Fits
  • Non-Boltzmann Populations
  • External Fields - The Zeeman and Stark Effects
More specific notes:
  • Line List Input File Format
  • Widths and Lifetime Effects
  • Determining Colours and J ranges
  • How PGOPHER works
  • Transition Moments and Line Strengths
  • Intensity Formulae
  • Emission Spectra
  • Raman Spectra
  • J ranges and Partition Functions
  • Tracing Plate Spectra
  • Binary Line List Format
  • Using HTITRAN Files
  • Using ExoMol Files


Creating a data file

PGOPHER data files (.pgo files) contain all the rotational constants and other settings required to perform a simulation. A basic file for each of the four molecule types implemented in PGOPHER can be created from the File menu, and there is a section about each type of molecule which contains more details. See the "Making a data file" link under each of the following:
  • Linear Molecules
  • Symmetric Tops
  • Asymmetric Tops
  • Vibrating Molecules - This is to be used when simulating the vibronic structure only, ignoring the rotational structure.

It is also possible to work from a completely empty file, or modify an existing .pgo file; the individual molecule sections above have some sample files.

Modifications to the file (either modifications to individual settings and parameters, or more major changes such as addition or deletion of species, molecules, manifolds, states, perturbations or transition moments) can then be effected in the constants tree view. The data file contains a hierarchy of objects, to represent the molecules and states involved in the transition; this works rather like a nested directory structure containing files except that each level can only contain certain types of object. (The top level objects must be Species or Simulation objects for example.) Data files can also be merged to combine spectra using copy and paste operations from the constants view between two running copies of PGOPHER.

The .pgo files are in XML format, and can be edited with an ordinary text editor if required. (If you load a .pgo file into a web browser it will normally show the XML nicely laid out and colour coded.)

To simulate a spectrum click on the simulate Simulate button in the main window.


Adjusting the Simulation

Simulating a Spectrum - the Plot Menu

Once a data file has been created or loaded (File, Open or [image] or simply drag and drop a .pgo file onto the main window) simply press the red simulate button [image] if a simulation does not appear automatically. To change the molecular parameters use the Constants Window. The plot menu entries, many of which are also available as toolbar buttons, can be used to adjust the appearance of the plot. The Offset, rotational temperature (T), and the Gaussian (Gau) and Lorentzian (Lor) contributions to the linewidth can also be changed using the boxes in the main window.

Note: To zoom in on a particular region of the plot, the Plot Selection ( [image]) button is normally the most useful, with the All button used to zoom out.

The items below are available as buttons on the toolbar or from the plot menu:

Left | Shift plot range to left
Right | Shift plot range to right
Compress | Compress horizontal plot range
Expand | Expand horizontal plot range
Plot Selection | Click and drag the mouse over part of the spectrum and then press this button to change the horizontal plot range to the selected range. See below to adjust the vertical scale.
All | Expand horizontal plot range to include all simulated lines and overlayed spectra. This button is particularly useful if you have "lost" your spectrum.
Simulate | Simulate spectrum
Next Plotstyle | Cycle through available styles of plot
Show Parts | Toggle display of individual spectra making up the overall spectrum
Show Sum | Toggle display of sum of individual spectra
Fortrat, Show | Toggle display of a Fortrat Diagram
Fortrat, Upper | Select upper or lower state quantum number as vertical axis in Fortrat diagram. It is also possible to adjust the quantum number used; the default is J, but others can be specified by adjusting FortatQno in the Simulation object.
Units | Select units for horizontal axis - Possibilities are cm-1, MHz, Kelvin, eV, velocity (in units of cm-1/2), nm in vacuum and nm in air.
Magnify from Bottom | Reduce vertical range of plot by a factor of two, and turn off automatic upper limit. The lower limit of the plot is left unchanged. This only affects the overlay scaling, unless no overlays are displayed, in which case the scaling of the simulation is changed. For more control, see AutoMin, AutoMax, Ymin and Ymax in the Simulation and Plot objects.
Magnify from Top | Reduce vertical range of plot by a factor of two, and turn off automatic lower limit. The upper limit of the plot is left unchanged. This only affects the overlay scaling, unless no overlays are displayed, in which case the scaling of the simulation is changed. For more control, see AutoMin, AutoMax, Ymin and Ymax in the Simulation and Plot objects.
Auto Vertical Scale | Toggle automatic vertical scaling. This only affects the overlay scaling, unless no overlays are displayed, in which case the scaling of the simulation is changed. For more control, see AutoMin, AutoMax, Ymin and Ymax in the Simulation and Plot objects.
Plot Options, Styles... | This enables the colour, the width of the lines and the line style of spectra to be changed. To alter one of these settings, select the relevant tick box, click "Apply", alter as required, and click "OK". The changes will be effected on re-simulating the spectrum. Selecting "Default" restores spectra to solid, zero width lines. (Colours of spectral lines are best changed in the constants window.)
Plot Options, Font | Select font for plots.
Plot Options, Variable Char Size | Select (default) for character size on printout, clipboard and export to reflect on screen proportions. If not selected the character size remains fixed.
Plot Options, Limit Line Segments | Select (default) to limit number of segments on a plotted curve. It can be helpful to unselect this option if you intend to edit exported plots. The only drawback is that the resulting plots can be too complicated for some programs to handle.
Magnify Plot | Click and drag with the mouse to select a region to zoom into with this button. In contrast to Plot Selection [image] and other buttons above, this changes both the vertical and horizontal scale, and the scaling is reset when the plot is updated.
Shrink plot | Shrink plot in both vertical and horizontal scale.
Reset Zoom | Reset plot zoom to fill window. This happens implicitly when the plot is updated.


Overlaying an Experimental Spectrum

It is possible to overlay either an experimental spectrum (complete with a frequency and intensity scale) or a bitmap (a picture of the spectrum where no frequency scale is available) into PGOPHER. The data can come from the clipboard (i.e. Copy and Paste from another application) or a file. In either case you can make adding, rather than replacing, a spectrum the default by selecting the File, Merge menu item.

Supported Formats.

PGOPHER can handle a selection of formats:
.txt,.csv,.dat Text files - PGOPHER is reasonably flexible as to the text file formats it can handle; it expects sets of (frequency, intensity pairs), one per line. Multiple values for intensities can also be given and appear as multiple spectra.
.jdx,.dx,.jcm | JCAMP-DX format - PGOPHER can handle most varieties
.sp, .asc
 Files from Perkin-Elmer spectrometers
.spc, .cgm
 Thermo Scientific (formerly Galactic Industries) spectrometer files
.par
 HITRAN line list. When loaded as an overlay the just the line position and intensity are taken from the file.
.drv | Drive files - PGOPHER can handle these directly, or via the clipboard from DRIVE.
.bmp, .jpg and other images
 PGOPHER can also handle bitmaps, for cases where only a picture of the spectrum is available instead of the raw data. In this case, the frequency scale must be set manually from the Bitmap Overlay window.

From the clipboard

Select the data you want to overlay in another application, such as a spreadsheet, a Drive spectrum, a bitmap, a picture in a .pdf file, or a simple text file in a text editor, copy it to the clipboard (Edit, Copy in most applications) and then use Overlays, Paste Overlay [image] in PGOPHER. To add, rather than replace a spectrum use Overlays, Paste Another. The frequency scale is detected automatically if there are only two numbers for each point on the spectrum. If the file contains more than two numbers per point, or the frequency scale is otherwise not clear, you are prompted for the action to take (such as discarding some data or treating the file as several spectra) in the Pick Channels Dialog.

Open a data file

Use File, Load Overlay...to open a data file. You can also drag and drop data files on to the main PGOPHER window, which has the same effect.

Inverting a spectrum (if required)

The interactive line fitting procedure requires peaks to be upwards rather than downwards (as is often used for absorption spectra). Use Overlays, Invert if your spectrum is of this type.

Lining up the simulation and experiment (horizontally).

You apply a simple horizontal offset to a simulation via the FOffset parameter. This is one of the simulation parameters, or you can set it via the "Offset" entry on the main toolbar or by dragging the simulation with the mouse while the "ALT" or "CTRL" key is held down.

Lining up the simulation and experiment (vertically).

Imported spectra normally come without obvious units, so the units are set to Arbitrary. With this setting specta will normally be plotted so as to fill the available vertical space. For more control set the units of the overlay to Normalized, in the Overlay window. Note that this must be done at both the top level and for the indivudual spectrum.


Exporting Plots

There are various ways to export the plots generated by PGOPHER for use by other programs, depending on the required result.

Text File with Numbers

This is produced by File, Export, Main Plot and choosing .txt or .dat as the file type, or Edit, Copy Main Plot and then pasting into another application. The produces a text file, with curves as a simple list of x,y points, one pair on each line. If there is more than one curve in the plot (a simulation and overlay for example) a blank line separates each curve. These files should be easily readable by spreadsheets or scientific plotting programs. Notes:

  • For multiple curves the x axis points are not necessarily the same, particularly if both a simulation or an overlay are involved.
  • Plotted points and measuring lines are also included in the export, and show as a separate "curve" with one or two points.
  • You may need to go via a spreadsheet or text file if you have multiple curves to select the required curves.

Plots

Key Tip: Shrink the main PGOPHER window to 1/4 - 1/8 of full screen before producing the plot. (This will give larger lettering and symbols in the plot produced, which is usually required for paper illustrations and PowerPoint slides.)

The easiest method is system dependent, though File, Export, Main Plot can also produce SVG or Xfig plot files on any system. For all these plot options note two settings in the Plot Menu under Plot Options:
Variable Char Size | Selected by default, allowing character size on printout, clipboard and export to reflect on screen proportions. The on-screen plots typically have rather small characters, but if the main window is reduced in size then the characters in the plot produced are increased in size in the resulting plot. If the option is not selected the character size remains fixed as the window size is changed.
Limit Line Segments | Select (default) to limit number of segments on a plotted curve. It can be helpful to unselect this option if you intend to edit exported plots. The only drawback is that the resulting plots can be too complicated for some programs to handle.

Windows

Use Edit, Copy Main Plot and the Edit, Paste Special in Microsoft Office or other applications. This will allow you to select "picture" as the type, which gives the plot directly. (If you use normal Edit, Paste you will normally see the list of numbers as described in "Text File with Numbers" above.) If using Microsoft Office you can edit the resulting picture by right clicking on it and selecting "edit picture" and then "ungroup" - this seems to work better in PowerPoint than Word. Other drawing programs will have something similar.

Linux

It is not currently possible to export plots via the clipboard; consider the vector graphics formats below. Alternatively, installation of the cups-pdf package (available on most Linux systems) provides a "fake" printer that produces pdf files. Simply use File, Print and select "Cups-PDF" as the printer.

Mac

It is not currently possible to export plots via the clipboard; consider the vector graphics formats below. Alternatively, a pdf or postscript file can be produced from File, Print and clicking on the "PDF" button.

Vector Graphics Files

File, Export, Main Plot allows the vector graphics formats to be produced:
  • A .svg file, which can be read and edited by various graphics programs, including Firefox for reading and Inkscape or Open Office.org Draw for editing.
  • xfig format, associated with TEX.


Calibrating Spectra

PGOPHER can be used to calibrate an experimental spectrum from anything displayed in the simulation window; a line list or a simulation of a known spectrum are likely to be the most useful sources. The following built in calibration sources are available (see File, New, Calibration):
  1. The visible B-X absorption spectra of I2. The line positions for this are calculated from the constants given in F. Martin, R. Bacis, S. Churassy and J. Vergès, J. Molec. Spectrosc. 116, 71 (1986) with the Franck-Condon factors estimated from RKR curves generated from these constants. Checks against high accuracy measurements in H. Knockel, B. Bodermann, and E. Tiemann, Eur. Phys. J. D 28 199 (2004) indicates a maximum error of 0.043 cm-1, but < 0.02 cm-1 for the v" < 11 transitions typically used for calibration.
  2. Ne and Fe atomic lines with positions and intensities taken from the NIST Atomic Spectra Database (version 3.0.3), Yu. Ralchenko, F.-C. Jou, D.E. Kelleher, A.E. Kramida, A. Musgrove, J. Reader, W.L. Wiese, and K. Olsen http://physics.nist.gov/asd3 [2006, June 18]. National Institute of Standards and Technology, Gaithersburg, MD.
  3. A set of line positions for use with Ne optogalvanic spectra, commonly used for calibrating pulsed dye lasers. The lines are taken from "An atlas of optogalvanic transitions in Neon" RAL report, RAL-91-069 (1991) by S.H. Ashworth and J.M. Brown, with Ne lines from the NIST database (see above) and a few points added from our own measurements.
If you have an etalon trace recorded with the data, then follow the procedure in Using Etalons to produce a linear frequency scale, and then use (if necessary) the procedure below to calibrate the resulting scale.

1. Load Experimental data and Calibration source

First load the experimental spectrum and set up the reference source for the calibration, so the simulation window looks something like the picture below; see Overlaying Files for how to do this. Note that both spectra should have upward pointing peaks; use Overlays,Invert if necessary to invert your spectra

In this case the spectrum is atomic lines, and the upper trace is an atomic line list.

2. The Calibration Window

Use Overlays, Calibrate (or right click on the experimental spectrum and select calibrate) to bring up the calibration window, and make sure the experimental spectrum to be calibrated is selected in the box at the top of the dialog:

Important: While calibrating, there are two horizontal scales that need to be considered:
  • The original uncalibrated scale, perhaps the point number for a simple experimental recording
  • The new (tentatively calibrated) scale, typically frequency or wavelength.
As you start calibrating, the plot will always be of the new scale, but peak measurement and display changes for overlay channels as follows:
  • If the calibration dialog is open and selecting a particular channel then peak measurements of that channel will be on the original frequency scale.
  • Otherwise peak measurements will use the new (hopefully calibrated) scale.
In addition, while the calibration window is open, Alt+drag will move the selected experimental spectrum rather than the simulation. Make sure the calibration window is closed when you have finished calibrating or you will be using an uncalibrated scale for peak measurements.

3. Initial Alignment

The traces need to be roughly aligned to start with, at least so the assignment to the reference spectrum is clear. If the experimental spectrum has an approximately correct scale, then an offset may be sufficient - alt + drag in the main plot window, provided the calibration window is open.

If you know the approximate limits of the experimental spectrum:
  1. Select "Other", "Set Range". This will add two measured "peaks" at the very start and end of the spectrum, and they will appear in the calibration window. (They are set with a large standard deviation of 1000, implying a large uncertainty in their values, so any subsequent assignment of calibration peaks with the default standard deviation of 1 will essentially ignore these points)
  2. Enter the corresponding frequencies in the "Actual" column for these two points.
  3. Ensure the polynomial value is 1, and press "Fit".
Alternatively, it is possible to manually edit the FrequencyOffset and FrequencyScale of the Experiment overlay.

4. Assigning Peaks

To use specific peaks in the spectrum for calibration:
  1. Right click and drag across an experimental peak; the peak position is measured and appears in the first column of the "Calibrating" form.
  2. The "Actual" box next to it will turn red to indicate the actual position to be filled in.
  3. Right click and drag across the corresponding peak in the calibration spectrum; the position of this will be filled in the square indicated above.
  4. Repeat as required - you will only need a few peaks in the initial stages.
To correct mistakes:
  • To cancel or re-do an assignment click the "Assign" button; this is for re-doing steps 2 and 3 above.
  • To delete entries use the "x" button

5. Fitting

Given some assignments, press the "fit" button. The residuals will be filled in and the experimental plot will be adjusted to reflect the newly fitted frequency scale. The residuals will be plotted in a separate window.
  • The undo fit button will step the function and plot back one step,
  • By default a linear function is used; to use a higher order polynomial change the number in the spin box. The details of the fitted function (the parameters used, estimated errors and the correlation matrix) will be displayed on pressing the button next to it; this also allows an arbitrary function to be used for fitting.
  • If you used the simulation offset (The Offset box in the main window) to line up the simulation and experimental traces, you will probably want to reset this to zero after the first fit.
You will probably want to add more peaks - go back to step 4.

6. Transferring the Calibration

Once you have a suitable calibration, you can transfer the calibration to another spectrum using one of the following entries on the "Other" menu:
  • Copy Frequency To: This is for the common case of spectra with a common x axis, as when several signals are recorded simultaneously. (This implies they have the same number of points.)
  • Apply Calibration To: This is for the more general case where the spectra have independent x axes, but the mapping between x and frequency is the same for both spectra. (This will typically apply to spectra recorded independently, and also plate spectra are likely to be this way.) Note that the original x scale is lost on saving in this mode.
In each case your are prompted to select the spectrum to apply the calibration to; select "all" the default to apply it to all overlays. Note that transferring a calibration of a spectrum onto itself (or selecting all) has the effect of removing the original frequency scale.


Using Etalons

If an etalon trace is available as one of the channels in experimental data, then it can be used to generate a linear frequency scale in a semi-automatic way. In particular, the etalon peaks can be measured automatically, provided they are reasonably equally spaced. The basic logic is to use the etalon trace first, to generate a linear frequency scale, and then calibrate the resulting scale (which should at most be a shift and linear scale factor) using the standard calibration procedure. The basic procedure is this:

  1. Measure the first two etalon peaks by right clicking and dragging across each peak.
  2. Right click on the etalon trace and select calibrate.
  3. If you have an approximate (or exact) position for either or both peaks, set the corresponding actual values. Alternatively, a shift can be applied later.
  4. Select Other, Etalon, and enter the etalon spacing if you know it. Alternatively accept the default (1) and fix later.
  5. The remaining etalon peaks should be measured, and assigned "Actual" values based on the numbers entered so far. If the process goes astray, around a mode hop for example, delete the affected peaks in the calibration window. The process can normally be re-started by measuring a few peaks manually, and then using the automatic process as in step 4.
  6. To check that the peaks have been found correctly try the fit button with the polynomial order set to 1. If this reveals any problems, delete the affected peaks. You can repeat from step 4 if necessary after deleting some peaks; the automatic process only uses the last two measured peaks.
  7. To produce a linearized scale use one of:
    • An appropriate order of polynomial. Note that higher orders can give fitting problems as polynomials are often numerically unstable.
    • A spline fit - recommended if there are many etalon fringes. To do this, select "Other...", "Spline fit...", and normally check "Update immediately". The number of spline points used can be set in three ways:
      1. "Through Every Point" - a standard cubic spline through each of the calibration points
      2. "For Average error of" - a smoothed cubic spline through each of the calibration points adjusted to minimize the second derivative and give the average error input.
      3. "Through equally spaced points" - a cubic spline through the input number of equally spaced points, with the spline fitted to give the minimum average error.
    If many fringes are present, 3 is recommended, with the number of points rather less than the number of etalon fringes.
  8. Give a good fit, "Other", "Apply to All" copies the new frequency scale to all your traces.
This process will generate a linear frequency scale starting around 0. You can then use the standard calibration process to complete the calibration. Alternatively, if you are confident of the etalon spacing entered, a simple offset set in the overlay properties may be sufficient.


Line Position Fitting

This is the preferred method of determining constants from an experimental spectrum, and can be used when lines are reasonably well resolved. Where this is not the case it may be possible to do contour fitting, but note that this may not give good results.

The procedure described here works best using a mouse; it is possible with a trackpad or other pointing device, but a little fiddly. Where right click is required, mac users will probably want to use Ctrl+Normal Click which is equivalent to right click for a single button mouse or trackpad.
  1. Overlay the experimental spectrum over the PGOPHER simulation. Note that for the process described here, peaks in the experimental spectrum should be pointing upwards, rather than downwards as is sometimes used for absorption spectra. If the experimental spectrum is plotted separately you can right click on the experimental spectrum and select invert or otherwise select Overlays, Invert from the main menu.
  2. Drag the simulation and/or manually adjust the constants so that you can match at least some peaks between the two spectra. The assignment process works best if you start with low J transitions near the band origin. To adjust constants open the constants window which allows typing in values or adjusting them with the mouse.
  3. Right click on a peak that can be assigned to a peak in the experimental spectrum. A Line List Window will appear:

    You will normally want to arrange the windows so that the simulation and the line list do not overlap. Selecting View, Arrange Windows from the main menu may help.
  4. All the lines close to the mouse (within a few pixels on the screen) will be shown selected, which will often catch more than one rotational transition as above. The strength of the individual transitions is normally enough to indicate if you have a sensible selection of lines. The next step will ignore the weaker lines, or you can adjust the selected lines with the mouse. (You can delete the unwanted transitions by selecting the required rows with the mouse and pressing the delete button [image] . Note you can adjust that the settings controlling the number of peak displayed and assigned from the Line List Options Window.)
  5. Measure the corresponding peak in the experimental spectrum by dragging the across the peak with the right mouse button. (Press with the right mouse button to the left of the peak, drag the mouse to the right of the peak, and release). The peak position will be determined from the spectrum and a marker indicating the determined position will be displayed. Note:
    • The exact positions you click and release is not important, provided you do not include any other peak in the range. For closely spaced peaks you may need to try more than once, possibly expanding the scale.
    • You can remove the markers from the simulation from the Overlays menu - select "Delete Last Peak" or "Clear All Peaks" as required.
  6. Provided Auto is selected in the line list window, the "Frequency" column in the line window of the selected rows will change to that of the experimental peak and the “Weight” will be set to 1 to indicate a measured, rather than a calculated frequency. (If Auto is off press the Assign button to do this manually.)
  7. Repeat steps 3 to 6 to assign a few more peaks.
  8. To check that you have the correct assignments, press the "Test" button. The program will read and plot your assignments:
    • The observed and calculated values are joined with lines above the experimental spectrum.
    • The upper end of the line is the experimental frequency, and the lower end is the calculated frequency.
    • When the fit is perfect, these will appear as small vertical tick marks. At this stage the lines will probably be sloping, but it is normally obvious if you have misassigned something.
    • Positioning the mouse over the top of one of the marks will show the number in the line list of the assignment in the status bar below the simulation.
    • Right click on the mark to show the row containing the experimental line position in the line list window.
  9. It is easy to misassign peaks, and wrongly assigned peaks can distort the fit quite badly. To correct an assignment, select the corresponding rows(s) with the mouse and either:
    • Delete those rows with the delete button
    • Re-measure the peaks as in step 5 by dragging across the peak with the right mouse button.
    • Manually edit the values in the grid. You can temporarily remove an observation by setting the "Weight" to zero.
  10. Given a reasonable number of assigned peaks you can perform a fit. Select the parameters you want to float by going to the constants window (View, Constants) and set "Float" to "yes" by each of the parameters you want to float. Notes:
    • You can change between "no" to "yes" by clicking on the cell, or simply enter "y" or "n".
    • It is important to float a small number of parameters to start with - say only the most significant ones such as the origin, spin orbit coupling constant, A, (if appropriate) and rotational constant, B.
  11. Click Fit in the line list window.
    • A list of observed and calculated transition frequencies, the average overall error, new values for the constants and estimates for their uncertainties and a correlation matrix will be displayed in the log window (View, Log though this will normally show automatically. You will normally want to arrange your desktop so that the simulation, line list and log windows do not overlap ). For more details on the values displayed, see the documentation for the log window.
    • A plot of the residuals before the fit will be shown in the residuals window. This is normally shown automatically, or use View, Residuals.
    • The main window will show an updated simulation (unless you have AutoReplot turned off, in which case you will need to press the "Simulate" button).
    • If you used an offset on the simulated spectrum you will probably need to reset the offset to zero after the first fit.
  12. If the results look reasonable, then press "Fit" repeatedly until the error converges. Note that the residuals and calculated positions displayed are the values before the fit, rather than after.
  13. If the fit does not look good, the Undo Fit [image] button in the log window will step constants back one fit cycle for each press
    • If you go too far, the Redo Fit [image] button in the log window will step the constants forward one fit cycle.
    • To correct assignments, see step 9.
  14. Common problems:
    • You can't float more parameters than you have observations. (The program will handle the case when you have equal numbers.)
    • You can only float parameters which depend on the observations you have given; if they do not, or there is very little information available, the constants and their errors will become very large. PGOPHER now uses singular value decomposition which can often detect this sort of problem, and indicate the problematic combinations of parameters in the log window; this is controlled by SVDThresh. A "Singular Matrix" error message can also arise from this sort of issue.
    • The error message "Overflow in Boltzmann for...". This often simply reflects a problem with the assignments or floating too many parameters - use "Undo Fit" and adjust as above. It can reflect a deeper problem with the calculation, and is discussed in more detail under J Range and Partition Functions; possible quick fixes include setting IntensityUnits to "Arbitrary" while fitting or limiting the J range of the simulation as described in Determining Colours and J ranges. ("Arbitrary" is not recommended for general use, as it can give very misleading relative intensities in simulations.)
  15. Complete the fit by repeating from step 3, adding more peaks to the line list and floating more parameters.
  16. A complete report on the fit can be obtained from the Log window:
    1. Clear the log window with the clear button
    2. Press the "fit" button in the line list window
    3. In the log window the copy button: will copy the report to the clipboard, or alternatively use the save as button [image] to save the log to a file.
  17. The contents of the line list window are normally saved to, and loaded from, the .pgo file, though it is more flexible to save the assignments to a separate file. See the next section for how to do this.

Line lists in separate files

It is normally more flexible to work with assigned lines in an independent file for larger fits as only limited editing is possible in the line list window. The file is a text file normally with a .lin or .obs extension and will accept a wide variety of formats and options on top of the basic line list as displayed in the line window. For example, a "stop" directive will cause the rest of the file to be ignored, allowing fits to part of the data. For full details see the section on Line List Input File Format. A custom text editor, the Slave Editor, is distributed with PGOPHER which has been specially designed for editing these files. The procedure below describes how to generate a basic version of the file from the line list window.

To set the file:
Either:
  1. Press More Button and select "Save to File" to save the current line list to a file.
or (to set a previously generated file):
    1. Go to the log window(View, Log).
    2. Press the [image] button and browse to the file (or where you would like the file to be created). This will put the file name in the observations file name window. (The file name should typically end in .lin or .obs).
    3. Press the Edit Button [image] . If the file does not exist you will be asked if you want to create it. If the Slave Editor is set up correctly, this should start.
To add observations to the file:
  1. Use the copy button( [image] in the line list window) to put your assignments onto the clipboard
  2. Paste the assignments into your observations (.lin) file, and save it.
To use this file, rather than lines in the line position window:
  1. Use the Fit Button [image] in the log window, rather than the line list window. If the Slave Editor is in use, then the contents of all slave editors are saved before starting the fit. Note that if a slave editor is unable to save a file that has been modified then the fit will not start and the slave window will come to the front or flash.
  2. Assignments are best added to the external file by copying and pasting from the line list window.


Contour Fitting

Contour fitting allows fitting the overall shape of an experimental spectrum to a simulation, and is useful for low resolution spectra in which the rotational structure is not fully resolved. Note that the results from this sort of fit are typically less reliable than for a line position fit, and a line position fit is to be preferred if at all possible.The current implementation can typically move most peaks of the order of half the linewidth; a fit requiring many peaks to move by more than this is unlikely to succeed.
  1. To start a contour fit, Overlay the experimental spectrum over the PGOPHER simulation. The initial match must be quite good for a contour fit to work - a contour fit will typically not move a peak more than the peak width, for example. The simulation must account for all the significant features in the spectrum; if, for example, there are nearby bands that you have not included you should remove the appropriate frequency range from the experimental data.
  2. It is easier to work if the intensity units of both the overall overlay, and the specific overlay(s) to be floated are set to "Normalised", rather than arbitrary. Go to the overlays window (View, Overlays), click on the topmost item and ensure that "IntensityUnits" are set to "Normalized". Click on the specific overlay and check the same setting. After doing this the "Baseline" and "Scale" will typically need to be adjusted manually for a reasonable match with the simulated spectra as the vertical autoscaling is now turned off.
  3. Open the constants window (View, Constants) and click on “Fix all” to ensure that no molecular constants are floated to start with.
  4. The first parameters to be floated must be the scale and baseline of the overlayed spectrum. Go to the overlays window (View, Overlays), select the overlay required (probably the first one unless you have more than one experimental spectrum overlaid) and float these two parameters (double click in the float column so it reads “yes”).
  5. Bring up the log window by selecting (View, Log) and choose "Contour" as the fit type in the top left. On pressing the "Fit" button a separate plot showing the obs-calc (difference between the experimental spectrum and the simulation) is shown in the main window (see below for an example), along with the simulation. The log window now shows new values for the floated parameters and their errors, the average error, and a correlation matrix. The error will typically be very large at this point
  6. Press the "Fit" button repeatedly, until the average error is as low as possible, and a simulation that roughly matches the experimental spectrum is shown. If you have problems you may have to fix some of the parameters and try manually changing them.
  7. To further improve the fit, start floating molecular parameters. Floating many parameters simultaneously will often cause the fit to make wild changes in some of the parameters unless the fit is very good. For best results float additional parameters one or two at a time, starting with the most important. The Undo Fit button allows you go back to previous fits, if you find you have gone too far from a reasonable fit. For example, the excited state origin might be the first molecular constant to float (“View”, “Constants”, and double click on the “no” next to the constant to change it to yes.). Again, press “Contour fit” repeatedly until the error reaches a minimum, and converges.
  8. Other parameters to consider are A or B rotational constants, the linewidth and rotational temperature. Eventually, the simulation should closely resemble the experimental spectrum, and the obs-calc will be much smaller.

The log window will show details of the fit, including estimated standard deviations of the parameters. The standard deviations are calculated using the standard methods for least squares fitting, using derivatives estimated with numerical differences, but experience with contour fitting indicates that the error bars on the parameters are typically too small, and the most reliable estimates of the error are obtained by comparing the results of fits to different data sets.


Combination Difference Fitting

Observations containing an upper or lower level in common can be combined into a single observation corresponding to the difference in energy between the two levels in the other state. Fitting in this way can be helpful if one of the states is perturbed or unassigned. If using the linelist window fitting using this mode can be invoked from the "More" menu (rather than using the fit button). When fitting in this way the observations are internally sorted by upper or lower state as appropriate, and the resulting list is then scanned, combing observations where possible. Any observations that cannot be combined are discarded.

For more control, put the observations in a separate file, rather than using the linelist window, and is then probably easiest to work with using directives in the input file as shown below, though CDlower or CDupper can be selected as the default mode for a file in the log window. It is also possible to manually construct the appropriate equivalent transitions within the state of interest, even if they do not correspond to allowed transitions; PGOPHER does not require fitted transitions to be allowed.

CDupper/CDlower

The CDupper or CDlower directive can be used for observations that are already sorted so that those with common levels are adjacent. The directive applies to all following observations until a directive changes the observation type. For example, using lines in branch format, the pair of observations input as follows:
CDlower
P(6) 992.1870 1
R(4) 1012.0070 1
will be transformed into a single observation of 1012.0070-992.1870 = 19.82 corresponding to the difference between J" = 6 and J" = 4 in the lower state. Any observations that cannot be combined causes an error.

AutoCDupper/AutoCDlower

If the observations are not sorted the AutoCDupper or AutoCDlower directives can be used to automatically sort the observations before looking for common differences. In this mode a CDstart directive marks the start of the observations to be considered for conversion to combination differences, and the conversion happens when the AutoCDupper or AutoCDlower is encountered in the file. There is an implicit CDstart directive before the first observation, and after any observation type directive. The AutoCDupper or AutoCDlower directive can be followed by a flag that controls the handling of observations that are not part of an upper state combination difference:
  • ignore - discard the observations. (This is the mode used if CD fit is invoked from the linelist window.)
  • force (the default if the flag is not given) - report an error for each observation not included in a combination difference.
  • include - include the observation in the fit as a normal transition (between two states).
This mode offers less control than the CDupper or CDlower directives as the mapping between the observations input and those actually fit can be less direct.. For example, any duplicate observations (those with identical upper and lower states) are combined into a single observation before looking for combination differences.

The following shows an example appropriate for a linear molecule:

CDstart
Excited  8 e 1 Ground  7 e 1 3035.9776 1  R(7) : Excited v=1  8 e - Ground v=0  7 e
Excited  8 e 1 Ground  8 e 1 2871.5452 1  Q(8) : Excited v=1  8 f - Ground v=0  8 e
Excited  9 e 1 Ground  8 e 1 3052.5730 1  R(8) : Excited v=1  9 e - Ground v=0  8 e
Excited  9 e 1 Ground 10 e 1 2663.1901 1 P(10) : Excited v=1  9 e - Ground v=0 10 e
Excited 10 e 1 Ground 10 e 1 2863.9385 1 Q(10) : Excited v=1 10 f - Ground v=0 10 e
Excited 11 e 1 Ground 10 e 1 3084.2618 1 R(10) : Excited v=1 11 e - Ground v=0 10 e
AutoCDupper include
Notes:
  • Upper state combination differences are used, requiring the lower state quantum numbers to be identical. The sample here has been sorted by lower state quantum number for clarity, but this is not required.
  • The first line is the only observation with J"=7, so cannot be combined into a combination difference. The include flag on the last line means that the observation will be included in the fit as a normal line position observation.
  • The next two lines, Q(8) and R(8) will be combined into a single observation.
  • The next three lines, P(10), Q(10) and R(10) will be combined into two observations corresponding to J'=11 - J'=10 and J'=10 - J'=9. (Note the Q(10) transition should be forbidden, but this does not affect the fitting.)

Estimated errors and correlations in the observations

When two observations are combined, the estimated standard deviation of the observation is derived from the standard deviations of the two observations, using standard error propagation methods. For two observations with standard deviation 1, the standard deviation of the difference will be sqrt(2). If three observations are combined in to two common differences, as for P(10), Q(10) and R(10) in the example above, then the correlation between the observations must be considered to obtain the correct statistical analysis. See J. Tellinghuisen, J. Molec. Spectrosc. 221, 244 (2003) for a discussion of this point. (Note this paper also points out that only two differences should be used for fitting in this case; including the third difference will also produced incorrect statistics.)

Overall example

The sample input file below shows how several of these possibilities can be combined in a single file. The data has been generated for a simple linear molecule, using the parameters given in the paper mentioned above.
# Normal lines
Line
Excited  5 e 1 Ground  5 e 1 2879.9890 1 Q(5) : Excited v=1  5 f - Ground v=0  5 e
Excited  9 e 1 Ground  9 e 1 2867.9519 1 Q(9) : Excited v=1  9 f - Ground v=0  9 e

# Explicit common differences in correct order
CDupper # Applies to following lines, which reduce to three observations
Excited  1 e 1 Ground  2 e 1 2844.2656 1 P(2) : Excited v=1  1 e - Ground v=0  2 e
Excited  2 e 1 Ground  2 e 1 2884.8006 1 Q(2) : Excited v=1  2 f - Ground v=0  2 e
Excited  3 e 1 Ground  2 e 1 2945.5659 1 R(2) : Excited v=1  3 e - Ground v=0  2 e

Excited  8 e 1 Ground  9 e 1 2686.9224 1 P(9) : Excited v=1  8 e - Ground v=0  9 e
Excited 10 e 1 Ground  9 e 1 3068.6981 1 R(9) : Excited v=1 10 e - Ground v=0  9 e

CDlower # Applies to following lines, which reduce to four observations
Excited  4 e 1 Ground  3 e 1 2964.5797 1 R(3) : Excited v=1  4 e - Ground v=0  3 e
Excited  4 e 1 Ground  4 e 1 2881.9914 1 Q(4) : Excited v=1  4 f - Ground v=0  4 e
Excited  4 e 1 Ground  5 e 1 2778.8584 1 P(5) : Excited v=1  4 e - Ground v=0  5 e

Excited  7 e 1 Ground  6 e 1 3018.8444 1 R(6) : Excited v=1  7 e - Ground v=0  6 e
Excited  7 e 1 Ground  8 e 1 2710.3938 1 P(8) : Excited v=1  7 e - Ground v=0  8 e
Excited  7 e 1 Ground  7 e 1 2874.7888 1 Q(7) : Excited v=1  7 f - Ground v=0  7 e

# Automatic common differences
CDstart # Start of block
# Note first line not a common difference
Excited  1 e 1 Ground  1 e 1 2885.6067 1 Q(1) : Excited v=1  1 f - Ground v=0  1 e
Excited  2 e 1 Ground  1 e 1 2926.1472 1 R(1) : Excited v=1  2 e - Ground v=0  1 e
Excited  2 e 1 Ground  3 e 1 2822.8136 1 P(3) : Excited v=1  2 e - Ground v=0  3 e
Excited  3 e 1 Ground  3 e 1 2883.5772 1 Q(3) : Excited v=1  3 f - Ground v=0  3 e
Excited  3 e 1 Ground  4 e 1 2801.0182 1 P(4) : Excited v=1  3 e - Ground v=0  4 e
Excited  5 e 1 Ground  4 e 1 2983.1304 1 R(4) : Excited v=1  5 e - Ground v=0  4 e
Excited  6 e 1 Ground  5 e 1 3001.2369 1 R(5) : Excited v=1  6 e - Ground v=0  5 e
Excited  5 e 1 Ground  6 e 1 2756.3627 1 P(6) : Excited v=1  5 e - Ground v=0  6 e
Excited  6 e 1 Ground  6 e 1 2877.5749 1 Q(6) : Excited v=1  6 f - Ground v=0  6 e
Excited  6 e 1 Ground  7 e 1 2733.5398 1 P(7) : Excited v=1  6 e - Ground v=0  7 e
AutoCDlower ignore # Applies to preceding lines; implicit block start

CDstart # Optional here, as preceding AutoCDlower forced block start
# Note first line not a common difference
Excited  8 e 1 Ground  7 e 1 3035.9776 1  R(7) : Excited v=1  8 e - Ground v=0  7 e
Excited  8 e 1 Ground  8 e 1 2871.5452 1  Q(8) : Excited v=1  8 f - Ground v=0  8 e
Excited  9 e 1 Ground  8 e 1 3052.5730 1  R(8) : Excited v=1  9 e - Ground v=0  8 e
Excited  9 e 1 Ground 10 e 1 2663.1901 1 P(10) : Excited v=1  9 e - Ground v=0 10 e
Excited 10 e 1 Ground 10 e 1 2863.9385 1 Q(10) : Excited v=1 10 f - Ground v=0 10 e
Excited 11 e 1 Ground 10 e 1 3084.2618 1 R(10) : Excited v=1 11 e - Ground v=0 10 e
Excited 10 e 1 Ground 11 e 1 2639.1611 1 P(11) : Excited v=1 10 e - Ground v=0 11 e
Excited 11 e 1 Ground 11 e 1 2859.4863 1 Q(11) : Excited v=1 11 f - Ground v=0 11 e
Excited 12 e 1 Ground 11 e 1 3099.2950 1 R(11) : Excited v=1 12 e - Ground v=0 11 e
AutoCDupper include

Line
Excited  1 e 1 Ground  0 e 1 2906.2757 1 R(0) : Excited v=1  1 e - Ground v=0  0 e


Other Fits

Line Intensity Fitting

Line intensities can also be fit, which makes sense in three contexts:
  1. Where absolute intensities have been measured and a fit can therefore determine the transition moment.
  2. Relative intensities have been measured of two or more bands, and the relative transition moments are required.
  3. A series of relative intensity measurements have been made, and the population distribution are required.
The essential procedure is the same as for line position fitting, except that the line intensities replace the positions in the observations file. When fitting, the Fit type combo box should be set to "Intensity" rather than "Line", and you will want to make sure that only parameters affecting the intensity are floated. (In principle this will be all parameters, but you will normally want to float the transition moments and temperature only.)

To fit populations set the required levels up as described in Non-Boltzmann Populations; this then provides a parameter for each level of interest in the manifold that can be floated as for other parameters. Again you will normally want to float these population parameters only.

Energy Level fits

This is essentially a special case of a line position fit. To force the observed value in a given line in the input file to be treated as an energy level, rather than a transition frequency, replace J S and # for the unwanted state with "-" and leave the manifold field blank. It is also possible to force this for a complete file from the Log Window. If HITRAN or JPL line catalog files are used as input, then these have energy level information in them and selecting EUpper or ELower in the log window will cause the state energy to be worked out (using the line position and lowers state energy for EUpper). For other file formats the values given in the file must be the energy level.


Non-Boltzmann Populations

A basic level of a non-Boltzmann population distribution is available through setting the vibrational temperature, Tvib, which affects the relative populations of different vibronic states, or the spin temperature Tspin.

For more control there are two possible methods; to use a different functional form than the simple Boltzmann equation; see Custom Populations for how to do this. Alternatively, the populations of each level can be specified individually, for uses such as simulating double resonance spectra or nascent population distributions following reactions. It is also possible to fit these populations to measured intensities or band contours, as the populations are simply parameters that can be floated as any other; see the sections on Line Intensity Fitting and Contour Fitting. This process can also be used to simulate and fit time of flight or kinetic energy release spectra; use IntensityUnits = PopDist to ignore transition moments and just plot energy levels with populations derived as described in this section. Plots against velocity (in units of cm-1/2), rather than energy can be obtained by Setting PlotUnits to sqrtcm1.

The populations will show in the parameter area of a manifold; by default no populations will be set so this area will be empty. To set up population distributions, either:
  1. In the constants window, right click on the relevant manifold or state in the treeview.
  2. Select "Add All Levels"; this will add all the levels of that manifold or state (within the J range set up) and initialize them using the current Temperature and Tvib to calculate the population.
  3. You can get a matching table of energy levels and quantum numbers using the "List" button in the "Levels" window, providing the same manifold or state is selected.
or, to add individual levels:
  1. Use "View","States" to bring up the State Details Window.
  2. Select J, symmetry and Manifold such that one of the states of interest is displayed.
  3. In the "Eigenvalues" pane (the lower matrix) right click on the required energy level and select "Add to population selection".
  4. Repeat the above steps for all the required levels.
"View,Constants" will now show a parameter for each state at the manifold level. The "Value" column is the relative population.
To activate these parameters either:
  • Set UsePopParams for the required manifolds
  • Set the overall Temperature < 0 to force the use of the numerical populations for all manifolds
If neither of these conditions are met the individual populations will be ignored and the standard Boltzmann distribution will be used.

To remove the custom population entries, go to "View,Constants" and right click on the entries in the parameter pane for the manifold. There are items for removing selected or all the items.


External Fields - The Zeeman and Stark Effects

The effect of a static external electric and/or magnetic field can be included in PGOPHER simulations. Setting up a data file in principle only requires making sure the required electric or magnetic dipole moments for the state(s) of interest are present. As the underlying physical interaction is the same as absorption or emission of radiation, these are set as transition moments. The only difference in the treatment of static fields is that only transition moments acting within a manifold are considered. For sample data files see:

  • Zeeman and Stark Effects in SO
  • The microwave spectrum and electric field focusing of (NO)2
  • The pure rotational spectrum of the ground state of NH3 and the Stark effect

The presence of a static field has significant consequences for the way calculations are performed, and the way various windows work.

Spectra

To simulate a spectra in the presence of a field, just set EField and/or BField as required in the Simulation object using the Constants window but note:

  • Calculations in the presence of a field are more time consuming than at zero field, so care may be necessary in the selection of the basis state.
  • In the Linelist window, the "J" columns (the 3rd and 7th) will show M rather than the total angular momentum, and the symmetry columns will be blank.
  • The Transitions window will allow M and the change in M to be selected, rather than the total angular momentum, and the symmetry selection will be ignored.
  • By default, the simulated spectra will assume unpolarized light, giving ΔM = 0, ±1 selection rules. To control this, add one or more Polarization objects under the simulation object.
  • As currently implemented, static electric and magnetic fields can be applied simultaneously, but must be parallel.

Basis State

The only good quantum number in the presence of a field is the projection of the total angular momentum along the field, M, so the basis used for any one diagonalization includes all states with the required M. The M quantum number will be added onto the end of any other quantum numbers in the state and basis labels. As this is a notionally infinite number of states, the range for the total angular momentum included in the basis is taken from Jmin to Jmax. (All rovibronic symmetries are included in the same matrix.) A full matrix diagonalization is used, not a perturbation based approach which is also in common use. The results will be exact, provided a large enough range of total angular momentum is used, though possibly slow.

The slow speed arises because the matrices to be diagonalized are much larger matrix than for zero field calculations. This can be mitigated by choosing Jmax (and possibly Jmin) carefully. The range must not be set too small as it controls the accuracy of the calculations. As a rule of thumb a range including total angular momentum one higher and one lower than the states of interest will typically give the correct trends, and the convergence of the calculations should be checked with respect to increasing the range.

Energy Level Plots and Molecular Focusing /Deceleration

To predict the behavior of individual energy levels in a field, the Levels window allows energy levels to be plotted as a function of field, in addition to the normal plot as a function of angular momentum.
  • For a plot as a function of the field check the Field box and select the field to sweep and the required range.
  • If the Field box is not checked an energy level plot as a function of quantum number is obtained, in the presence of any field(s) set in the Simulation object.
  • The State window provides a more detailed listing of states in the presence of any fields set in the Simulation object. Note that if fields are present, M is selected instead of J and the symmetry is ignored.
As a simple example, consider the Stark effect in a symmetric top with B = 10 cm-1, C = 6 cm-1 and a dipole of 1.5 Debye, approximately those of NH3. (Note that the inversion doubling makes the true picture in NH3 more complicated - see NH3 pure rotation. To set up this calculation for the ground vibrational state (see Making a Data File for a Symmetric Top Molecule)
  1. Set up simple symmetric top with File, New, Symmetric Top
  2. Adjust the ground state by clicking on the "v=0" entry under "Ground" and set B = 10 , C = 6.
  3. Set up the dipole moment in the ground state by right clicking on <Excited|mu|Ground> (the transition moments object) and selecting rename. Change the "Bra" entry in the rename dialog so that both entries read "Ground". (This converts the transition moment to act within the ground state, rather than connecting two different states.). Enter the dipole moment by clicking on <v=0|T(1)|v=0> and enter 1.45 for Strength.
  4. Delete the upper state that was created by default - right click on "Excited" and select delete.
  5. To avoid excessive calculation time, set Jmax at the species level to 5. (This should be fine for J < 3, unless the fields are very high.) For a physically reasonable spectrum, set the temperature to 10 K.
  6. Bring up the Energy Level plot window (View, Levels) and click the Field check box. The default range of M starts at zero, but negative values need to be included to see the full pattern, so set "min" under M range to -1.
  7. The plot below can be obtained by setting the maximum field to 107 V/m, the vertical plot range to -2 .. 2, the labels position to "End" and the "shift mult" to 10. (The latter setting scales up the shifts from zero field by a factor of 10 for plotting.)

The resulting file is available as symstark.pgo.

Note that the J = 0 level show a small, quadratic (second order) effect, while the K = 1 levels show a strong linear (first order) splitting.

Two levels of detail are available from this window. The "List" button prints out the energy levels as a function of field, as for example:
Energy Level List for symstark.pgo
   M  Sym   # Field(V/m)       Energy    g Population Name J K (kl) Sym M
   0    -   1 100             -0.0000    1 .675473722 v=0  0  0 A1  0
   0    -   1 1000000         -0.0010    1 .675569751 v=0  0  0 A1  0
   0    -   1 2000000         -0.0040    1 .675857881 v=0  0  0 A1  0
   0    -   1 3000000         -0.0089    1 .676338232 v=0  0  0 A1  0
   0    -   1 4000000         -0.0158    1 .677011004 v=0  0  0 A1  0
   0    -   1 5000000         -0.0247    1 .677876479 v=0  0  0 A1  0
   0    -   1 6000000         -0.0355    1 .678935021 v=0  0  0 A1  0
   0    -   1 7000000         -0.0483    1 .680187072 v=0  0  0 A1  0
   0    -   1 8000000         -0.0631    1 .681633159 v=0  0  0 A1  0
   0    -   1 9000000         -0.0798    1 .683273889 v=0  0  0 A1  0
   0    -   1 10000000        -0.0985    1 .685109954 v=0  0  0 A1  0
Linear: -9.85038087317928E-009 cm-1/(Vm-1) -.0586611 Debye (15%)
Quadratic: -9.84803161106173E-016 cm-1/(Vm-1)^2 (.061%)

The values shown here are for the J = 0, K = 0, M = 0 level, as can be seen from the state label at the end of the line. To provide a simple model for the behavior, a least squares fit is performed of energy against field to the following three functions:

E(F) = E0 + CF | Linear, corresponding to a first order stark effect
E(F) = E0 + cF2 | Quadratic, corresponding to a second order stark effect
E(F) = E0 ± (Δ2/4 + C2F2)½ | Two level model giving intermediate behavior. It corresponds to two levels at E0 ± ½Δ, mixed by a matrix element CF. The sign of the square root is taken to be the same sign as C.

In the above, F is the field, E(F) is the energy as a function of field, E0 is the energy at zero field (except in the last case where it is E0 ± ½Δ) and c, C and Δ are constants. PGOPHER performs a fit to all three functions for each level, though the results for the two level model are not displayed if the fit gives poor results, typically when the state is close to pure quadratic behavior. The %ages indicate the maximum error in energy from the fitted function as a percentage of the total energy change over the sweep. For the values given above, the error in the quadratic fit is thus 0.061% of 0.0985 = 0.00006 cm-1, while the maximum error in the linear fit is 15% of 0.0985 = 0.015 cm-1, so the level clearly has a second order Stark effect.

The J = 1, K= 1, M = 1 level is a classic example of a linear Stark effect:

   1    -   1 100             16.0000    1 .067584303 v=0  1  1 E  1
   1    -   1 1000000         15.8780    1 .068780609 v=0  1  1 E  1
   1    -   1 2000000         15.7556    1 .070002665 v=0  1  1 E  1
   1    -   1 3000000         15.6328    1 .071250937 v=0  1  1 E  1
   1    -   1 4000000         15.5095    1 .072526022 v=0  1  1 E  1
   1    -   1 5000000         15.3858    1 .073828535 v=0  1  1 E  1
   1    -   1 6000000         15.2616    1 .075159102 v=0  1  1 E  1
   1    -   1 7000000         15.1371    1 .076518368 v=0  1  1 E  1
   1    -   1 8000000         15.0121    1 .07790699  v=0  1  1 E  1
   1    -   1 9000000         14.8866    1 .079325643 v=0  1  1 E  1
   1    -   1 10000000        14.7608    1 .080775017 v=0  1  1 E  1
Linear: -1.23923698142084E-007 cm-1/(Vm-1) -.7379921 Debye (.262%)
Quadratic: -1.15112688486556E-014 cm-1/(Vm-1)^2 (17.2%)
Two Level:  16.004875 cm-1  .00993999 cm-1 -1.24153225238959E-007 cm-1/(Vm-1)  -.739359  Debye (.209%)

The linear fit is clearly better than quadratic here, though a small amount of second order behavior is also suggested by the slightly better fit to a two level model. For the linear and two level cases C can be considered as an effective (state dependent dipole moment); the textbook formula for the linear Stark shift in a symmetric top is MK/(J(J+1)) · μF giving an effective dipole of MK/(J(J+1)) · μ = 1.1/(1.2) · 1.45 = 0.725 Debye, with the 0.738 value resulting from higher order effects.

The "Summary" button prints out a summary of the fits for each level:

   M  Sym   #    g Population Name J K (kl) Sym M         Energy Linear         Dipole     Err  Quadratic       Err  Two Level Delta     C              Dipole2    Err
  -1    -   1    1 .067584122 v=0  1  1 E -1            16.0000 1.1947733e-7   .71151304 .304% 1.11179096e-14 18.5%
  -1    -   2    1 .038010557 v=0  1  0 A2 -1           20.0000 -2.96324193e-9 -.0176467 15.8% -2.963163e-16  .008%
   0    -   1    1 .675473722 v=0  0  0 A1  0           -0.0000 -9.85124183e-9 -.0586663 15.8% -9.8490399e-16 .071%
   0    -   2    1 .067584185 v=0  1  1 E  0            16.0000 -2.96324193e-9 -.0176467 15.8% -2.963163e-16  .008%
   0    -   3    1 .038010557 v=0  1  0 A2  0           20.0000 5.898223888e-9 .03512518 15.8% 5.89597675e-16 .121%
   1    -   1    1 .067584247 v=0  1  1 E  1            16.0000 -1.23924255e-7 -.7379954 .276% -1.1562606e-14 17.8% 16.004337 .00918344 -1.24055462e-7 -.7387768 .244%
   1    -   2    1 .038010557 v=0  1  0 A2  1           20.0000 -2.96324193e-9 -.0176467 15.8% -2.963163e-16  .008%
See The pure rotational spectrum of the ground state of NH3 and the Stark effect for an example that is between first and second order.


Detailed Notes

This section contains notes on some more specific procedures and calculations
  • Line List Input File Format
  • Widths and Lifetime Effects
  • Determining Colours and J ranges
  • How PGOPHER works
  • Transition Moments and Line Strengths
  • Intensity Formulae
  • Emission Spectra
  • Raman Spectra
  • J ranges and Partition Functions
  • Tracing Plate Spectra
  • Binary Line List Format
  • Using HTITRAN Files
  • Using ExoMol Files


Line List Input File Format

PGOPHER accepts a wide variety of formats for files used for line position or intensity fitting, or for plots of energy levels derived from experiment. The files are text files, and can include directives to control defaults. The file name is not normally important, though .lin or .obs is conventionally used for these files. (.cat, .mrg and .par have a special interpretation - see HITRAN, JPL catalog and SPFIT below). The simplest way of generating line lists for fitting from spectra is as described in line position fitting. If you want to use published line lists the various alternative formats may be easier to use.

Standard PGOPHER format (.lin, .obs)

The standard format is a line for each observation, interspersed by directives that set defaults, allow other files to be included and other functions - see below for a full list. In principle, each line consists of a 11 items separated by spaces or tabs and a comment but, depending on the Mixture and other settings many of these are optional, and the comment can also be used to specify the transition. The text generated in the Line List Window or from File, Export, Line List is compatible with this format, though the "Std Dev" column will need setting as the default in calculated linelists is "-" (excluding the line from the fit). The items are:
Molecule The Molecule; can be omitted if there is only one molecule or the molecule directive is used.
M' | The upper state Manifold; can be omitted if there is only one or two manifolds or the uppermanifold directive is used.
J' Upper state total angular momentum (i.e. normally J, but F if hyperfine structure is included).
S' Symmetry of upper state. This can be a symmetry number (starting from 0) or name. The symmetry names understood depend on the molecule type, but include "+", "-" "e" and "f" for linear molecules. -1 in this field indicates that the symmetry should be worked out from the text field at the end of the line.
#' Eigenvalue number for upper state. This indicates the rank of the upper energy level in the list levels of the same J and symmetry for the upper manifold (numbered staring from 1). 0 in this field indicates the number should be worked out from the text field at the end of the line.
M'' The lower state Manifold; can be omitted if there is only one or two manifolds or the lowermanifold directive is used. Note that this is also allowed directly after the upper state manifold.
J'' | Lower state total angular momentum (i.e. normally J', but F" if hyperfine structure is included).
S'' | Symmetry of lower state. This can be a symmetry number (starting from 0) or name. The symmetry names understood depend on the molecule type, but include "+", "-" "e" and "f" for linear molecules. -1 in this field indicates that the symmetry should be worked out from the text field at the end of the line.
#'' Eigenvalue number for lower state. This indicates the rank of the lower energy level in the list levels of the same J and symmetry for the lower manifold (numbered staring from 1). 0 in this field indicates the number should be worked out from the text field at the end of the line.
Frequency The frequency of the transition or (for line intensity fits) the intensity. The units are taken as set by PlotUnits of the Mixture, unless the units directive is used.
Std Dev
 The relative standard deviation of the observation, used to derive the weight of the observation in the least squares fit. Only the relative values are important, and typically 1 will be used for the most accurate values, with larger values (perhaps 3 or 10) for blended or weak transitions. A negative or zero value or a single "-" character will cause the line to be ignored.
(rest of line)
 If the eigenvalue numbers given above are >= 1 and the symmetries are not -1, then the rest of line is taken as a comment. If either or both eigenvalue numbers are 0, or symmetries are < 0 then the comment should contain a string of the form:
: upper state quantum numbers - lower state quantum numbers
where the quantum numbers are in the format output by PGOPHER in line listings, and thus depend on the molecule type. The eigenvalue number and or symmetry will be worked out from this field.

Energy Level Fits

To force a fit to energy levels, rather than transitions, replace J S and # for the unwanted state with "-" and leave the manifold field blank. (This style of fit can also be selected for a complete file from the Log Window.)

Samples

The following are all equivalent ways of specifying the same transition, showing how fields can be omitted. The default linear molecule has been taken for this example.

All fields given:
LinearMolecule Excited  6  1  1 Ground  4  0  1    1006.0000 1.0   .005      0 :    R( 4) : Excited v=1  6 e - Ground v=0  4 e
With only the essential fields:
                        6  1  1         4  0  1    1006.0000 1.0
The spaces are not required either:
 6 1 1 4 0 1 1006.0000 1.0
Alternatively, the eigenvalue numbers can be set to 0, in which case the "Excited v=1 6 e - Ground v=0 4 e" string will be used to work out the quantum numbers.

LinearMolecule Excited  6  1  0 Ground  4  0  0    1006.0000 1.0   .005      0 :    R( 4) : Excited v=1  6 e - Ground v=0  4 e

In addition, the symmetries can be set to -1, in which case the "Excited v=1 6 e - Ground v=0 4 e" string will also be used to work out the quantum numbers:

LinearMolecule Excited  6 -1  0 Ground  4 -1  0    1006.0000 1.0   .005      0 :    R( 4) : Excited v=1  6 e - Ground v=0  4 e

Parameters as input values

To constrain fits, it may be helpful to include expected parameter values as "observed" values in fits. To do this the basic format is:
Parameter <Molecule> <Manifold> <State> <Parameter> = <Value> <Std Dev>
The <Molecule>, <Manifold> and <Std Dev> entries are optional, similar to normal line lists, though an appropriate value for the (relative) standard deviation is normally essential in this case. Also, if any of the <Molecule>, <Manifold> or <State> names are the same, both names must be given.

A general expression involving parameters can also be given; the format is

Expression <expression> = <Value> <Std Dev>

The <Std Dev> entry is optional; the = sign with a space either size marks the end of the expression. The expression can involve any parameter; these are typically specified using

<object>.<parameter>

though <object> can be omitted for the parameters in the default state or manifold, and additional <object>. prefixes can be added to avoid ambiguity.

Constraints

Constraints on parameters be expressed symbolically, with a format in general
Constrain <parameter> := <expression>
where <expression> is an arbitrary expression in terms of other <parameter> names. In the simplest cases the parameters are specified using
<object>.<parameter>
though in most cases the names of the containing <object>'s will also be required on front to avoid ambiguity. To find the name of a parameter, right click on it in the constants window and select "Show Full Name". The name is also copied to the clipboard.

A typical example might look like

Constrain A.v=0.B := X.v=0.B
which would force two B values to be the same. The constraints are applied when the constraints are first read, and then at every appropriate stage of the fitting process. Note that if the parameter name contains special characters (< or >, for example) then quotes might be needed round the parameter name, as for example:
Constrain NH3.NH3.s.<0+|J+-^6|0+>.Value := "NH3.NH3.s.<0-|J+-^6|0->.Value"
Additional dummy parameters can be added using a "Variables" object.

Directives valid in any file

The following directives can be put on any line in a file; the line should start with the directive. The effect will normally apply to all lines after the directive, and to any files included after the directive.
stop (or end or -1)
 Stop reading from current file
/ or # or ;
 Lines starting with / # or ; are treated as comments and ignored; # and ; can also be used elsewhere in a line.
include filename
 Read contents of filename (and then continue reading current file). A blank filename causes the current state to be saved, but reading continues normally. A stop or end will causes the state to be reset, giving the effect of an included file within one file.
includeoldpgopher filename
 Include file in old PGOPHER format.
molecule molecule
 Set the default molecule to molecule. (If there is only one molecule in the mixture, the default will be initialized to this anyway.)
uppermanifold manifold
 Set the default upper manifold to manifold. For this to work a default molecule must be set. If there are only one or two manifolds present in the default molecule, this will be initialized to the state with Initial false or the higher energy manifold.
lowermanifold manifold | Set the default lower manifold to manifold. For this to work a default molecule must be set. If there are only one or two manifolds present in the default molecule, this will be initialized to the state with Initial true or the lower energy manifold.
upperstate name
 Set default upper state to name. In the standard format the eigenvalue number is taken as within the specified state only, and the state label is worked out and then used to find the eigenvalue number subsequently. For the alternative formats listed below it allows the state to be specified where there is more than one in a manifold.
lowerstate name
 Set default lower state to name. In the standard format the eigenvalue number is taken as within the specified state only, and the state label is worked out and then used to find the eigenvalue number subsequently. For the alternative formats listed below it allows the state to be specified where there is more than one in a manifold.
symmetry name
 Set default symmetry to name. This may be required for cases (such as symmetric tops) where two choose between two otherwise degenerate transitions when using branch format.
overridestddev value
or
overrideweight value
 Force the (relative) standard deviation of the following observations to value. Leave value blank to leave the standard deviations unchanged.
scalestddev value
or
scaleweights value
 Multiply the (relative) standard deviation of the following observations by value. Leave value blank to leave the (relative) standard deviations unchanged.
stddev% x
or
weight% x
 Set the (relative) standard deviation of the following observations to the observed value times x/100. Most useful for intensity fitting. Leave x blank to switch off this behaviour. Note that overridestddev and scalestddev are applied after this calculation.
takeall Include all lines, regardless of the sign of their standard deviation. Standard deviations of zero are forced to -1.
takeobs Include only lines with standard deviations > 0, the default.
frequencyoffset value
 Add value to the position of the following observations. Leave value blank to reset the offset to zero.
offsetfrequencyoffset value
 Add value to the frequency offset of the following observations. Leave value blank to reset the offset to zero.
frequencyscale value
 Multiply the position of the following observations by value. Leave blank to reset the scale to 1.
units units
 Set the units of the following observations. Unless this is set, the units are assumed to be the same as the PlotUnits of the Mixture. If it is set, the appropriate conversion will be performed.
efield value
bfield value
angle value
 Set the External Field for the following observations. Unless one or more of these are set, the fields are taken from the Simulation settings in the Mixture.
indexoffsets ...
 Offset the eigenvalue numbers of the following observations. See Adjusting Eigenvalue Numbers below.
upperindexoffsets ... As for indexoffsets, but applied to the upper state only.
lowerindexoffsets ... | As for indexoffsets, but applied to the lower state only.
select condition
 Add an additional condition to including observations in the fit. See Selecting Observations below.
removespins n
 Discard the n outermost spins from the calculations from the following observations. This works backwards down the list S, I1, I2, ..., so nuclear spins are discarded first. Omit n to revert to using all spins. Note that n adds to the current number of spins discarded.
colour name
 (or color name). Mark the following observations with colour name. Leave name blank to leave the colour unset. See Determining Colours and J ranges for the possible colours.
quantumnumberformat f
 Set the format for quantum numbers as follows:
f | Number read is | Number must be
2J | 2*quantum number | Integer
J | quantum number | Integer or half integer written as n/2 or n.5
J+1/2 | quantum number + ½ | Integer
J-1/2 | quantum number - ½ | Integer
The default is normally J, though can be set to 2J, with the DoubleQnos setting in Mixture.
regeneratelabels no|yes
 State labels displayed at end of line are calculated as they are fit, rather than using the strings read from the file.
nameoverride name
 Override displayed filename for following observations
pgopherversion version Set the PGOPHER version the line list file was created for. This allows for changes in the input format in later versions of the program. Currently it only affects asymmetric top line lists, where the definition of the numbers defining rovibronic symmetry changed between version 5.1 and 5.2 as described here. The version string is of the form 5.1 or 5.1.144.
branchrank rank
 Specify the type of the transition to assume when specifying branches. Leave rank blank for the default, (one photon) electric dipole transitions; specify rank = 0 for Raman or two photon transitions.
correlation value offset | Set the correlation coefficient between the previous observation and the observation at offset from it. If offset is omitted, it defaults to -1, which sets the correlation coefficient between the previous two observations.
linenumber n filename
 Set the effective line number and file name of the next line in the file. This is used internally, and may also be useful for files generated from other sources.

Observation types

The following directives change the type of the observations following the directive; see also CDlower and CDupper.
line | Following observations are line positions
intensity | Following observations are line intensities
Elower | Following observations are lower state energies
Eupper | Following observations are upper state energies

Combination Differences

Observations containing an upper or lower level in common can be combined into a single observation corresponding to the difference in energy between the two levels in the other state. Fitting in this way can be helpful if one of the states is perturbed or unassigned. The directives appropriate for this mode are listed below; see the section on combination difference fitting for how to use them.
CDlower
 Following observations are taken in pairs as lower state combination differences
CDupper Following observations are taken in pairs as upper state combination differences
CDstart
 Mark start of region to search for combination differences; requires matching AutoCDupper or AutoCDlower directive.
AutoCDupper flag
 Convert preceding observations to upper state combination differences; starts at previous combination difference directive, or start of file if none present. The optional flag controls the handling of observations that are not part of an upper state combination difference:
  • ignore - discard the observations
  • force (default) - report an error for each observation
  • include - include the observation in the fit as is.
AutoCDlower flag
 As for AutoCDupper, but convert to lower state combination differences.

Adjusting Eigenvalue Numbers

One of the key fields in identifying states is the eigenvalue number, where all the energy levels of a given total angular momentum and symmetry are ranked in order of increasing energy starting from 1. While this uniquely identifies energy levels, it will change if states are added to a manifold, and the desired state can also change as constants are changed. One approach to both these problems is to use the state description to work out the eigenvalue number for each case - see the discussion under (rest of line) at the end of the "Standard PGOPHER format" above for more on this. An alternative method, which is particularly useful when adding or subtracting states from a manifold, is to shift the eigenvalue numbers with the indexoffsets, upperindexoffsets and lowerindexoffsets directives. The basic forms are
indexoffsets | Clear any offsets.
indexoffsets search | Use the transition comment at the end of the line to determine the eigenvalue number.
indexoffsets searchall | Use the transition comment at the end of the line to determine the eigenvalue number and symmetry.
indexoffsets n1 n2 n3 .... | Add to the eigenvalue number, as described below.
The last line needs additional explanation. If a single number is given, then that number is added to all following eigenvalue numbers. This is normally too simple, as the number of states often depends on the symmetry. (For example, a 1Σ+ state only has e parity levels.) To get round this problem, specify a separate number for each symmetry as in:
indexoffsets 3 4
which would add 3 to levels with symmetry number 0 and 4 to levels with symmetry number 1. J adjusted symmetries are used (if JAdjustSym is set in Mixture), so for linear molecules this corresponds to e and f levels. As a further complication, the required offset can depend on J (a 2Π state has only one J = ½ state but two levels of every other J). For this reason the sets of numbers, one for each symmetry, can be repeated as often as required. The first set are for J = 0 or ½, the second set for J = 1 or 3/2, and so on. The last set is taken for all higher J. For example, to take account of inserting a 2Π state below the state of interest the line:
indexoffsets 1 1 2 2
would be appropriate, as a linear molecule has only two symmetries.

Selecting Observations

To include just some observations from a line list, add a directive such as:
select J' < 20
which will only take observations after the directive with upper state J < 20. Note that, in contrast to most other areas, quantum numbers are never doubled. (This is because the expression can be very general and involve several quantities so it is not possible to distinguish quantum numbers from other values.) Multiple select directives can be given, and all must be satisfied. To clear all the directives use a select with no expression. The variables currently understood are:
Frequency
 Frequency of observation (or intensity for intensity fits)
StdDev
or
Weight 		The (relative) standard deviation of the observation
J' J" Upper and lower state total angular momentum. (Note that the quantum numbers are never doubled)
Sym' Sym"
 Upper and lower state symmetry number
Index', Index"
 Upper and lower state index
E' E" Upper and lower state energy. Note this requires a calculation to be performed as each line is read, and the selection could potentially change on each fit cycle.
Intensity
 The transition intensity. As for state energies, this requires a calculation to be performed as each line is read, and the selection could potentially change on each fit cycle.

Alternative Formats

While the standard format above is the most general, and works for all cases, it can be awkward to work with, particularly for line listings from taken from other sources, rather than constructed by interactive assignment. There are various simpler possibilities available, which work in many but not all cases:

Simple Format

This simplified format is introduced by a NQN or nQuantumNumbers directive, that specifies the number of quantum numbers given in each state. Each line then contains the upper state quantum numbers, then the lower state quantum numbers, followed by the observation and relative standard deviation. For example, for an asymmetric top:
NQN 3
2 0 2  1 1 1   187.43463 1.0
1 1 0  1 0 1 21223.35986 1.0
2 1 1  2 0 2 22268.0897  1.0
The layout is free format, in that the numbers can be separated by any number of spaces or tabs. All text after the relative standard deviation is treated as a comment. The quantum numbers are:
  • J' Ka' Kc' J" Ka" Kc" for asymmetric tops (as here)
  • J' K' J" K" for symmetric tops
  • J' J" for linear molecules (See below for other possibilities)

Where a state in either manifold has a non zero spin, replace J by N and add J on the end; for hyperfine structure add F1...F on the end, so an open shell asymmetric top with two nuclei would be N' Ka' Kc' J' F1' F' J" Ka" Kc" F1" F. This format is not appropriate for vibrational structure type calculations, and some of the more complicated cases for other calculation types must be handled using the full standard format. Where multiple states or manifolds are present, use uppermanifold, lowermanifold, upperstate or lowerstate directives (see above) as to indicate the required state. Use NQN 0 to revert to the standard format.

Fitting to energy levels is also possible by setting all the quantum numbers for the unwanted state to "-"

For linear molecules there are two extensions to this format, flagged by the presence of a letter in the second (or third) quantum number:

To specify J and the component (F) number:
J' Fn'e J" Fn"f specifies Fn' e parity in the upper state and Fn" f parity in the lower state. The second item must be given without spaces, so an example might be:
10 F1e 10 F2f
The e and f can be omitted in this case if there is only one one parity present.
To specify J and Ω:
J' Ω'e J" Ω"f specifies Ω' e parity in the upper state and Ω" f parity in the lower state. The second item must be given without spaces, so an example might be:
10 0e 10 1f
The e and f can't be omitted in this format.

Branch Format

A "branch" style label for a transition can also be used, by replacing all the upper and lower state quantum numbers with a branch label such as P(2). The format should match that output by PGOPHER in the Line List Window for the given molecule type. The branch label should not contain spaces. For example, a simple linear molecule input file could look like:

    P(2)    996.0000 1.0
    P(1)    998.0000 1.0
    R(0)   1002.0000 1.0
    R(1)   1004.0000 1.0
    R(2)   1006.0000 1.0

If the transition is a Raman transition, a multiphoton transition of even rank or a magnetic dipole transition add a branchrank 0 directive before the first line.

Branch Table

A branch table can also be given, in the compact form often found in papers. This is started by the branchtable directive, and a typical sample is (this is for a 3Σ - 3Σ transition in SO):
QuantumNumberFormat J

BranchTable P11 P22     P33     R11     R22     R33
8       -       -       -       -       -       -
9       -       47126.7 47123.0 -       -       -
10      -       47120.9 47116.3 -       -       -
11      47123.0 47114.2 47108.9 -       -       47131.0
12      47116.3 47106.1 47101.0 -       47128.7 47124.9
13      47108.9 47099.5 47092.6 47131.0 47123.0 47118.0
Notes:
  • The branchtable directive is followed by a list of branches, with the (J) section omitted.
  • Each following line has the lower state total angular momentum as the first item on the line.
  • The observed frequencies (or intensities for an intensity fit) follow on the same line, with "-" used to indicate excluded values.
  • The number of observations on each line must be less than or equal to the number of branches following the branchtable directive.
  • All the observations will be taken to have (relative) standard deviation 1, unless overridden with overridestddev or scalestddev.
  • To end the table, give a branchtable directive with no branches following

HITRAN line lists (.par files)

Line lists extracted from the HITRAN database, or line listings with the same format, can be used as input files for fitting. Both the older 100 character line and the newer 160 character line formats can be read. The quantum number format can normally be determined automatically, but a globalclass n directive can be used to specify the molecule type if necessary. The number corresponds to the entries in Table 3 of the "The HITRAN 2004 molecular spectroscopic database", J. Quant. Spectrosc. Radiat. Transfer 96, 139 (2005).To trigger this mode the file extension must be .par. upperstate/lowerstate and related directives can be used to specify the states involved, if there is more than one possibility, or alternatively the states can be named following the global class quantum numbers. The names required are the "global" quanta for the state, with the fields separated by "_". Note that HITRAN line lists can also by used as overlays or as an external line list for simulations. See Using HTITRAN Files for more information.

ExoMol line lists (.states, .trans files)

Files from the ExoMol project can also be used as input to the fitting process; see Using ExoMol Files.

JPL Line Catalog Files (.cat, .mrg)

PGOPHER can read many JPL line catalog files as produced by Herb Pickett's CALPGM/SPCAT/SPFIT/DPFIT/DPCAT programs, and the .lin files used as input to the SPFIT and DPFIT programs. For details see H.M. Pickett, R.L.Poynter, E.A. Cohen, M.L. Delitsky, J.C. Pearson and H.S.P. Muller J. Quant. Spectrosc. Radiat. Transfer 60, 883 (1998) and http://spec.jpl.nasa.gov/. Note that many parameter (.par) files can be imported by PGOPHER; see File, Import.

To read the catalog file format an extension of .cat or .mrg is required. To read the .lin line lists as input to SPFIT and DPFIT special action is required, as PGOPHER also uses the .lin extension. Either add a line containing:
IncludeSPFIT
at the start of the file or, in a separate .lin file use a line containing:
IncludeSPFIT filename
This format requires the quantum numbers in fixed 3 character columns at the start of each line. The number of quantum numbers is autodetected by counting the number of non blank columns; if zeros have been used for unused quantum numbers then -(half the number of quantum numbers) must be specified in the directive, as for example:
IncludeSPFIT filename -3
for a simple asymmetric top.

Alternatively free format can be used, in which case half the number of quantum numbers must be specified as a positive number as part of the IncludeSPFIT directive:
IncludeSPFIT * 3
at the start of the file or:
IncludeSPFIT filename 3
to include the contents of another file.

Not every format is currently implemented. For the more complicated systems directives such as upperstate may be required to specify one or more of the states involved. A few specific directives apply to this type of file:

takeall | Include both experimental and calculated lines.
takeobs | Include only experimental lines.
takecalc | Include only calculated lines.
mapupper n1 m.s | Provide a mapping of state numbers from the .par file to PGOPHER states. This is required for more complicated cases, typically involving multiple states. Degenerate states in symmetric tops also require this, as Pickett's programs treat this type state as pairs, while PGOPHER treats then as a single state. n1 is the number in the .par file. m.s refer to the manifold (m) and state (s) numbers in PGOPHER, numbered starting from zero. s values >= 1000 indicate an alternate kl assignment. The m. can be omitted, in which case the manifold specified by uppermanifold is used. Repeat the directive for every state number that requires changing. n2 values are taken mod 1000;
maplower n1 m.s | As for mapupper, but for the lower state.
DoubleABlevels TrueOrFalse | When fitting intensities, divide input intensity by two where the transition is one of a normally degenerate pair of levels, such as A1 and A2 in non-degenerate vibronic states in C3v. PGOPHER always treats such transitions as separate, but these sometimes appear merged into a single line in .par and .mrg files.


Widths and Lifetime Effects

Note that while PGOPHER can model complex state dependent widths and related effects, if all that is required is a constant width for all lines, (whether instrumental or molecular) then the Gaussian (Doppler and instrumental effects) and Lorentzian (for lifetime effects) in the main window should be used. (If both of these are set a Voigt profile is used.) These are added to any additional widths set as described below. Note also:
  • A state dependent width can make the calculation slower.
  • The number of points the spectrum is calculated (nDF) at can have a significant effect on the appearance; increase this parameter until the spectrum does not change. This is because the lineshape is only calculated on the grid points implied by nDF, and misleading results can be obtained if the grid spacing is comparable to the linewidth. In particular, if the width of a peak is less than 3*(Fmax-Fmin)/nDF, then the peak is plotted as a stick, rather than a full lineshape. This can give significant artifacts in the appearance of the spectrum.

State Dependent Widths

Each state has a Width parameter which determines the natural linewidth for that state. Currently symmetric and asymmetric tops have additional parameters (wK, wKa, wKb ...) which can be used to give a rotational state dependence to the widths; more may be added in future but for the moment a rotational state dependent width must be modeled for other systems by mixing the state of interest with a state with a non zero Width; PGOPHER will evaluate:
Σ ci2wi
for each state where ci is the coefficient of the wavefunction for each basis state i and wi is the width associated with that (basis) state. The width associated with a transition is then calculated by adding the width of the upper and lower states in the transition.

The LifeModel setting

The use made of the calculated width associated with a transition depends on the LifeModel setting at the Simulation level; for some of these an additional parameter is used, RefWidth (also at the Simulation level):

lmNone | Simply ignore the calculated width from the simulation.
lmWidth | Include width in simulation, but do not scale the peak area. (The normalized lineshape used means that the peak height will scale as 1/Width)
lmProductWidth | Include width in simulation, and scale peak area as width/(width + RefWidth). This models the case where the result of a predissociation or other process is being detected, with a rate proportional to the given width, so that no width implies zero rate so no signal. In this case RefWidth is a measure of the strength of any competing process. As a special case, A RefWidth of 0 gives a peak area proportional to width.
lmProduct | Discard width from simulation but scale peak area as width/(width + RefWidth) or just width if RefWidth=0. This will give results the same as lmProductWidth if the molecular widths are rather smaller than the instrumental resolution, but can be rather faster to calculate.
lmParentWidth | Include width in simulation, and scale peak area as 1/(width + RefWidth). This models the case where predissociation or other process results in loss of the species being detected, so the larger the width (=rate) the smaller the signal. In this case RefWidth is the linewidth in the absence of the loss process.
lmParent | Discard width from simulation but scale peak area as 1/(width + RefWidth). This will give results the same as lmParentWidth if the molecular widths are rather smaller than the instrumental resolution, but can be rather faster to calculate.
lmGateWidth | Include width in simulation, and scale peak area as exp(-width * RefWidth). This models detecting fluorescence excited by a short pulse, where the integration (=gate) time is less than the duration of the fluorescence. Only a fraction of the florescence is then detected from states with a long lifetime (and thus small width), so transitions involving these states appear relatively weakly. In this case RefWidth is proportional to the gate width.
lmGate | Discard width from simulation but scale peak area as exp(-width * RefWidth). This will give results the same as lmGateWidth if the molecular widths are rather smaller than the instrumental resolution, but can be rather faster to calculate.


Determining Colours and J ranges

Determining J ranges and Colours

J ranges

To determine the minimum and maximum J value (Jmin and Jmax) included in a simulation PGOPHER will look in the following locations in order and the first that is not negative is taken:

  1. Manifold
  2. Molecule
  3. Species
  4. For Jmin: Lowest possible J
  5. For Upper manifold: Lower state J +/- maximum change in J

Colour

To determine the colour used in plots when [image] (show parts) is selected, PGOPHER will look in the following locations and take the first one that is not set to "None":

  1. Transition Moment
  2. Lower State
  3. Lower Manifold
  4. Lower Molecule
  5. Species
  6. Upper State
  7. Upper Manifold
  8. Upper Molecule
The valid colour names are shown below. Note that selecting "Hide" also stops the affected lines contributing to the overall spectrum.
None | Take colour from elsewhere
Hide | Do not show
Maroon |
Green |
Olive |
Navy |
Purple |
Teal |
Gray |
Brown |
Red |
Lime |
Orange |
Blue |
Fuchsia |
Aqua |
Black |
White |
nnnnn | Any RGB colour value


How PGOPHER works or, how to write your own version of PGOPHER.

To see how PGOPHER works, we will work through the calculations involved in one fairly simple example, but one that is complicated enough to show the full potential complexities. The example we pick here is the A2Σ+ ← X2Π transition in the OH radical. This is a strong transition in the UV, and is often visible in flames. We simulate here the origin band, v'=0 - v"=0. The required steps break down as follows:
  • Calculate the ground state energies and wavefunctions
  • Calculate the excited state energies and wavefunctions
  • Calculate the transitions between them

The excited state - A2Σ+

We start with the excited state, as this is simpler than the ground state in OH. The essential pattern of the calculation is shown with just three constants - the state origin (32402 cm-1), the rotational constant, B=16.96 cm-1 and the spin rotation constant, γ=0.2 cm-1. The most recent set of constants has many more constants, but these three will give the basic pattern of energy levels. The first step in calculating energy levels is to choose a basis set; for linear molecules PGOPHER uses a Hund's case (a) basis, in which the basis states have well defined values of Λ (here 0), electron spin S=½ and its projection Σ=±½ on the molecular axis. A Σ state would actually be considered classic Hund's case (b), but a Hund's case (a) basis will give identical results, provided the basis used is complete, which is always the case for PGOPHER. Given the choice of basis set, the next step is to work out the matrix elements. The formulae PGOPHER uses can be found by right clicking on a state and selecting "Matrix Elements", which gives the following results in this case:
Matrix Elements in A v=0

<J,Lambda=0,Omega=-0.5|H|J,Lambda=0,Omega=-0.5> =
+  Origin*1
+  B*((4*J*(J+)+1)/4)
+  gamma*(-1/2)

<J,Lambda=0,Omega=0.5|H|J,Lambda=0,Omega=0.5> =
+  Origin*1
+  B*((4*J*(J+1)+1)/4)
+  gamma*(-1/2)

<J,Lambda=0,Omega=-0.5|H|J,Lambda=0,Omega=0.5> =
+  B*((-sqrt(4*J*(J+1)+1))/2)
+  gamma*(sqrt(4*J*(J+1)+1)/4)

<J,Lambda=0,Omega=0.5|H|J,Lambda=0,Omega=-0.5> =
+  B*((-sqrt(4*J*(J+1)+1))/2)
+  gamma*(sqrt(4*J*(J+1)+1)/4)
Any matrix elements not listed should be taken as zero. PGOPHER uses a basic symbolic algebra system to work these out for printing, so the results look a little cumbersome. A little rearranging gives the following more compact form:
  • <J,Ω=±½|H|J,Ω=±½> = Origin + BJ(J+1) + B/4 - ½γ
  • <J,Ω=∓½|H|J,Ω=±½> = (½γ-B)Sqrt(J(J+1)+1/4)
The first is the diagonal matrix element, and contains the state origin and the basic BJ(J+1) rotational dependence. The second mixes the two states in the basis, and it is the presence of this term that means that the state is best described as case (b), rather than case (a).

The first step in calculating the energy levels using these matrix elements is to take symmetry adapted combinations. Then basis states used above do not have well defined parity, but taking plus and minus combinations does give states with specific parity:
|J ± Ω=½> = 1/sqrt(2){|J,Lambda=0,Omega=+0.5> ± |J,Lambda=0,Omega=-0.5>}
The 1/sqrt(2) ensures the resulting combination is normalised - all the basis states are set up to be normalised and orthogonal. There are two different ways of specifying the symmetry for linear molecules. The parity is the symmetry of the wavefunction with respect to inversion of (space fixed) co-ordinates; a properly constructed wavefunction will stay the same (+) or simply change sign (-). The parity of, say, the + combination above will alternate with J, so e and f notation is more normal; for the A state of OH the + combination has e parity always, but + for even J and - for odd J. Provided JAdjustSym is set at the molecule level, PGOPHER will display both of these, as above, and normally accept either on input. If false, e and f are not displayed. The matrix elements given above can be transformed to matrix elements between the symmetry adapted basis functions. PGOPHER will also display matrix elements between these symmetry adapted linear combinations (for linear molecules only at the moment). For the A state we obtain:
Symmetrized Matrix Elements in A v=0
<J,Lambda=0,Omega=0.5 + |H| + J,Lambda=0,Omega=0.5> =
   (4*Origin+(-2*B+gamma)*sqrt(4*J*(J+1)+1)+B*(4*J*(J+1)+1)-2*gamma)/4
<J,Lambda=0,Omega=0.5 - |H| - J,Lambda=0,Omega=0.5> =
   (4*Origin+(2*B-gamma)*sqrt(4*J*(J+1)+1)+B*(4*J*(J+1)+1)-2*gamma)/4
which a little rearranging gives the clearer form:
<J,Ω=±½|H|J,Ω=±½> = Origin + BJ(J+1) + B/4 - ½γ ± (B-½γ)Sqrt(J(J+1)+1/4)
Note that there are no matrix elements between the + and - combinations, as required by symmetry (which is of course why the combinations are used). We can compare the results of this formula with values worked out by PGOPHER - try "View, States", and ensure that the A state is selected in the box in the top line. If, say J = 4.5 and e parity is selected the display will look something like this:
Hamiltonian Matrix for  A, J = 4.5, Symmetry = e (+)
                 |A v=0 4.5 + 0.5>
<A v=0 4.5 + 0.5| 32741.6
(This output is actually taken from the log window with the print level on the right set to "Matrices"). Note the general form of the state specification with the key given in the states window: |Name J +- Omega>. Name is the manifold and state name (here A and v=0), J is as above, +/- indicates whether the + or - combination is taken, and Omega is actually |Ω| here. (Λ is omitted in the label as it is always taken as positive in the symmetrised wavefunctions, and is thus implied by the state name.)

In this case there is only one basis symmetrised basis state for any given J and symmetry, so the wavefunctions will simply be equal to one of the basis states and the energy will be equal to one of the matrix elements above. The states window will show the resulting energy levels and wavefunctions; for J = 4.5 e parity we have:

Eigenvalues for A, J = 4.5, Symmetry = e (+)
                                  |A v=0 4.5 + 0.5>
  1  A v=0 4.5  4 F1e    32741.600         1.000000
This should be read as the state name on the left has energy 32741.6 cm-1 and the overall wavefunction is equal to the (symmetrised) basis sate given. The state name key is given in the states window as Name J N Fn p. The "Name" is the manifold and state name as before, but now an additional quantum number, N, is given (here 4). (The vector J is the vector sum of N and S, so in this case the quantum number J = N ± ½.) Also given is the F number, here F1 or F2, and alternative way of specifying the spin orientation, and p indicates the parity (here e). For linear molecules, settings at the molecule level can be used to select the quantum numbers displayed - see "ShowJ", "ShowOmega", "ShowN", "ShowFNumber" and "Showef". By default these are all set on apart from "ShowOmega".

The ground state - X2Π

The ground state is more complicated, as the orbital angular momentum, Λ is now not zero, so a full matrix diagonalisation is required. To obtain the full spitting pattern we must also consider lambda doubling. The required constants are the spin-orbit coupling constant, A = -13.21 cm-1, the rotational constant, B = 18.55 cm-1, two lambda doubling constants, p = 0.235 cm-1 and q = -0.0391 cm-1. The Hund's case (a) basis now includes two possible values of Λ (=±1) in addition to the electron spin S=½ and its projection Σ=±½ as for the excited states. Given two possible values for each of Λ and Σ there are four basis states. The matrix elements are:

Matrix Elements in X v=0

<J,Lambda=-1,Omega=-1.5|H|J,Lambda=-1,Omega=-1.5> =
+  B*((4*J+4*J^2-7)/4)
+  A*(1/2)

<J,Lambda=-1,Omega=-1.5|H|J,Lambda=-1,Omega=-0.5> =
   B*((-sqrt(4*J+4*J^2-3))/2)

<J,Lambda=-1,Omega=-0.5|H|J,Lambda=-1,Omega=-1.5> =
   B*((-sqrt(4*J+4*J^2-3))/2)

<J,Lambda=-1,Omega=-0.5|H|J,Lambda=-1,Omega=-0.5> =
+  B*((4*J+4*J^2+1)/4)
+  A*(-1/2)

<J,Lambda=1,Omega=0.5|H|J,Lambda=1,Omega=0.5> =
+  B*((4*J+4*J^2+1)/4)
+  A*(-1/2)

<J,Lambda=1,Omega=0.5|H|J,Lambda=1,Omega=1.5> =
   B*((-sqrt(4*J+4*J^2-3))/2)

<J,Lambda=1,Omega=1.5|H|J,Lambda=1,Omega=0.5> =
   B*((-sqrt(4*J+4*J^2-3))/2)

<J,Lambda=1,Omega=1.5|H|J,Lambda=1,Omega=1.5> =
+  B*((4*J+4*J^2-7)/4)
+  A*(1/2)

<J,Lambda=-1,Omega=-0.5|H|J,Lambda=1,Omega=0.5> =
+  p*((-sqrt(4*J*(J+1)+1))/4)
+  q*((-sqrt(4*J*(J+1)+1))/2)

<J,Lambda=1,Omega=0.5|H|J,Lambda=-1,Omega=-0.5> =
+  p*((-sqrt(4*J*(J+1)+1))/4)
+  q*((-sqrt(4*J*(J+1)+1))/2)

<J,Lambda=-1,Omega=-1.5|H|J,Lambda=1,Omega=0.5> =
   q*(sqrt((4*J*(J+1)-3)*(4*J*(J+1)+1))/8)

<J,Lambda=-1,Omega=-0.5|H|J,Lambda=1,Omega=1.5> =
   q*(sqrt((4*J*(J+1)-3)*(4*J*(J+1)+1))/8)

<J,Lambda=1,Omega=0.5|H|J,Lambda=-1,Omega=-1.5> =
   q*(sqrt((4*J*(J+1)-3)*(4*J*(J+1)+1))/8)

<J,Lambda=1,Omega=1.5|H|J,Lambda=-1,Omega=-0.5> =
   q*(sqrt((4*J*(J+1)-3)*(4*J*(J+1)+1))/8)

Note that Σ = Ω - Λ, so is not specified separately in the basis states. As before, we can simplify the matrices by taking symmetry adapted combinations.

Symmetrized Matrix Elements in X v=0
<J,Lambda=1,Omega=1.5 + |H| + J,Lambda=1,Omega=1.5> =
   (B*(4*J*(J+1)-7)+2*A)/4
<J,Lambda=1,Omega=1.5 - |H| - J,Lambda=1,Omega=1.5> =
   (B*(4*J*(J+1)-7)+2*A)/4
<J,Lambda=1,Omega=1.5 + |H| + J,Lambda=1,Omega=0.5> =
   (-4*B*sqrt(4*J*(J+1)-3)+q*sqrt((4*J*(J+1)-3)*(4*J*(J+1)+1)))/8
<J,Lambda=1,Omega=1.5 - |H| - J,Lambda=1,Omega=0.5> =
   (-4*B*sqrt(4*J*(J+1)-3)-q*sqrt((4*J*(J+1)-3)*(4*J*(J+1)+1)))/8
<J,Lambda=1,Omega=0.5 + |H| + J,Lambda=1,Omega=1.5> =
   (-4*B*sqrt(4*J*(J+1)-3)+q*sqrt((4*J*(J+1)-3)*(4*J*(J+1)+1)))/8
<J,Lambda=1,Omega=0.5 - |H| - J,Lambda=1,Omega=1.5> =
   (-4*B*sqrt(4*J*(J+1)-3)-q*sqrt((4*J*(J+1)-3)*(4*J*(J+1)+1)))/8
<J,Lambda=1,Omega=0.5 + |H| + J,Lambda=1,Omega=0.5> =
   (B*(4*J*(J+1)+1)-2*A+(-p-2*q)*sqrt(4*J*(J+1)+1))/4
<J,Lambda=1,Omega=0.5 - |H| - J,Lambda=1,Omega=0.5> =
   (B*(4*J*(J+1)+1)-2*A+(p+2*q)*sqrt(4*J*(J+1)+1))/4
which can be rearranged to give the more compact form:
<J,Ω=3/2,±|H|J,Ω=3/2,±>
        = A/2 + BJ(J+1) + 7B/4
<J,Ω=1/2,±|H|J,Ω=1/2,±> = -A/2
        + BJ(J+1) + B/4 - ±½(p+2q)(J+1/2)
<J,Ω=3/2,±|H|J,Ω=1/2,±> = -B(J(J+1)-¾)½
        ± ½q{(J(J+1)-¾)(J(J+1)+¼)}½
The symmetry adapted combinations mean that the four basis states split into two pairs of states for any given J, one for each parity. A sample Hamiltonian matrix for J = 4.5, f (-) parity shows a non zero matriox elements mixing the Ω=1/2 and Ω=3/2 states:
Hamiltonian Matrix for  X, J = 4.5, Symmetry = f (-)
                 |X v=0 4.5 - 1.5>|X v=0 4.5 - 0.5>
<X v=0 4.5 - 1.5| 357.045          -90.397194212542
<X v=0 4.5 - 0.5| -90.397194212542 533.747
The resulting energy levels are thus mixtures of these two states:
Eigenvalues for X, J = 4.5, Symmetry = f (-)
                                  |X v=0 4.5 - 1.5>|X v=0 4.5 - 0.5>
  1  X v=0 4.5  4 F1f      318.994        -0.921674        -0.387965
  2  X v=0 4.5  5 F2f      571.798        -0.387965         0.921674
This should be rad\as the lowest state, labelled 1, has energy 318.994 and is mainly Ω=3/2 - the coefficient in the wavefunction is -0.92. The fact that it is not 1 reflects partial Hund's case (b) character; for higher values of J the matrix elements mixing the two values of Ω increase, and the magnitudes of the coefficients become more nearly equal. In the case (b) limit at high J the coefficients are ±1/2½. At the lowest J=½ the Ω=3/2 state is not present, so the matrix is 1x1.

Transitions

Given the upper and lower energy levels and wavefunctions the transition frequencies and intensities can now be calculated. The transition frequency is straightforward, just the difference between the energies calculated above. The intensity is more involved. The first step is the transition dipole moments between the basis states; PGOPHER will print these if you right click on the transition moment (<v=0|T(1)|v=0>) and select "Matrix Elements":
Reduced Matrix Elements of <v=0|T(1)|v=0>
<J-1,Lambda=-1,Omega=-1.5|T(1)|J,Lambda=0,Omega=-0.5> = sqrt(((2*J-1)*(2*J-3))/(2*J))/2
<J,Lambda=-1,Omega=-1.5|T(1)|J,Lambda=0,Omega=-0.5> = ((2*J+1)*sqrt(((2*J-1)*(2*J+3))/(2*J*(2*J+1)*(J+1))))/2
<J+1,Lambda=-1,Omega=-1.5|T(1)|J,Lambda=0,Omega=-0.5> = sqrt(((2*J+3)*(2*J+5))/(2*(J+1)))/2
<J-1,Lambda=-1,Omega=-0.5|T(1)|J,Lambda=0,Omega=0.5> = sqrt(((2*J-1)*(2*J+1))/(2*J))/2
<J,Lambda=-1,Omega=-0.5|T(1)|J,Lambda=0,Omega=0.5> = (2*J+1)^2/(2*sqrt(2*J*(2*J+1)*(J+1)))
<J+1,Lambda=-1,Omega=-0.5|T(1)|J,Lambda=0,Omega=0.5> = sqrt(((2*J+1)*(2*J+3))/(2*(J+1)))/2
<J-1,Lambda=1,Omega=0.5|T(1)|J,Lambda=0,Omega=-0.5> = sqrt(((2*J-1)*(2*J+1))/(2*J))/2
<J,Lambda=1,Omega=0.5|T(1)|J,Lambda=0,Omega=-0.5> = ((-2*J-1)*(2*J+1))/(2*sqrt(2*J*(2*J+1)*(J+1)))
<J+1,Lambda=1,Omega=0.5|T(1)|J,Lambda=0,Omega=-0.5> = sqrt(((2*J+1)*(2*J+3))/(2*(J+1)))/2
<J-1,Lambda=1,Omega=1.5|T(1)|J,Lambda=0,Omega=0.5> = sqrt(((2*J-1)*(2*J-3))/(2*J))/2
<J,Lambda=1,Omega=1.5|T(1)|J,Lambda=0,Omega=0.5> = ((-2*J-1)*sqrt(((2*J-1)*(2*J+3))/(2*J*(2*J+1)*(J+1))))/2
<J+1,Lambda=1,Omega=1.5|T(1)|J,Lambda=0,Omega=0.5> = sqrt(((2*J+3)*(2*J+5))/(2*(J+1)))/2
These are Reduced transition matrix elements as the M dependence has been taken out; see Transition Moments and Line Strengths for more details. In this case the formula used is:

<J', Ω'||T(1,±)||J,Ω> = (-1)J'-Ω'[(2J'+1)(2J+1)]½(J' 1 J -Ω' Ω'-Ω, Ω)

Note the dependence on the change in J and Ω. The transition matrix elements between the symmetry adapted states are also given:
Symmetrized Reduced Matrix Elements of <v=0|T(1)|v=0>
<J-1,Lambda=1,Omega=1.5 + |T(1)| + J,Lambda=0,Omega=0.5> = sqrt(((2*J-1)*(2*J-3))/(2*J))/2
<J-1,Lambda=1,Omega=1.5 - |T(1)| - J,Lambda=0,Omega=0.5> = sqrt(((2*J-1)*(2*J-3))/(2*J))/2
<J,Lambda=1,Omega=1.5 + |T(1)| - J,Lambda=0,Omega=0.5> = ((-2*J-1)*sqrt(((2*J-1)*(2*J+3))/(2*J*(2*J+1)*(J+1))))/2
<J,Lambda=1,Omega=1.5 - |T(1)| + J,Lambda=0,Omega=0.5> = ((-2*J-1)*sqrt(((2*J-1)*(2*J+3))/(2*J*(2*J+1)*(J+1))))/2
<J+1,Lambda=1,Omega=1.5 + |T(1)| + J,Lambda=0,Omega=0.5> = sqrt(((2*J+3)*(2*J+5))/(2*(J+1)))/2
<J+1,Lambda=1,Omega=1.5 - |T(1)| - J,Lambda=0,Omega=0.5> = sqrt(((2*J+3)*(2*J+5))/(2*(J+1)))/2
<J-1,Lambda=1,Omega=0.5 + |T(1)| + J,Lambda=0,Omega=0.5> = sqrt(((2*J-1)*(2*J+1))/(2*J))/2
<J-1,Lambda=1,Omega=0.5 - |T(1)| - J,Lambda=0,Omega=0.5> = (-sqrt(((2*J-1)*(2*J+1))/(2*J)))/2
<J,Lambda=1,Omega=0.5 + |T(1)| - J,Lambda=0,Omega=0.5> = (2*J+1)^2/(2*sqrt(2*J*(2*J+1)*(J+1)))
<J,Lambda=1,Omega=0.5 - |T(1)| + J,Lambda=0,Omega=0.5> = ((-2*J-1)*(2*J+1))/(2*sqrt(2*J*(2*J+1)*(J+1)))
<J+1,Lambda=1,Omega=0.5 + |T(1)| + J,Lambda=0,Omega=0.5> = sqrt(((2*J+1)*(2*J+3))/(2*(J+1)))/2
<J+1,Lambda=1,Omega=0.5 - |T(1)| - J,Lambda=0,Omega=0.5> = (-sqrt(((2*J+1)*(2*J+3))/(2*(J+1))))/2
As before,the + and - in the bra and ket indicate the sign of the combination. The selection rules are + to - if J does not change, and + to + and - to - if J changes. PGOPHER also gives the line strengths, which are essentially the squares of the matrix elements. In the absence of state mixing these are Honl-London factors, but in the current case there is significant mixing so they are not useful. (The calculation must be done with the unsquared matrix elements.)

The numerical values of the above can be displayed with "View, Transitions" and selecting the required upper and lower state J and parity, or looking in the log window with log window with the print level on the right set to "Matrices". The matrix elements between the two J= 4.5 states shown above are:
Rank 1 Transition Matrix for  <X, J = 4.5, Symmetry = f (-)| |A, J = 4.5, Symmetry = e (+)>
                 |A v=0 4.5 + 0.5>
<X v=0 4.5 - 1.5| -1.2712834523275
<X v=0 4.5 - 0.5| -1.2974982402692

These are between the symmetry adapted basis states, but as we saw above the X state energy levels are mixtures of these basis states, so the above matrix need to be transformed with these. The above matrix becomes:
Transformed Rank 1 Transition Matrix for  <X, J = 4.5, Symmetry = f (-)| |A, J = 4.5, Symmetry = e (+)>
                        |A v=0 4.5  4 F1e>
      <X v=0 4.5  4 F1f| 1.67509286382788
      <X v=0 4.5  5 F2f| -.702657240207629
Note the switch it notation - the first matrix was between basis states (labelled with J, phase and Ω) and the second is between the final energy levels, labelled with J, N and F1/F2. The squares of the numbers above are n ow proportional to transition intensity; to calculate absolute values the population and some units conversion must be done as described in Intensity Formulae. For the states above the following linelist entries are generated:
Mo M'   J' S'#'M"   J" S"#"    Position  I               Eupper        Elower S        A        Width
OH A  4.5  e 1 X  4.5  f 1      308.3372 .0068728    32741.6000      318.9937 2.805936 7.738899 0        : qQ1(4.5) : A v=0 4.5  4 F1e - X v=0 4.5  4 F1f
OH A  4.5  e 1 X  4.5  f 2      310.7604 .001025     32741.6000      571.7983 .4937272 1.394079 0        : pQ12(4.5) : A v=0 4.5  4 F1e - X v=0 4.5  5 F2f
Note #' labels the upper state eigenvalue number, here always 1 as a 1x1 matrix was used for the A state. #" is the lower state eigenvalue number, here 1 or 2 to indicate the which of the two states in the matrix was used.


Transition Matrix Elements and Line Strengths

A reasonably general way to write the term in the Hamiltonian arising from the interaction of a molecule with an external electric field is of the form:

This is written in spherical tensor form, with k being the rank of the tensors involved. p is a projection quantum number (|p| ≤ k), reflecting the projection of a tensor of rank k onto the space fixed z axis. Limiting the sum to k = 1 corresponds to the common electric dipole case, in which case T1(μ) is the electric dipole moment operator (in a space fixed frame) and T1(E) is the electric field. The Zeeman Hamiltonian is similar, with electric field (E) replaced by magnetic field (B) and the electric dipole being replaced by the magnetic dipole. More exotic transitions can have contributions from other ranks, including Raman (typically k = 0 and 2), quadrupole (k = 2) and multiphoton (k ≤ number of photons) transitions. For all these cases the matrix element of the above operator is required to calculate intensities of transitions and shifts in external fields, which can be written as:

…F implies various the spin angular momenta adding up to F, though these will be absent in the simplest cases with no spins where J = F. We use K to illustrate the handling of molecule fixed quantum numbers; for linear molecules read this as Ω instead of K. η is used to represent all the vibrational and electronic quantum numbers, apart from electronic spin; in PGOPHER this essentially corresponds to the identity of the state object.

The field, T k(E), is constant, so we only require the matrix elements of the dipole moment, T k(μ), the transition moment. The details of the matrix element will depend on the molecule, though F (the total angular momentum) and M (its projection along the space fixed z axis) will be present in all cases. The first step in evaluating this matrix element is the Wigner-Eckart theorem:

Assuming T k(μ) does not operate on the spin parts (though it could for the Zeeman Hamiltonian) we have the following for a single spin with F = F1 + I:

with a similar multiplying factor for the reduced matrix element introduced for each additional spin. To evaluate the last term on the right hand side we must transform the operator from space to body fixed components. This can be done using Wigner D matrices:

where q is used to label the projections of the tensor onto the body fixed axis system. The matrix element with all the spins removed is:

corresponds to the (transition) dipole moment in the body fixed axis system, and its numerical value corresponds directly to the value input when using a spherical transition moment. For calculating Stark and Zeeman shifts the above equations (adapted as required for additional quantum numbers) can be used directly to evaluate the required matrix elements for the overall Hamiltonian matrix.

Line Strengths and Spol

The intensity of a transition is proportional to the square of the transition moment worked out above. Two steps are required for this. Firstly, the above expresses the matrix element in terms of the basis states, but a transformation to the true states using the eigenvectors from the matrix diagonalization to find the energy levels is required. (This is molecule specific, so is not discussed further here, but complicates the situation in cases like asymmetric tops and linear molecules that are not a pure Hund's case (a), where the line strength will involve a linear combination of the transition moments above.) Secondly, in the absence of external fields, the different M levels are degenerate, so the sum over all possible transitions between the degenerate upper and lower state levels is required. This leads naturally to the definition of the line strength, S, in the literature:

The sum over p corresponds to the sum over possible polarisations of the light; under standard conditions, such as spontaneous fluorescence, the unweighted sum as above is appropriate. However, to allow PGOPHER to handle relative intensities between different ranks of transitions in multiphoton spectroscopy, a different line strength is introduced, Spol, defined as the sum over upper and lower state M for a single polarization, p = 0:

With this definition of Spol, the contributions from different ranks of transition moment tensor in a multiphoton spectrum can simply be added together, assuming linearly polarised light is used. (Different weighting factors must be used for circularly polarized light.)

The standard line strength for one photon transitions comes from summing over the 2k+1 components. These must be independent of polarization (as spontaneous fluorescence is unpolarized) which gives:

This also implies S = 3 Spol for single photon transitions.

For quantitative calculations of absorption cross-section this has units, specifically the square of the units used for the value in the transition moment object. The built in conversions (see below) assume Debye for electric dipole (transition) moments and Bohr or nuclear magneton for magnetic dipole moments.

Hönl-London factors

The line strengths, S, are also Hönl-London factors, with some caveats. Consider a simple parallel transition in a singlet state of a linear molecule. This has J = F, K = Λ and the above equations give:

For R branch transitions within a Σ state, J' = J + 1 and Λ = 0 so the above becomes:

For an R branch of a perpendicular Π – Σ band:

The Hönl-London factors are J + 1 and J + 2 respectively, so Hönl-London factors can be obtained by setting the transition moment value(s) to 1 provided there is only a single transition moment contributing to any given transition.To find the Hönl-London factor for a particular transition given this setup, set the IntensityUnits of the simulation to HonlLondon before simulating; in the linelist window obtained by right clicking on a transition the "Strength" column will then be the Hönl-London factor.

Caveats: The number displayed is simply 3 Spol as defined above, so is correct for single photon transitions, but care must be taken for multiphoton transitions. For ranks (k) other than one a scaling by (2k+1)/3 is in principle appropriate, but it depends on the polarization of the light. As discussed above, for linear polarization the Spol values must be added, rather than S, and a different rule is required for circularly polarized light. In addition, setting the transition moments to 1 may not be possible if more than one molecular transition moment contributes to a given transition, as the relative signs and magnitudes will affect the computed value for Spol. In particular quantum mechanical interference can take place so, for example, if two transition moments contribute, setting both to +1 will typically give a completely different spectrum to values of +1 and –1.

The Transitions Window

The transitions window displays the make up of Spol but can, for simpler cases, be switched to show S. The default is to display:

i.e. Spol1/2 - note the inclusion of the 2k+1 factor. If a only a single transition moment is involved in the selected transitions, or all the transition moments have the same rank, then a Hönl-London check box will be enabled and checking it will remove the 2k+1 factor.

The “original” transition matrix pane shows the above matrix element between the basis states contributing to the selected total angular momenta and symmetries. The “transformed” transition matrix comes by transforming the original matrix with the eigenvectors from the matrix diagonalization for the two manifolds involved. The transformation must be done before the matrix elements are squared to allow for interference between transition moments.

Note that this reduced matrix is not necessarily symmetric. This can be seen by considering:

Considering p = 0 specifically we expect:

and comparing equations implies

Reduced matrix elements off diagonal in total angular momentum by an odd integer will therefore change sign, depending on the order chosen. This is harmless for intensity calculations, and field calculations will include the full matrix element anyway.


Intensity Formulae

Given the line strengths S or Spol discussed in Transition Moments and Line Strengths, the IntensityUnits setting then controls how the spectrum is plotted. The simplest is HonlLondon, which simply plots the line strength calculated as 3Spol, ignoring population effects. (For simple allowed branches, the result is typically approximately proportional to J; see Transition Moments and Line Strengths for why 3Spol is chosen here.)

For spontaneous emission we have the Einstein A coefficient:

giving the rate of spontaneous emission from state A to state B as proportional to ν3S. Introducing the conversion factor to Debye (c–110–21) for the transition moments the fundamental constants combine to give a conversion factor of

for νAB in MHz. For νAB in cm–1 the conversion factor becomes

The treatment of the sum over degenerate (M) states requires some consideration. To obtain the total emission intensity on a particular transition, the sum over both the upper and lower degenerate states should be taken. This occurs when S is used for [image] , and is used in PGOPHER when IntensityUnits = EinsteinASum:

If the radiative rate of the upper state is required then only the sum over lower states is needed, so the line strength divided by the upper state degeneracy should be used. (The intensity must be independent of the upper state M quantum number by virtue of the symmetry of free space.) For this set IntensityUnits = EinsteinA:

Note that the later behaviour was introduced after version 6.0.228; previous versions did not have EinsteinASum and IntensityUnits = EinsteinA gave the current EinsteinASum behaviour.

To model a real spectrum, level populations must be included, normally calculated using the Boltzmann equation. The raw lower state population can be plotted with IntensityUnits = PopDist, which plots an energy level diagram for the lower state, rather than a spectrum, with the intensity the Boltzmann factor:

IntensityUnits = NormPopDist divides this value by the partition function, Q:

defined so the populations add up to 1. When evaluating this sum, pgopher includes all manifolds with Initial set to true. NormPopDist then plots the fraction of molecules in any given level:

The simplest and quickest form that approaches a real spectrum is with IntensityUnits = Arbitrary. This is simply the line strength times the Boltzmann factor:

The Boltzmann factor for both the upper and the lower state is shown here, though the factor is only included for a particular state if the Initial flag is set for the Manifold. Note the use of Spol rather than S (to ensure multiphoton transitions are correct) and that the degeneracy factor is included in Spol.

The Saturation parameter can be used to adjust this, and the other calculations below using S or Spol to account for the effects of saturation. S is replaced by

where g = Min(2J'+1, 2J"+1) × Statistical Weight. This is appropriate for saturation by z polarized light. Increasing the Saturation parameter from zero makes the transition dipole moment progressively less important. Values of 1 to 10 will wash out the differences between allowed branches and much higher values will bring out transitions that are only allowed by some weak mixing.

IntensityUnits = Squared simply squares this value

This mode gives a reasonable first approximation to intensities for degenerate four wave mixing spectroscopy.

While IntensityUnits = Arbitrary will give correct relative intensities for a single isotopic species, use of this form can give misleading results when simulating isotopologues or isotopomers with different symmetry or statistical weights, such as 35Cl2 and 35Cl37Cl. This is because the partition function is essential for the statistical weight calculation.

The accurate form is IntensityUnits = Normalized, which includes the partition function:

This is the recommended form for all types of spectroscopy unless absolute intensities are required; the more specific cases below are all only appropriate for one photon transitions.

For absolute intensities the starting point is the equation for the integrated absorption coefficient, ε, in terms of dipole moment for a molecule in a single state:

which gives the absorption coefficient as having units of molecule–1m2s–1. This is appropriate for a molecule in a single quantum state and ignores stimulated emission. To allow for a spread of states the Boltzmann factor must be added, and taking the sum over degenerate levels gives:

Introducing the line strength gives the final form:

Note that the degeneracies do not appear in this formula as they are included, by definition, in S and Q. Using Debye as the unit of dipole moment introduces a conversion factor of c–110–21. Converting the area to nm2 gives the constant as:

using:

For νAB in MHz this gives the absorption intensity in nm2 MHz molecule–1, giving the final equation for IntensityUnits = nm2MHzperMolecule:

Note S is used rather than Spol, as it only applies to one photon transitions.

Alternatively, for νAB in cm–1 this would give units of nm2 cm–1 molecule–1, which can be converted to the more normal cm2 cm–1 molecule–1 = cm molecule–1 by multiplying by 10–14 giving an overall factor of:

(Note that the conversion factor between nm2 MHz molecule–1 and cm molecule–1 involves an extra factor of 10–4 c to allow for the frequency conversion.)

For emission spectra the appropriate scaling is as for the Einstein A coefficient, with a ν3 scaling factor. IntensityUnits = HzperMolecule thus adds the population factors to EinsteinASum:

For this to be physically meaningful Initial should be set to true in the upper manifold, and false in the lower manifold, in which case the Boltzmann factor is exp(-Eupper/kT).

For magnetic dipole transitions, the above equations can be used, provided the quantity:

is replaced by

where [image] M is now the magnetic dipole operator. The electric dipole equivalent to a magnetic dipole can be found by equating these two, giving:

Converting the magnetic moment to units of the Bohr magneton, and the electric dipole moment to Debye gives an overall conversion factor of

with an extra scaling factor of me/mp for nuclear magnetons. These scaling factors are included when evaluating matrix elements of magnetic moments of spins.

Overlays also have intensity units, though the interpretation is not exactly the same as above. Conversion to the same intensity units as set in the simulation object are done before plotting where the conversion make sense, though some (such as between EinsteinASum and EinsteinA) are impossible because the information is not available. There is also an additional distinction between Arbitrary and Normalized – for the former the overlaid spectrum will always be scaled to fill the full range available, whereas with Normalized the relative scales of separate spectra will be preserved.


Emission Spectra

Simulating emission spectra requires some special considerations:
  1. The Initial flag must be set for the upper manifold of each state, and clear for the lower manifold of each state. (The Initial flag would typically be set for the lower manifold only.) PGOPHER will then use a Boltzmann distribution to calculate the population in the upper state, and assume no population in the lower state.
  2. To include the ν3 factor in the intensity calculations the band origins used must be absolute (i.e. enter 19135 cm-1 rather than 135 cm-1) and the IntensityUnits in the Simulation object should be set to HzperMolecule.


Raman Spectra

Raman Spectra and Multiphoton transitions

This page covers both Raman transitions and multiphoton transitions, as similar settings are used for both. The key is the use of spherical tensor notation, as commonly used for multiphoton transitions. Normal Raman spectroscopy uses two photons, and this has the same selection rules as two photon transitions. For both of these you must specify a Rank and a Component, which PGOPHER labels overall as T(Rank, Component). For two photon and Raman transitions possible values for Rank are 0, 1 (often weak or absent) and 2; in general the highest rank is the number of photons involved. For each Rank, k, there will be 2k+1 components from -k to +k. It is common to need more than one of these to simulate a given transition, as in the one photon case where more than one Cartesian component of the transition moment may be required for asymmetric tops. Note also that for asymmetric tops the different signs of the components have a special meaning and correspond to different transition moments as defined here and you will need to choose the right one (or possibly both will be required).

For a linear molecule the following components might be expected to contribute to a two photon transition:

Σ-Σ | T(0,0) (normally dominant) and T(2,0)
Σ-Π | T(2,1)
Π-Π | T(0,0) (normally dominant), T(2,0) and T(2,2)
Σ-Δ | T(2,2)

The general selection rule for the component, q, is |q| = |Λ'-Λ"| or |q| = Λ'+Λ".

For an example in symmetric tops using two transition moments simultaneously see The 2+1 multiphoton ionization spectrum of the C'-X transition in NH3.

Note on Overlaying Spectra

Raman and multiphoton spectra are always plotted against difference in state energy, as for normal transitions, so changing the type of transition does not change the region in which the simulation appears. When overlaying spectra on such simulations I suggest adjusting the scale on the experimental spectrum to account for this, which can typically be done via the FrequencyOffset or FrequencyScale settings of an overlay. For example a transition with a band origin at 40000 cm-1 will appear at 20000 cm-1 in a two photon transition. When overlaying a two photon spectrum with a scale in cm-1 a FrequencyScale of 2 will shift the experimental spectrum to the equivalent two photon energy. (Use 0.5 for a spectrum against vacuum wavelength; for a spectrum against air wavelength use the "Convert Units" button in the overlay window to switch to a unit that is linear in energy.)


J Range and Partition Functions

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:
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:
  1. 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.
  2. Check the centrifugal distortion constants are reasonable
  3. 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.
  4. Adjust the maximum J used in the calculation (See Determining Colours and J ranges).
  5. 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.
  6. 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.

Evaluating the Partition Function

The partition function sum for a molecule, Q,
Q = Σ gi 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 to 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 turns off other contributions to the intensity and can give misleading relative intensities. (Relative intensities between isotopologues such as 35Cl2 and 35Cl37Cl 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.


Tracing Plate Spectra

To trace a plate spectrum, first load the picture into the overlays window, so it looks something like the picture below. (You can load the picture by copying and pasting from another application or loading image files directly.)

1. Determining Plate Angle

The plate is unlikely to be scanned perfectly vertically, and this is not a requirement for accurate operation. The angle must be measured, by selecting a single clear line with the mouse as follows:

Press "Operate" and then "Plate Angle" to display and set the plate angle. (It is recorded as one of the settings for the overlay.)

2. Select Region to Scan

Select the region to trace by pressing the following buttons in turn:
Set top left of region to trace
Set top right of region to trace
Set bottom left of region to trace
Set bottom right of region to trace
Set all four corners of region to trace
After pressing one of the above, press the mouse button on the required point. The "Cancel" button can be used to stop the process. The "Top" points define one edge of the trace area; the "Bottom" points are only used to define the line at which the trace stops. (The "Top" line does not have to be above the "Bottom" line.) To trace the main spectrum above the window should look something like this:

and for the calibration lines:

3. Perform the Scan

Select "Operate" and "Plate" to do the scan. An additional overlay will be generated each time you do this; the vertical scale is the average of the intensity along the lines determined by the plate angle. The horizontal scale is the pixel value where this line passes through the centre of the image, so that each spectrum traced from the same image will be on a consistent horizontal scale.

4. Calibration

The standard calibration procedure can now be used. Note that if you use separate calibration traces you should use "Apply Calibration To" to transfer the calibration from one overlay to another rather then "Copy Frequency to".


Binary LineList Format

When a line list is produced with PrintLevel = Binary the resulting binary format is designed to be quick to read by external programs. (See the information about the Command Line Version for a common way to do this) It has the same content as the other linelist formats, and consists of a sequence of lines/records:

  • The first line contains the program version as a string and as an integer.
  • The second line has a string for each field, containing the field name
  • A record for each transition
  • The final line has the total intensity of all the lines, and the number of lines.

The line/record is a simple sequence of fields, with each field headed by a byte identifying the type:

Header Byte | Field Contents
< 200 | String field; header byte gives length. A one character string with a single character 10 (new line character) implies end of line/record.
200+sizeof(int) (Normally 204) | Integer. Note that quantum numbers are represented as integers with twice the true value.
200+sizeof(double) (Normally 224) | Floating point value

The integer and floating point values are in the format naive to the platform, so the binary files are not necessarily transportable between machines. However all current versions (except the obsolete PowerPC version) produce compatible files.

A simple C program that dumps the binary file as text is shown below:

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#ifdef _Windows
#include <io.h>
#else
#include <unistd.h>
#define O_BINARY 0
#endif
#include <fcntl.h>
#include <stdlib.h>

int main(int argc, char*argv[])
{
  int fd = open(argv[1],O_RDONLY | O_BINARY);      /* Open file */
  struct stat sbuf;
  unsigned char *buffer, *p;
  fstat(fd,&sbuf);                      /* Find it's size */
  buffer = malloc(sbuf.st_size);
  read(fd, buffer, sbuf.st_size);       /* Read it into memory */
  p = buffer;
  while ( p < buffer + sbuf.st_size ) { /* Loop over entries */
    if ( (*p > 0) && (*p < 200) ) {  /* Is it a string? */
      if ( (*p == 1) && (p[1] == 10) )
        printf("\n");               /* End of line marker */
      else {
        fwrite(p+1, 1, *p, stdout); /* Normal string */
        printf(" ");
      }
      p += *p + 1; /* Skip string */
    } else if ( *p < 216 ) {
      printf("%d ",*(int *)(p+1)); /* Integer */
      p += 1 + sizeof(int);
    } else if ( *p < 232 ) {
      printf("%g ",*(double *)(p+1)); /* Floating point value */
      p += 1 + sizeof(double);
    } else {
      printf("\nUnknown Field:%d\n",*p);
      return 1;
    }
  }
  return 0;
}


Using HITRAN Files

Line lists from the HITRAN database (or line listings with the same format) are understood by PGOPHER and can be used in several different ways. At its simplest, the line positions and intensities can be overlaid as an "experimental" spectrum for overlay, but the files can also be used as input to line position or intensity fits (PGOPHER can use the quantum numbers in the file) or imported as an external source allowing more general application of many of the features of PGOPHER, such as energy level plots, in addition to standard simulations.

To use HITRAN files with PGOPHER, the file extension must be .par. The format is documented in "The HITRAN 2004 molecular spectroscopic database", J. Quant. Spectrosc. Radiat. Transfer 96, 139 (2005). Both the older 100 character line and the newer 160 character line formats can be read.

Loading the linelist as an overlay

To overlay a linelist simply load the .par file using File, Load Overlay, or simply drag and drop the .par file onto the PGOPHER window. This mode is the least flexible, as the only adjustment possible is the addition of a constant width to the lines if the Convolute option is set in the Experimental Plot.

Fitting to values in HITRAN files

The values in HITRAN files can also be used as input to line position or intensity fitting. To fit to energy levels, use the procedure for line position fitting with line lists in separate files, for which the .par file can typically be used without modification. The quantum number format can normally be determined automatically, but a globalclass n directive can be added to the start of the file to specify the molecule type if necessary. The number corresponds to the entries in Table 3 of the "The HITRAN 2004 molecular spectroscopic database", J. Quant. Spectrosc. Radiat. Transfer 96, 139 (2005). upperstate/lowerstate and related directives described in Line List Input Format can be used to specify the states involved, if there is more than one possibility, or alternatively the states can be named following the global class quantum numbers. The names required are the "global" quanta for the state, with the fields separated by "_". The same procedure can be used to determine the transition dipole moments by fitting to the Einstein A coefficients in the .par file - select Intensity rather than Line in the log window to use this mode, and the IntensityUnits in the Simulation must be cm2WavenumberperMolecule.

Simulations using HITRAN files

For the most flexible use of HITRAN files, the .par files should be imported into PGOPHER - use File, Import, HITRAN File.... The resulting file will produce simulations in the normal way, allowing the temperature and linewidth to be adjusted and right clicking on any transition will give the underlying quantum numbers. Note however, that two extra steps will normally be required to produce correct results:
  1. If more than one isotopologue is present in the file the abundances for each will need to be entered manually. For example, importing the the HITRAN file for water will produce several HITRANMolecule objects named 11, 12, 13, ... corresponding to the HITRAN numbers. 11 corresponds to the main isotopologue, and the others can be deleted or the Abundance set to the correct value in the Molecule object. (Strictly the abundance should be set to 0.997317 rather than the default of 1 for the main isotopologue.)
  2. By default, the partition function is calculated by summing over the energy levels deduced from .par file, but this is not likely to include all the levels, so the partition function can be specified as a table of values using an Interpolated Transition Function. To add this, right click on the HITRANMolecule object and select Add New..., Interpolated Partition Function and then right click on the Interpolated Partition Function object and select the file. The parsums.dat file available as part of the HITRAN distribution can be used for this purpose - you are prompted to select the right column. Make sure only a single value is selected in the T and Q columns. Alternatively you can supply a text file with two columns - T and Q. The procedure must be repeated for each isotopologue.

Example - HF spectrum

The examples below use 14_hit04.par containing the HF linelist from the 2004 HITRAN release.

To display the linelist, simply drag and drop the .par file onto a PGOPHER window:

Import the file to allow more flexible usage: Use File, Import, HITRAN File..., and select the .par file. For higher temperatures the partition function should be taken from HITRAN. To do this right click on the HITRANMolecule object (141 for HF) and select Add New..., Interpolated Partition Function and then right click on the Interpolated Partition Function object and select the parsums.dat file from the HITRAN distribution. In the following dialog box, make sure HF is selected in the Q column, and no other rows. For some molecules the Abundance will need to be set; for HF there is only one isotopologue in the .par file but, for example, an HCl linelist would require 0.75 and 0.25 to be entered for the 35 and 37 isotopes of Cl.

The resulting spectrum will look the same as the above by default, but it is now possible to right click on a line to show the quantum numbers associated with the transition, and the temperature can be changed from the default. It is also possible to produce an energy level plot (View, Levels):

Note that HITRAN only provides partition functions staring at 70 K; for lower temperatures it is probably more accurate to delete the Interpolated Partition Function (or make it inactive), as the energy levels inferred from the HITRAN file will be complete for lower temperatures.

Fitting to the HF data

The file HF.pgo is a standard PGOPHER linear molecule file, set up to simulate all the transitions in the .par file. Four vibrational levels are included in the model. The rotational constants (Origin, B, D and H) were determined by line position fitting using the .par file unmodified as the observations file. For this to work the vibrational states need to be named "0", "1", "2" and "3". The transition dipole moments were determined by a second fit to the same file, with the fit type set to Intensity rather than Line; the intensity units for the simulation need to be cm2WavenumberperMolecule.


Using ExoMol files

PGOPHER can make use of linelists produced in the ExoMol linelist format, part of the ExoMol project. The way these linelists are structured make it possible to use many of the features of PGOPHER on energy levels and transitions calculated by other programs, to produce energy levels plots, for example, in addition to simulations. For documentation of the format see Jonathan Tennyson, Christian Hill, and Sergei N. Yurchenko AIP Conf. Proc. 1545, 186 (2013) doi: 10.1063/1.4815853.

Simulations using ExoMol files

To produce a simulation first import the .states file into PGOPHER (File, Import, ExoMol File...). Then, in the constants window right click on the Manifold produced and select "Add .trans file...", and select the required file. The process can be repeated if there is more than one .trans file. By default, the partition function is calculated by summing over the energy levels in the .states file, but the partition function can be specified as a table of values using an Interpolated Transition Function. To add this, right click on Molecule, Add New..., Interpolated Partition Function and then right click on the Interpolated Partition Function object and select the file. The resulting file will produce simulations in the normal way, allowing the temperature and linewidth to be adjusted and right clicking on any transition will give the underlying quantum numbers.

Fitting to values in ExoMol files

The values in ExoMol files can also be used as input to line position or intensity fitting. To fit to energy levels, use the procedure for line position fitting with line lists in separate files, for which the .states file can typically be used without modification. The location of the quantum numbers and state names in the extra fields after the four standard ones must be specified by directives in the file as listed below; the values sn and en are starting and ending column numbers, with column 1 the first column of the extra fields. (Omitting en implies all the rest of the text.) The same procedure can be used to determine the transition dipole moments by fitting to the Einstein A coefficients in the .trans file, but the relevant .states file must be specified with the AddStates directive, and the IntensityUnits in the Simulation must be EinsteinA.

StateCols s1 e1 s2 e2 ... | The state name is selected by concatenating all the values in the columns s1-e1, s2-e2 ... Spaces are removed and "_" characters are inserted between the quantum numbers, so a set of (vibrational) quantum numbers "0 1 3" would be converted to a state name 0_1_3.
QnoCols s1 e1 s2 e2 ... | The rotational quantum numbers (apart from J, which is one of the standard fields) are taken from the given columns. The quantum numbers are assumed to follow the simple format.
AddStates filename | In .trans files only: read the energy level definition from the given file.

The Include directive, and many others described in Line List Input Format can also be used.

Example - SiO vibrational transitions

As an example, the ExoMol SiO linelist (http://www.exomol.com/molecules/SiO.html) can be imported directly. At the time of writing, three files are available on the website for the main isotope, 2816for.states, 2816for.trans and 28Si16O-q.txt (the partition function) and these can be imported as is using the procedure above. Importing just the .states file allows an energy level plot to be produced (View, Levels):

With the other two files added general simulations can be produced; the diagram below is at 1000 K assuming a linewidth of 1 cm-1.

Fitting to the SiO data

The file SiOsmall.pgo is a standard PGOPHER linear molecule file, set up to simulate the v=0 and 1 levels, and the transitions between them. The partition function is specified numerically by importing the 28Si16O-q.txt mentioned above, so that the line intensities are correct at higher temperatures. The constants were determined by fitting to the ExoMol energy levels. To determine the rotational constants (Origin, B D and H) the following .states file was used as input:

Select J" < 100
StateCols 1
           1     0.000000      1       0    0
           2     1.448467      3       1    0
           3     4.345384      5       2    0
... 800 lines omitted

This is the .states file as above, with the lines referring to the higher vibrational states removed. Note the use of two directives; the Select J" < 100 is one of the standard ones, and is used here to limit the J range of the levels included in the fit as higher J values fit poorly to the standard centrifugal distortion expression. The StateCols 1directive is one described above, and indicates that all the additional quantum numbers are used to provide the state name. For this to work, the vibrational states have to be named "0" and "1".

To determine the three transition dipole moments (0-0, 1-1 and 1-0) the following small .trans file was used as input:

AddStates 2816small.states
Select J" < 10
StateCols 1
Include 2816small.trans

This file includes two other files - note the use of the AddState directive to specify the states; the file 2816small.states is the file used for the energy level fit above. The 2816small.trans file is directly from the ExoMol database; lines not involved in the included .states file are discarded. The other two directives are as above; J is limited to 10 here as the J dependence of the dipole moment is not modelled.


Objects

To represent molecules and states making up the simulation, PGOPHER makes use of a hierarchy of objects. This works rather like a nested directory structure containing files except that each level can only contain certain types of object. These are no particular limits to the number of objects at each level, so that arbitrary combinations of spectra can be constructed, and multiple interacting (perturbing) states can be simulated. To view or edit any of these objects, use the tree view in the Constants window (View, Constants). The topmost object is a

Mixture which contains settings controlling details of the calculation, such as the units used. The name of the mixture is normally the filename. A mixture contains one or more:
  • Species which contain one or more isotopomers or:
    • Molecules These specify the settings such symmetry and statistical weight which are common to all the states within a molecule. There are four different types available, depending on the type of molecule: Linear, Symmetric Top, Asymmetric Top and Vibrating Molecules (for vibrational structure only). Molecules contain three types of object:
      • Manifolds provide a way of grouping states together, allowing perturbations to be simulated. Manifolds contain two types of object:
        • States which contain the band origin and rotational constants of a particular state. Again, these are specific to the type of molecule, with Linear, Symmetric Top, Asymmetric Top and Vibrating Molecule versions, depending on the Hamiltonian used. If nuclear hyperfine structure is to be simulated, then each state contains nNuclei:
          • Nucleus which contains the hyperfine parameters for each nucleus for the parent state.
        • Perturbation which describes an interaction or perturbation between two states. There is one of these for each perturbation parameter.
      • Transition Moments which describe the spectroscopic transitions between or within manifolds. One of these objects is required for each pair of manifolds that have transitions between them. They contain one or more
        • Transition Moment objects, which can be of various types, again depending on whether the molecule is a Linear Molecule, Symmetric Top, Asymmetric Top or Vibrating Molecule.
      • Interpolated Partition Functions. This (optional) object can be used if the partition function is to be input externally, rather than automatically calculated.
  • Simulation objects, which describe the experimental conditions. One of these will be generated automatically and relate to the main window, and additional simulation windows and the corresponding objects are created if additional plot windows are created from View, Another Plot.
    • Polarization objects are optional, and only relevant if the effects of external static fields are to be simulated.
  • Variables objects, which contain global parameters typically used to constrain fits.
  • An optional Correlations object, which contains the correlation between parameters in the most recent least squares fit. It is automatically created and updated on every fit.

Overlays and Experimental Data

Experimental data used to overlay simulated spectra are also described by a similar, if simpler hierarchy of objects. These can be individually inspected using the tree view in the Overlays window (Overlays, Properties). The topmost object is:

Overlays, which can contain three types of plots:
  • Experimental Plots, which contain the (frequency, intensity) points of an experimental spectrum
  • Bitmap Plots, which contain an image for use where only a picture of the spectrum is available, but not the raw data.
  • Calibration plots, containing built in line lists - see Calibrating Spectra.
To manipulate these see the File Menu, the Overlays Menu or the Overlays window. Some operations can also be carried out by right clicking on the overlay on the plot window, depending on the format of the plot.


Mixture

This is the topmost object in the hierarchy, and there will be only one of these objects for a simulation. It contains settings controlling details of the calculation, such as the units used. The data files PGOPHER uses (.pgo) thus contain one mixture, with all other objects contained within it, and the name of the mixture will normally be the name of the file. The Mixture object contains one or more Species and Simulation objects and an optional Correlations object.

Note that many or the parameters were moved into the Simulation object in version 5.2.

Settings

Units Units for calculation of frequencies/energy - valid values are cm1 (cm-1), MHz, Kelvin and eV. The key change this makes is in calculating Boltzmann factors from temperature and for selected intensity units; the units are otherwise not significant.
PrintLevel Controls the amount of printout in the Log window. Possible values, in order of increasing amount of output are:
  • None: no output
  • Default: Mainly for internal use, but as None
  • Minimal: Currently as None
  • CSV: Show line list in comma separated variable (.csv) format, suitable for import to spreadsheets or other programs.
  • Text: Show line list with the fields separated by tabs, suitable for import to spreadsheets or other programs.
  • Binary: Show line list in binary format, for quick import into other programs. See Binary Line List Format for how to do this.
  • Detail: Show symbolic matrix elements associated with each constant, where available.
  • LineList: As Detail, and show individual lines also
  • EigenVectors: As LineList, and show details of all calculated states, including eigenvector make up
  • Hamiltonian: As EigenVectors, and show all Hamiltonian matrices
  • Matrices: As Hamiltonian, and show (almost) all matrices, including transition matrices
  • All: All possible output; this setting can force more output while fitting.
Precision | Precision of printout (decimal places after the point).
BasisOrder | How to order the basis states making up a basis. Valid values are: boDefault, boDiagonal and boStateDiagonal.
QuantumNumberFormat Controls how quantum numbers are read and displayed. Possible values are:
  • J: Values are displayed as integer or integer + 0.5, such as 2 and 3.5. On input, strings contain /2 are also accepted, such as 7/2 (=3.5)
  • 2J: All quantum numbers are doubled, and always display and must be read as integers. This was the default for versions before 5.2
  • 2J+1/2: The value displayed is the quantum number + 0.5, but otherwise as for J
  • 2J-1/2: The value displayed is the quantum number - 0.5, but otherwise as for J
Note that the definition of quantum numbers includes the rank and component of transition moments, so this setting is only recommended for use in input files for least squares fitting.
FitCycles | Number of least squares fit cycles to do on each press of a "fit" button.
FitDetails
 If true, display more information following a fit, currently a singular value decomposition of the parameters.
AutoReplot | If false, automatic recalculation of the simulation is disabled in some circumstances. Use if the program is running slowly.
AllowComplex If set, calculations will be performed using complex wavefunctions if there are matrix elements that require it. Otherwise purely imaginary matrix elements are multiplied by -i to force them to be real. This often has no effect on the calculations, but there are circumstances where the calculation is wrong if the matrix elements are not allowed to be complex. Circumstances in which it is not significant include cases where the factor of -i is simply equivalent to a different phase choice for the basis states, or where the interaction involved is sufficiently small that second order perturbation theory gives a good result, as the energy shift essentially depends on the square modulus of the matrix element.
NoLineList Disable the use of recorded line lists during simulations. This disables some features, such as the ability to right click on a line to identify it, but allows larger calculations to be performed. For example, the maximum J in a simple asymmetric top calculation is increased from about 200 to 500 with this setting.
ShowEstUnc
 Show estimated uncertainties of line positions in the line list window and in line lists (use PrintLevel = LineList or Export a line list from the File menu).
ShowDerivatives Show derivatives with respect to parameters in line lists.
SVDlimit Number of contributions to show for each SVD vector; 0 for all.

Parameters

Several of these can be set from the tool bar in the main window.
SVDThresh | In least squares fitting, discard singular value decomposition eigenvalues below this fraction of the largest eigenvalue. This stabilizes badly behaved fits, where little or no information is available about certain parameters, or combinations of them. The singular value decomposition is shown in the log window when some values are discarded.
ScaleChanges | In least squares fitting, scale proposed changes in parameters by this; the default is 1, but smaller values may help fits with convergence problems.


Simulation

There is one of these objects for each simulation. The first one is for the main window, with others for each plot window. The settings can all be adjusted from the Constants window, and some can also be adjusted from menus in the main window and text boxes in the main window and plot windows.

Settings

IntensityUnits Units for intensity. These are described in detail under Intensity Formulae. Possible values are:
  • Arbitrary - fastest, as it does not include the partition function, but can give misleading results (see below).
  • Normalized - default, and recommended for most cases unless absolute intensities are required.
  • Squared - square the calculated intensity
  • HonlLondon - The line strength factors, essentially the transition dipole moment summed over all the degenerate M levels and squared. The value displayed is actually 3Spol, which is correct for one photon transitions, but see the discussion under Line Strengths for possible caveats for other types of transition.
  • EinsteinASum - The Einstein A coefficient for each transition summed over upper and lower state M levels, with population factors excluded. This was EinsteinASum up to version 6.0.228.
  • EinsteinA - The Einstein A coefficient for each transition summed over lower state M levels, with population factors excluded. This corresponds to the radiative rate from the upper state.
  • nm2MHzperMolecule - for normal absorption
  • cm2WavenumberperMolecule - for normal absorption
  • HzperMolecule - for emission. This is the rate of emission of photons by one molecule on each transition, including the Boltzmann factor and partition function.
  • PopDist - Plots an energy diagram, rather than a spectrum, with intensities just the level population. This is intended for modeling a time of flight spectrum or similar experiment where energy levels are observed directly, rather than transitions.
  • NormPopDist - as for PopDist, but include partition function.
For the four with units (EinsteinA, nm2MHzperMolecule, nm2MHzperMolecule and HzperMolecule), transition moments are assumed to be in Debye for electric dipole transitions and Bohr or nuclear magnetons for magnetic dipole transitions.

Misleading results can be obtained for a setting of Arbitrary when simulating isotopologues or isotopomers with different symmetry or statistical weights together, such as 35Cl2 and 35Cl37Cl. The calculation is "correct", in that the partition function is necessary to give the correct relative intensities, but is excluded by design for this setting.
LifeModel Model to use for state dependent lifetimes and linewidths. Valid values are lmNone, lmWidth, lmProduct, lmProductWidth, lmParent, lmParentWidth, lmGate, lmGateWidth. See Widths and Lifetime Effects for how this setting works.
PlotUnits Units for the horizontal scale for spectrum plots. Possibilities are standard energy unit (cm1, MHz, Kelvin and eV) as in the Mixture object and also:
  • sqrtcm1 - Velocity in units of cm-1/2
  • nmVac - Wavelength in vacuum in nm
  • nmAir - Wavelength in air in nm
The correction between air and vacuum wavelengths is made using the formula for the dispersion of air given in B Edlen, Metrologica, 2, 71 (1966).
nDF | Number of points (between Fmin and Fmax) to calculate the spectrum at. Note that if a peak width is less than 3*(Fmax-Fmin)/nDF, i.e. only a few points wide, then it is shown as a stick, rather than a peak.
WidthMult | Multiple of line width to extend convolution over.
ShowSum | Plot overall sum of individual spectra. This is toggled by the [image] button.
ShowParts | Plot individual spectra making up overall spectrum. The individual spectra are grouped by colour, so you will need to set colours to see something different to the sum. Colours can be set at the transition moment, state, molecule or species level. This is toggled by the [image] button.
ShowFortrat | Plot a Fortrat diagram, i.e. J against frequency, in the main window. This is toggled by the [image] button.
UseUpper | Set to use upper rather than lower state J and symmetry in the Fortrat diagram.
ShowSymmetry | Show symmetry in Fortrat plots.
ShowDeltaJ | Show change in J in Fortrat plots.
ScaleMarkSize | Scale Mark Size with intensity in Fortrat plots.
UseSymmetry | If true, show different symmetries in separate Fortrat plots.
UseStateNumber | If true, show different state numbers in separate Fortrat plots.
FortratQno | Select quantum number to use in Fortrat plots.
AutoMin If set, Ymin is automatically updated to minimum point in plot range
AutoMax | If set, Ymax is automatically updated to maximum point in plot range

Parameters

Several of these can be set from the tool bar in the main window.
Fmin | Left edge of plot range in main window.
Fmax | Right edge of plot range in main window.
Ymin
 Lower end of current plot range; overwritten with lowest value in current range if AutoMin set
Ymax | Upper end of current plot range; overwritten with lowest value in current range if AutoMin set
Temperature | Rotational temperature (Kelvin). Setting this < 0 will force the use of numerical populations for all manifolds, as described in Non-Boltzmann Populations.
Gaussian | Gaussian contribution to linewidth (full width half maximum). If both this and a Lorentzian width (below) is set the result is a convolution of the two, a Voigt profile.
Lorentzian | Lorentzian contribution to linewidth (full width half maximum). This and the Gaussian width can also be set from the main window.
Foffset | Frequency offset to simulation.
SMargin This setting controls the number of extra points to calculate at each end of the spectrum. (These points are not plotted, but may be required to avoid artefacts in the convoluted spectrum):
If > 0: Number of extra points to calculate at each end
If < 0: Number of points is |SMargin|*WidthMult*(Gaussian+Lorentzian)
OThreshold | Ignore peaks smaller than this fraction of the maximum peak intensity.
RefWidth Reference width in linewidth (predissociation) calculations; see LifeModel
Tvib | Vibrational Temperature (Kelvin); set to -1 (default) to use rotational temperature for all Boltzmann factors.
MinI | Set the scaling of mark sizes in Fortrat plots.
Saturation Zero for normal calculation; positive values progressively switch strength to population only by replacing the line strength, S by:
S = (1-exp(-S*Saturation/g))*g
where g = Min(2J'+1, 2J"+1)*Statistical Weight. This is appropriate for saturation by z polarized light. Values of, say, 1 to 10 will wash out the differences between allowed branches and much higher values will bring out transitions that are only allowed by some weak mixing.
Tspin

Spin temperature (Kelvin); set to -1 (default) to assume equilibrated nuclear spin states. If set >=0 then the fraction of molecules with each particular nuclear spin species (ortho/para for diatomics) is fixed at the fractions found at T = Tspin. This is often appropriate for molecular beams, where the nuclear spin states do not relax during the expansion.

Note that the current implementation for asymmetric tops fails if the statistical weight for two different spin species is the same.
EField Static electric field, V/m; see External Fields - The Zeeman and Stark Effects
BField | Static magnetic field in Tesla (= 104 Gauss); see External Fields - The Zeeman and Stark Effects
Doppler
 Plot each transition as two peaks, split by 2*Doppler*Centre Frequency. This gives the double peak structure often seen in Fourier transform microwave spectroscopy.


Polarization

These are added under the Simulation object as required, and describe the relative orientation of any static fields with respect to the absorbed or emitted radiation. As many of these as required can be added; if none are present random polarization is assumed

Settings

Rank Rank of field - 1 for a normal single photon transition.
Direction Select the polarization of the light, and thus the M selection rules. Possible values are:
  • Random - ΔM = 0, ±1
  • Parallel - ΔM = 0
  • Perpendicular - ΔM = ±1
  • Circular - ΔM = +1

Parameters

Strength Relative strength of field - note that the relative intensity is proportional to the square of this value.


Variables

A Variables object is used to add named dummy parameters that are used to constrain fits.

  • To create the object, right click on the Mixture or Overlays object and select "Add New...,Variables".
  • To create a parameter, right click on the Variables object and select "Add Parameter...".
  • To delete a parameter, right click on the parameter and select "Remove Parameter(s)"

This is particularly designed for force field analysis (see z matrix for an example) but can be useful in other contexts. For example, to fit to a band origin and a separation, rather then two band origins, add a parameter named "Offset" as above, and then add a constraint along the lines of:

Constrain NH3.ND2H.B.A2.Origin := Variables.Offset + NH3.ND2H.B.B1.Origin

With this set up the new parameter, effectively the difference between the two origins, and one of the origins (NH3.ND2H.B.B1.Origin) are floated, rather than both origins.

Settings

Global If true, then variables given in this object are available in all expressions. (If false, then the values will require specifying the full name, as Variables.Offset above.)


Species

There can be one of more species within a mixture which will in turn contain one or more linear, symmetric top or asymmetric top molecules. To add another species go to the Tree View, and either right-click on the mixture and select "Add new species", or use copy and paste within the tree view.

Settings

Jmin | Minimum J to use in calculation - set to -1 to use lowest possible J.
Jmax | Maximum J to use in calculation.
Colour | Colour of plot; set to "None" to take value from elsewhere as explained in Determining Colours and J ranges. It may be better to select a colour lower down in the object hierarchy, for example within each molecule object, to allow different colours to be selected for each isotope (if applicable).

Parameters

Concentration Relative concentration of species (1 is the default).


Molecule

There can be one or more molecules within each species; there should be one molecule for each isotopomer or isotopologue. To add another molecule, either:
  1. Right-click on the species you are adding to in the tree view and select "Add new...", then select a linear, symmetric top or asymmetric top molecule
  2. Right click on a similar molecule entry (it must be of the same type) and select "copy", then right click where you want the new molecule to be and select paste.
The latter method is particularly effective for adding another isotope as the parameters and settings will be largely similar. Note that it is possible to copy and paste between independent copies of PGOPHER should you want to use a molecule from a completely different file as a starting point.

The settings given here are common to all different types of mixture. Details of other settings are given in the sections for linear, symmetric top, asymmetric top and vibrating molecules.

Settings

nNuclei | Number of nuclei to calculate hyperfine structure for. Leave this at 0 unless you want the hyperfine structure resolved.
Jmin | Minimum J to use in calculation - set to -1 (default) to use value from species.
Jmax | Maximum J to use in calculation - set to -1 (default) to use value from species.
Colour | Colour - set to "None" to take value from elsewhere as explained in Determining Colours and J ranges.
JAdjustSym | If set, energy level plots and Fortrat diagrams will take account of the alternation in symmetry with J that is often found. For example in linear molecules an energy level will typically alternate between + and - parity with J (hence the e/f notation).
BlockMatrix | Set to force check of Hamiltonian matrix for factorization into blocks before diagonalization. If blocks are found, these are diagonalized separately, ensuring states that have no connecting matrix elements are not accidentally mixed if the eigenvalues happen to be very close. In principle, if full use is made of symmetry and states are separated into separate manifolds as appropriate, this should not be necessary but can easily happen if selected terms in the Hamiltonian are zero or interactions between states are omitted.

Parameters

Abundance Abundance of this isotopologue; default is 1


Interpolated Partition Functions

InterpolatedPartitionFunction

To generate partition functions from an externally provided table of values (such as those provided by HITRAN) add an "InterpolatedPartitionFunction" object at the molecule level. Provided the active property is set then, when requiring partition functions, PGOPHER will interpolate from the provided table, rather than attempting a sum over all calculated levels. Unless several ground state vibrational levels are included in the calculation, this approach is likely to be necessary for full accuracy in absolute intensities. To load the table, right click on the object in the tree view and select "Import..."; a simple text file is expected with two values on each line, the temperature (K) and the corresponding value of the partition function. On loading the file you will normally be prompted to select the columns containing the temperature (T) and partition function values, Q.

Settings

Active | If true, use this to generate the partition function
Order | Order of Lagrangian Interpolation to use (should be even)
AutoZero |
Fractional | Value is Qthresh/Q ratio, rather than sum

Parameters

Zero | Energy zero to use when calculating partition functions
Scale | Scale interpolated partition function by this


Manifold

Manifolds provide a way of grouping states together. Interacting states (i.e. those with perturbations between them) must be in the same manifold, and it may be convenient to group related states together (such as a set of vibrational states from the same electronic state.) Manifolds therefore contain two types of object, states and perturbations. To add a new state or perturbation to a molecule, right-click on the manifold in the constants and select "Add new...". The settings here are the same, whether simulating linear, symmetric top, asymmetric top or vibrating molecules, though the defaults for LimitSearch are different.

Initial is a key setting here; at least one manifold must have this set. This will normally be the lower manifold in a transition, but could be the upper state for fluorescence or both if the population difference should be calculated.

Jmin | Minimum J in calculation - set negative to take from molecule or manifold.
Jmax | Maximum J in calculation - set negative to take from molecule or manifold.
Initial | True to include population in this state when calculating spectra.
Colour | Colour for spectra - set to "None" to get colour from elsewhere as explained in Determining Colours and J ranges.
EigenSearch | Identify state by looking for largest coefficient in the eigenvector.
LimitSearch | Set to assume the energy ordering within an individual state does not change, but the eigenvectors are used to select the state within a manifold.
AutoQConverge | Partition function (Q) sum extends until converged (if true) or Jmax (if false). See J range and Partition Functions for a discussion of this. Note that this is assumed false in the presence of a static electric or magnetic field.
UsePopParams | Set to use numerical populations specified as parameters, rather than Boltzmann equation. See Non-Boltzmann Populations for more information. Alternatively, an overall Temperature < 0 will force this for all manifolds.

EigenSearch and LimitSearch

These flags determine some of the quantum numbers displayed, but do not affect the energy levels and intensities calculated. The overall angular momentum and rovibronic symmetry will be correct unless a static field is present, but other quantum numbers can be open to varying interpretations. With EigenSearch set to true (the default) the basis function with the largest contribution is used to determine the quantum numbers (as the basis function can normally correlated with a particular set of quantum numbers). If LimitSearch is also set to true, then the energy level ordering for a particular state within a manifold (for levels of a given total angular momentum and symmetry) is assumed to be standard. This is the default for asymmetric tops (from version 5.1.159) but not for linear molecules or symmetric tops.

As an example, consider the asymmetric top quantum numbers, Ka and Kc. If the representation is chosen so that the K quantum number in the basis corresponds to the a axis then a given basis state is readily identified with a particular Ka. (In addition a given value of Ka will correspond to one or two values of Kc, and the particular one can normally be determined by symmetry.) In a near prolate limit the mixing between basis states will be small and the energies will increase smoothly as Ka2. In this circumstance the same quantum numbers will be assigned regardless of the EigenSearch and LimitSearch settings. If the mixing between basis states is large, perhaps because of centrifugal distortion or other factors, then it is possible for the highest energy state, for example, not to be dominated by the state with the highest value of Ka. If EigenSearch=true and LimitSearch=false then the largest eigenvector coefficient would be used to assign Ka so the energy ordering would not correspond to the Ka ordering. If EigenSearch=true and LimitSearch=true Ka ordering is assumed unchanged on diagonalisation, which is normal practice for asymmetric tops. If EigenSearch=false then the ordering is also assumed unchanged on diagonalisation, though this will not probably not give useful results where there is more than one state in a manifold with overlapping energy levels, such as two interacting vibrational states.

Note than none of the above algorithms are guaranteed to produce unambiguous values for all the quantum numbers. If no search on coefficients is done then it is easy to slip to the wrong state entirely. If a search is done then if mixing within or between states is strong then there are circumstances where the choices made are not obvious. (If the largest coefficient in several eigenvectors is less than sqrt(2) then there can easily be two eigenvectors where the largest coefficient corresponds to the same basis state, which will always defeat a search based on magnitudes.) It is important to note that this only affects the labelling of transitions, not the calculated positions or intensities


State

This section describes the type of state, including symmetry, and the parameters of the state. Most settings are molecule specific; see the sections for linear, symmetric top, asymmetric top and vibrating molecules, but the settings listed below are common to all states.

Settings

Colour | Colour - set to "None" to take value from elsewhere as explained in Determining Colours and J ranges.
RveSelect | Only include given rovibronic symmetry - for normal use set to 'all'
S | Electron Spin

Parameters

Origin | State Origin.
Width | Linewidth (rotation independent) for state; see Widths and Lifetime Effects for how to use this.


Nucleus

If the parent molecule has nNuclei non zero, then each state will have nNuclei of these. One is required for each nucleus for which hyperfine structure should be simulated. The spin of each nuclei is set from the corresponding entry in any state. See Linear and Asymmetric Top pages for detailed information.

Settings

Spin | Nuclear spin
AsNext | Nucleus is equivalent to following nucleus


Perturbation

Perturbations

Perturbations describe an interaction between two states. To add a perturbation, right-click on the manifold in which the perturbation is required, and select "Add new..."). The state(s) involved must also be specified; right click on the perturbation and select Rename to bring up a dialog box to select the states involved. There can be several perturbations acting between any pair of states if required. It can also be useful to have a perturbation acting within a particular state, as this can be used to add terms to the Hamiltonian that are not part of the standard Hamiltonian for the molecule, such as higher powers of J in centrifugal distortion.

These settings are common to all perturbations; more specific settings are included in the sections for linear, symmetric, asymmetric and vibrating molecules.

Settings

Nucleus | Index, starting from 1, of nuclear spin involved in perturbation; 0 (default) for normal case where the perturbation does not involve a nuclear spin.
SymSelect | Symmetry select
ScalePrev | Scale factor with respect to preceding perturbation

Parameters

Value Size of perturbation.


Custom Population Functions

As an alternative to the built in Boltzmann population distributions, or specifying a population for each state individually (see Non-Boltzmann Populations ), a function can be given in terms of various standard state properties instead. This is done by creating a "Custom Population Function" object under the appropriate Manifold object. The standard mathematical operators are available, and possible functions might include:

exp(-E/(kB*T)) The standard Boltzmann equation that PGOPHER would use, providing Tvib and Tspin are set to their default values.(T is automatically created as a parameter here.)
exp(-b*(J-Jcentre)^2)
 A Gaussian distribution is J, centered on Jcentre. (Jcentre is automatically created as a parameter here .)
Result*(E<Emax)
 Standard distribution, but discarding all states above Emax. The comparison operators evaluate to 1 if the comparison is true, and 0 for false allowing simple if...then...else logic. (Emax is automatically created as a parameter.)
sqrt(max(Emax-E,0))
 A statistical distribution with a cut off energy of Emax. (Emax is automatically created as a parameter.)
Result*(1+2*(mod(J,3)=0))
 Standard distribution, but scaling levels with J divisible by 3 by 3.

Notes:
  • The calculated values are multiplied by the degeneracy, g, so g should not be included in the function.
  • In the current initial implementation, the function is given in the Comment field for the manifold; this will probably change in future versions.
  • Any unknown variables in the function are automatically created as parameters on simulating, or on right clicking on the node and selecting "Check Variables"
  • Unwanted variables that are no longer in the expression can be removed by right clicking on the parameter and selecting remove.
  • AutoQConverge will need to be set to off for many choices of function.

Built In Variables

Result
 The population PGOPHER would use if Active is set to false
E
 The state energy
kB
 The Boltzmann constant in the current energy units/K
J
 J for the state
Symmetry
 The symmetry number of the state
Index
 The eigenvalue number of the state

Additional quantum numbers are also available, depending on the molecule type. They are based on the dominant basis state, so may not be exact for strongly mixed states.

For asymmetric tops the standard quantum numbers Ka and Kc are available.

For linear molecules:
Omega | The Omega quantum number
Fn | The spin component, 1 for F1, 2 for F2, etc.

For symmetric tops:
K | The absolute value of K
Kl | The sign of Kl

In addition any parameter can be referred to by giving the name in dotted notation. For example the current value of Tvib can be referred to using Simulation.Tvib.

Settings

Active Set true to use the function provided to calculate the population


Transition Moments

One of these objects is required for each pair of manifolds that have transitions between them. Each manifold must be specified when the object is created; to change the manifold use "Rename" (Right click on the object and select Rename). One or more individual transition moment objects must be added underneath the transition moments object; see Linear Molecule, Symmetric Top, Asymmetric Top or Vibrating Molecule for the possible types. Colour is the only setting in the transition moments object; all other settings are included within the included transition moment objects.

Settings

Colour Colour - set to "None" to take value from elsewhere.


Transition Moment

A Transition Moments object will have one or more transition moment objects underneath it, which control the strength of calculated transitions and level shifts in external fields. See see Linear Molecule, Symmetric Top, Asymmetric Top or Vibrating Molecule for the possible types. Though there are no properties formally common to all, each will have some form of strength parameter that will reflect the size of the electric or magnetic dipole or other relevant property.

Note that versions of PGOPHER before 7.1.315 had a C and D parameter to allow some modelling of J dependence of the transition moment. This functionality has been replaced by the more general Custom Transition Moment Function. Data files containing non-zero C or D values are converted to use this automatically on loading.


Custom Transition Moment Functions

To allow for a variation in the vibronic transition dipole moment with rotational state, commonly described in terms of Herman-Wallis factors, an arbitrary function can be associated with any Transition Moment object. To do this, create a Custom Transition Function under the transition moment of interest (right click on the transition moment, select "Add New" and then "Custom Transition Function") and enter the required expression in the "Comment" field of the object. To enter a typical form for a parallel band in a linear molecule (see Watson 1987) use:
Value*(1+A1*m+A2*m^2)
Here m is N+1 for an R branch and -N for a P branch. To use the form suggested by Watson for a perpendicular band a more complicated form is required:
Value*(1+A1*m+APR2*m^2+(J'=J")*AQ2*J"*(J"+1))
Notes:
  • The expression is used to correct the value of the transition moment matrix element in the basis used, not the transition moment matrix elements after diagonalization.
  • The function should be written to correct the transition moment matrix element in terms of Value, the value before correction. As this is a matrix element, the intensity will normally vary as the square of the value.
  • Most standard mathematical forms and functions are available in the expression.
  • The comparison operators =, <>, >, <, >= and <= evaluate to 1 for true, 0 for false. Note the use in the perpendicular band formula above.
  • A built in polynomial function, poly, is also available, which may be more convenient if many terms are used; for a quadratic function use poly(x,a0,a1,a2) = a0+a1.x+a2.x^2. Add more coefficients for a higher order polynomial.
  • In the current initial implementation, the function is given in the Comment field; this will probably change in future versions.
  • Any unknown variables in the function are automatically created as parameters on simulating, or on right clicking on the node and selecting "Check Variables"
  • Unwanted variables that are no longer in the expression can be removed by right clicking on the parameter and selecting remove.
  • ' and " are used to indicate quantum numbers for the bra and ket as displayed, respectively. The available quantum numbers are listed below. Note that these are for the basis state, not the final state after diagonalisation.

Built In Variables

Value
 The value PGOPHER would use if Active were set to false
m
 N+1 for an R branch and -N for a P branch. 0 for a Q branch.
J', J"
 J values for the states involved
N', N" | N values for the states involved
F', F" | F values for the states involved

Additional quantum numbers are also available, depending on the molecule type. As for the variables listed above, use ' and " to indicate bra and ket quantum numbers respectively.

For asymmetric tops the standard quantum numbers Ka and Kc are available.

For linear molecules:
Omega | The Omega quantum number
Fn | The spin component, 1 for F1, 2 for F2, etc.

For symmetric tops:
K | The absolute value of K
Kl | The sign of Kl

Settings

Active Set true to use the function provided to calculate the population

References

  • "Quadratic Herman-Wallis factors in the fundamental bands of linear molecules", J K G Watson, J Mol Spec, 125 428 (1987).


Correlations

This object records the (symmetric) matrix of correlation coefficients between parameters in the most recent least squares fit. There can be at most one of these; it is automatically created if not present and updated on every fit.

This is used to estimate the uncertainty in calculated line positions, provided ShowEstUnc is set at the top level. It can be edited in the constants window. To add or remove entries right click on the "Correlations" label and select resync; this will adjust the matrix so that every parameter marked as floated has a corresponding row and column in the matrix.

For compatibility reasons the correlations object is only written to the .pgo file if ShowEstUnc is set.


Overlays

This contains one or more plots which can be of three types:
  • Experimental plots (numerical data typically in the form of frequency,intensity pairs)
  • Bitmaps (a picture copied or scanned where the raw data is not available.)
  • Calibration plots, containing built in line lists - see Calibrating Spectra.
For more information see the overlays window. Note that a Variables object (to hold dummy parameters for constrained fits) can also be added to the Overlays object. A few settings apply to the overall set of plots:

Settings

Units | Units for plot.
IntensityUnits | Selects vertical units for plot. If you use "Arbitrary" or "Squared" here, then the plot will always be scaled to the full range available. Note that if the experimental data has a non-zero baseline then the units should be set to "Arbitrary" to avoid problems with conversions of intensity scales.
ContourFile | If set, read an external text observation file when contour fitting, typically to set constraints. This is in addition to using any Experimental plots loaded. The file should be set in the log window, as for line position fits.
nComponents | (Future use)

Parameters

PeakThreshold Threshold for peak finder.


Plot

Plots can be of three types:
  • Experimental plots (numerical data typically in the form of frequency,intensity pairs)
  • Bitmaps (a picture copied or scanned where the raw data is not available.)
  • Calibration plots, containing built in line lists - see Calibrating Spectra.
For more information see the overlays window. A few settings are valid for all plots:

Settings

Units | Horizontal Axis units.
IntensityUnits | Selects vertical units for plot, or autoscaling
Colour | Colour for plot.
Hide | Set to hide this plot.
ZeroValid | Set if zero in data is correct.
AutoMin | If set, Ymin automatically updated to minimum point in plot range
AutoMax | If set, Ymax automatically updated to maximum point in plot range
FixCentre | Apply FrequencyScale so that centre does not move if set

Parameters

FrequencyOffset | Frequency offset used when displaying plot.
FrequencyScale | Scaling factor for frequency; see also FixCentre
Ymin
 Lower end of current plot range; overwritten with lowest value in current range if AutoMin set
Ymax | Upper end of current plot range; overwritten with lowest value in current range if AutoMin set


Experimental Plot

This allows the parameters and settings of the experimental overlay to be changed. This appears in the overlays window (accessible through the overlays menu, and "Properties") - see this section for more information on experimental overlays.

Settings

Units | Horizontal Axis units.
IntensityUnits Selects vertical units for plot. This has the same possible values as for a simulation, though the interpretation is slightly different:
  • Arbitrary - plot will always be autoscaled to full range available, and a vertical axis will typically not be displayed.
  • Normalized - A vertical scale is displayed, and the same scaling is used for simulations and the overlay.
  • Squared - plot will always be autoscaled to full range available
  • nm2MHzperMolecule - for normal absorption
  • cm2WavenumberperMolecule - for normal absorption
  • HzperMolecule - for emission
For the last three the experimental data is taken to be in the correct units, and will be converted when plotting to that chosen in the simulation object. For this to work correctly, the baseline in the data should be correct.
Colour | Colour for plot.
Hide Hide this plot
ZeroValid | Set if zero in data is correct.
AutoMin | If set, Ymin automatically updated to minimum point in plot range
AutoMax | If set, Ymax automatically updated to maximum point in plot range
FixCentre Select style of frequency scaling; see FrequencyScale below.
FirstPoint | First point to use in fitting and plotting. (Note that the point number under the mouse is shown at the bottom of the overlays window).
LastPoint | Last point to use in fitting and plotting.
IsLineList | Set to treat data as a list of line positions, optionally with intensity.
Convolute | Set to convolute experimental spectrum with simulation linewidth(s).
ComponentType (Future Use)

Parameters

FrequencyOffset | Frequency offset used when displaying plot. Note this is distinct from Offset in the constants window (and in the main window), which changes the frequency offset of the simulation.
FrequencyScale | Scaling factor for horizontal scale. The correction formula used is: If FixCentre is clear (default): f' = (f-fav)*FrequencyScale + FrequencyOffset where fav is the average of the highest and lowest frequencies. This means that the centre of the plot only shifts by FrequencyOffset, regardless of the scale used. If FixCentre is set: f' = f*FrequencyScale + FrequencyOffset Note that FixCentre was introduced in version 5.2.861; earlier versions assumed FixCentre set, so older overlay files will need adjustment.
Ymin | Lower end of current plot range; overwritten with lowest value in current range if AutoMin set
Ymax | Upper end of current plot range; overwritten with lowest value in current range if AutoMin set
Baseline | Baseline position.
Scale | Vertical scale factor used in plotting.


Bitmap Plot

This allows parameters such as the baseline and offset of the bitmap spectrum to be altered. For more information on altering these parameters, see the section on bitmap overlays.

Settings

Units | Horizontal Axis units.
IntensityUnits | Selects vertical units for plot. If you use "Arbitrary" or "Squared" here, then the plot will always be scaled to the full range available, unless AutoMin or AutoMax are not set
Colour | Colour for plot.
Hide | Set to hide this plot
ZeroValid | Set if zero in data is correct.
AutoMin | If set, Ymin automatically updated to minimum point in plot range
AutoMax | If set, Ymax automatically updated to maximum point in plot range
FixCentre | Apply FrequencyScale so that centre does not move if set
Xpixel1 | Horizontal Pixel corresponding to Frequency1
Xpixel2 | Horizontal Pixel corresponding to Frequency2
BaselinePixel | Vertical Pixel corresponding to BaselineIntensity
MaximumPixel | Vertical Pixel corresponding to MaximumIntensity
TopLeftX | Bounds of active region for plate scanning - see Tracing Plate Spectra
TopLeftY
TopRightX
TopRightY
BottomLeftX
BottomLeftY
BottomRightX
BottomRightY

Parameters

FrequencyOffset | Frequency offset used when displaying plot.(This is not the same as "Offset" in the constants window (and in the main window), which changes the frequency offset of the simulation.)
FrequencyScale | Scaling factor for frequency; see also FixCentre
Ymin | Lower end of current plot range; overwritten with lowest value in current range if AutoMin set
Ymax | Upper end of current plot range; overwritten with lowest value in current range if AutoMin set
Frequency1 | Frequency at Xpixel1.
Frequency2 | Frequency at Xpixel2.
BaselineIntensity | Intensity at BaselinePixel - normally 0.
MaximumIntensity | Intensity at MaximumPixel - normally 1.
PlateAngle | Angle of lines on plate with respect to vertical - see Tracing Plate Spectra


Molecule Types

PGOPHER currently allows the simulation of the rotational structure of three types of molecule:
  • Linear molecules
  • Symmetric tops
  • Asymmetric tops.
In addition vibrational structure can be simulated (without rotational structure) in an independent mode:
  • Vibrating molecules


Linear Molecules

See Making a linear molecule data file and the worked example: The Schumann-Runge Bands of O2 for an introduction to working with linear molecules.

PGOPHER will calculate Hund's cases (a) and (b) exactly, and will work with the other possible cases, though these typically require more work to set up.

Quantum Numbers

The following standard quantum numbers are used for linear molecules:
J | Total angular momentum excluding nuclear spin
F | Total angular momentum
S | Total electron spin angular momentum. This must be set for each State
N | J-S = Total angular momentum excluding nuclear and electron spin.
Λ | The projection of the electronic orbital angular momentum onto the z axis of the molecule. This must be set for each State
Ω | The projection of J onto the axis of the molecule; Ω = Λ + Σ where Σ is the projection of S onto the axis of the molecule.
Fn | The notation F1, F2, F3 ... is an alternative notation for the components of a multiplet, ordered by energy with with F1 being the lowest.

Symmetry

For molecules with a centre of symmetry, Symmetric must be set at the Molecule level, and gerade set true or false for each State. If Symmetric is false, then gerade is ignored. Note that it is not possible to have gerade and ungerade states in the same manifold.

The overall parity of a particular state is displayed or read as + or -. In addition the J adjusted parity, e or f, is also displayed in most circumstances if JAdjustSym is set True at the Mixture level. Either form can be used on input, and in addition 0 for + and 1 for - parity. Note that JAdjustSym should be set to False if simulating hyperfine structure as otherwise confusing results can be obtained.

Basis States

The basis states used by PGOPHER are Hund's case (a) though, as discussed under State, it will correctly calculate any Hund's case. The basis states are displayed as:
|Name J +- Omega>
where Name is the manifold and state name. If hyperfine structure is included in the calculation then F (and intermediate quantum numbers if there is more than one nucleus) is added to the end.

State Labels

The possible contents of state labels are:
Name | The manifold and state name
J | The J quantum number; not shown if ShowJ is false at the Molecule level
N | The N quantum number; not shown if ShowN is false at the Molecule level or all states are singlet states
Ω | The Ω quantum number; not shown if ShowOmega is false at the Molecule level (the default) or all states are singlet states
Fn | The component of the multiplet numbered from 1 in order of increasing energy; not shown if ShowFNumber is false at the Molecule level or all states are singlet states. This contains the same information as the Ω quantum number, so it does not usually make sense to show both.
e/f | The parity; not shown if Showef is false at the Molecule level.
 | Hyperfine quantum numbers are added at the end as required.
For example, a regular 2Π state may give the following label:
X v=0 7.5  7 F1e
where the name is X v=0, J = 7.5, N = 7 the parity is e and it is the F1 component (Ω = 1/2).

Note that the only guaranteed quantum numbers are the total angular momentum and symmetry; while PGOPHER tries to work out sensible assignments of the other quantum numbers there are cases where this is not possible, or the choice the program makes is not the same as other programs. This most commonly arises in the case of perturbations, or where S > J. The algorithm used can be adjusted by the EigenSearch and LimitSearch settings at the Manifold level; you may want to use LimitSearch = True as this can give more consistent results for the F1/F2... and N labels. Variations in the quantum number assignment does not affect other parts of the calculation, so the simulated positions and intensities are not affected by these considerations.

Branch Labels

The general format is ΔNΔJFn'Fn"p"(J) though, as for the state labels above some elements may be omitted:

ΔN | The change in the N quantum number expressed as a P, Q or R; not shown if ShowN is false at the Molecule level or all states are singlet states
ΔJ | The change J quantum number, expressed as P, Q or R.
Fn'Fn" | The upper and lower (spin-orbit) component number. If the two numbers are the same, only one number is shown.
p" | The lower state parity, expressed as e or f.
F',F | If nuclear spin is included, the upper and lower state hyperfine (F) quantum numbers are added.

For example, a 2Π - 2Π band may give the following transition:

rR1e(6.5)    A v=0 7.5  7 F1e - X v=0 6.5  6 F1e

implying ΔN = +1 ( r ), ΔJ = +1 ( R ), F1 - F1 (1), e-e, J" = 6.5.

Further Details

  • Making a linear molecule data file
  • Worked example: The Schumann-Runge Bands of O2.
  • The Hamiltonian
  • Molecule Settings
  • State Setting
  • Perturbation types and settings
  • Nucleus Settings
  • Transition Moment types
  • Samples


Making a Linear Molecule Data File

A worked example of the process is available for the The Schumann-Runge Bands of O2.
A simple linear molecule file can be generated from File, New, Linear Molecule. This initializes the program for a transition in a molecule between two vibronic states with a band origin of 1000 cm-1and B' = B'' = 1 cm-1. To adjust the constants (and set the type of vibronic transition) use select View, Constants. Most constants and settings can be left unchanged at their default values (and indeed should be unless you need a specific effect) but the ones that must normally be changed are adjusted as follows:
  1. If the molecule has a centre of symmetry (so g/u symmetry must be specified), click on "Linear Molecule" and set Symmetric = "True". You will also need to set the statistical weights in the same window. For diatomic molecules with nuclear spin I the values should be:

            I integral
             I half integral
    SymWt | (I+1)(2I+1) | I(2I+1)
    AsymWt | I(2I+1) | (I+1)(2I+1)
    (You will also find the ratio given as I/(I+1) with the (2I+1) common factor cancelled out; any scaling factor common to both weights does not change the spectrum, though the details of the partition function calculation changes.) Note that you should leave nNuclei at 0 unless you specifically want to calculate hyperfine structure.
  2. Adjust the ground state by clicking on the "v=0" entry under "Ground". The key things to set are:
    • Lambda (to Sigma+, Sigma-, Pi, Delta, ...)
    • Overall electronic Spin, S.
    • If the molecule is symmetric, specify g or u symmetry for the state with gerade (True for g, False for u).
    • The rotational constant, B
    • For non Σ states, the spin orbit coupling constant, A.
    • For S ≥ 1 LambdaSS (the spin-spin coupling constant) may also be important.
  3. Now switch to the upper state (click on the "v=1" entry under "Excited") . The key things to set here are:
    • The Origin
    • All the settings and values listed above under the ground state.
  4. The (spherical) transition moment may also need adjusting; the default is for a standard one photon electric dipole transition. See here for Raman or multiphoton transitions.
Note that to obtain assignments for the N and F1/F2... labels consistent with the literature, you may need to set LimitSearch to true - see under Ground and Excited for this example. This is now the recommended setting, and versions after 7.1.408 will use this setting for the manifolds set up with File, New, Linear Molecule, but may need setting for older files or manifolds created by other methods. Note this setting does not affect the calculated positions or intensities, but adjusts how PGOPHER assigns quantum numbers not otherwise used in the calculation.

For details of the Hamiltonian used, see the section on the Linear Molecule Hamiltonian.

Pure Rotational (Microwave) Spectra

For a pure rotational transition only do steps 1 and 2 as above and then:
  3. Right click on <Excited|mu|Ground> (the transition moments object) and select rename. Change the "Bra" entry in the rename dialog so that both entries read "Ground". (This converts the transition moment to act within the ground state, rather than connecting two different states.)
  4. The upper state can be deleted - right click on "Excited" and select delete.
  5. The default frequency range for the plot will still be in the infra-red; press the simulate button and then the All button to see a spectrum.


Worked Example - The Schumann-Runge Bands of O2

The key parameters required for a simulation of a linear molecule spectrum are summarized in Making a Linear Molecule Data File. The steps below show how to do this for part of the Schumann-Runge Bands of O2, which are responsible for atmospheric absorption around 190nm.

The Constants

The molecular parameters are required for any simulation; an excellent compilation of constants for diatomic molecules can be found in the NIST Chemistry web book at http://webbook.nist.gov/chemistry/. This database includes an electronic version of information in the book K.P. Huber and G. Herzberg, "Constants of Diatomic Molecules". A formula search on O2 with "Constants of diatomic molecules" selected yields many states; the Schumann-Runge Bands arise from the B3Σu- - X3Σg-. (The ν00 value can be a helpful guide here as to which band to use.) An abbreviated version of the table is presented below, with just the B and X state entries.
State | Te | ωe | ωexe | ωeye | Be | αe | γe | De | βe | re | Trans. | ν00
B 3Σu- | 49793.28 | 709.31 a Z | 10.65 a | -0.139 | 0.81902 a b | 0.01206 a | -5.56E-4 | 4.55E-6 c |  | 1.60426 | B ↔ X R | 49358.15 Z
X 3Σg- | 0 | 1580.193 Z | 11.981 d | .04747 | [1.4376766] e | 0.01593 f |  | [4.839E-6] e |  | 1.20752 |  |
The footnotes contain the source of the information, and also some additional constants that are often essential to obtaining a reasonable simulation including the the spin orbit coupling constant, A (required if the electron spin and orbital angular momentum are both non zero) and and the spin-spin coupling constant, λ (required if the electron spin is >= 1; LambdaSS in PGOPHER). The more important ones are referenced in the in the table above:
a) ωeye = -0.139, γe = -0.000556 from a low order fit to v ≤ 4.
b) The spin splitting constants at low v are λ = 1.5, -γ ~ 0.04 cm-1.
c) β =0.22E-6 for low v.
d) ωeze = -0.001273
e) Spin splitting constants λ0 = +1.9847511, γ0 = -0.00842536;
f) B1 = 1.42192

Vibrational Dependence of The Constants

Much of this information is concerned with the variation of constants with vibrational number, v. The numbers in the main table are not suitable for direct entry into PGOPHER, as they are equilibrium values. For each vibronic transition, with a particular v' and v" a separate set of constants is required. To choose a specific case we will simulate the B3Σu- v' = 2 - X3Σg- v" = 0 transition.

The band origin

The first step is to calculate the band origin. For this purpose the following expression must be evaluated for each vibrational state:
E(v) = Te + ωe(v + ½) − ωexe(v + ½)2 + ωeye (v + ½)3 + ωeze (ν + ½)4
For B3Σu- v' = 2 this gives:
Origin = 49793.28 + 709.31(2 + ½) − 10.65(2 + ½)2 + -0.139 (2 + ½)3 = 51497.82 cm-1.
Note that ωeze is not given, though footnotes not reproduced here indicate more information is available; G(v) values or band origins are normally the values tabulated in the primary literature.
For X3Σg- v" = 0 this gives :
Origin = 1580.193(0 + ½) − 11.981(v + ½)2 + 0.04747(0 + ½)3 + -0.001273(0 + ½)4 = 787.11 cm-1. Here ωeze is given.
The band origin for the transition is then 51497.82 - 787.11 = 50710.71 cm-1. Note that either the two separate origins can be entered, or the ground state origin can be left at zero and the difference entered for the excited state origin

The Rotational Constant

A similar process is required for the rotational constant; the equation is similar:
Bv = Be − αe(v + ½) + γe(v + ½)2 + ...
For B3Σu- v' = 2 this gives:
B2 = 0.81902 − 0.01206(v + ½) + -5.56E-4(v + ½)2 = 0.785395 cm-1.
For X3Σg- v" = 0 the [] indicates that the value is for v = 0 so no evaluation is necessary; a value for v = 1 is given in the footnote and references to sources for higher v are given in the full table.
The centrifugal distortion constants follow a similar equation:
Dv = De − βe(v + ½) + ...
though this can be omitted for a rough simulation.

Other Constants

The spin-orbit (A) and spin-spin (λ) constants are also often crucial to obtaining a reasonable simulation; in this case the spin-orbit constants are zero as both states are Σ, but the spin-spin constants are required as S = 1. Both are only given in the footnotes:
For B3Σu- v' = 2, λ = 1.5
For X3Σg- v" = 0, λ = +1.9847511
The spin-rotation constant, γ, is also given for these two states, though this is normally less important.

Setting up the simulation

There is now enough information to produce a basic simulation in PGOPHER:
  1. Click on File, New, Linear Molecule
  2. Select View, Constants
  3. Click on LinearMolecule. This sets the parameters common to all states, and the ones that need to be changed from the default values are:
    1. Symmetric = "True" (as the molecule has a centre of symmetry)
    2. AsymWt = 0 (This is the statistical weight of antisymmetric states, and the zero reflects the fact that half the levels of O2 are missing.
  4. Click on "v=0" and enter the information for X3Σg- v = 0
    1. Lambda = Sigma-
    2. S = 1 (the electron spin)
    3. gerade = True (the default, indicating g symmetry)
    4. B = 1.4376766
    5. LambdaSS (λ) = 1.9847511
  5. Click on "v=1" and enter the information for B3Σu- v = 2
    1. Lambda = Sigma-
    2. S = 1 (the electron spin)
    3. gerade = False (to indicate u symmetry)
    4. Origin = 50710.71
    5. B = 0.785395
    6. LambdaSS (λ) = 1.5
    7. To avoid confusion the "v=1" name should be changed; right click on "v=1" and select rename to do this. The name does not affect the calculation, but "v=2" would be the logical choice!
This should be enough to for a basic simulation; press the simulate button ( Simulate) and then the all button ( all) and you should see a simulation. With a small adjustment of the plot range it should look like this:
Basic O2 B-X 2-0 simulation

Checking and refining the simulation

It is important to check the simulation, not only because it is easy to make mistakes in the steps above, but also because there can be differences in the definitions of the constants used. Checking against tabulated line positions or published spectra is an effective check; note the facility for overlaying pictures (from a Journal for example) onto a simulation.
In this case a numerical spectra is available from the Harvard-Smithsonian Center for Astrophysics website (http://cfa-www.harvard.edu/), specifically the CfA Molecular Data. For oxygen, measured cross sections are available; follow the links Measured cross sections: Schumann-Runge bands of all isotopes, 179 nm - 203 nm, (2,0) band, 50050-50720 cm-1 . This gives a table of numbers which can be directly copied into PGOPHER; in your browser use "select all", "copy" and then in PGOPHER use "Overlays, Paste". The observed spectrum will appear above the simulation.
Following the instructions above gives a spectrum a reasonable simulation, and a good visual match can be obtained with a Lorentzian linewidth of 0.65 cm-1 (The "Lor" box on the main window toolbar). The width does not take effect in the simulation if the display is too compressed; zooming in to the portion around the band origin gives the following plot:
Region around band origin
Here the red line is the Harvard data and the black is the simulation. The most obvious discrepancy is on the right, and is most likely a transition from another band. The line positions are not absolutely perfect, but this could be improved by adding D and γ to the simulation and checking the literature for more accurate constants. The overall experimental spectrum also shows additional lines at the other end, probably from the (4-1) band. (An obvious exercise for the reader is to check this using by following the procedure above for this band.)


Fitting Example - The A-X transition in C3

In this example we will go through the process of analysing the spectrum shown below which is a fragment of the ultraviolet LIF spectrum of C3. This will highlight some of the considerations that go into assigning and simulating a spectrum.

This spectrum is available as C3AX.ovr. The near UV electronic spectrum of C3 is known to be dominated by an A1Πu - X1Σ+g transition, and a rotational constant of ~0.5cm-1 is typical for a molecule of this size. This gives us enough information to set up a basic data file, as summarized in Making a Linear Molecule Data File. Setting this up, with an origin of 27178 cm-1and a temperature of 30 K, remembering to set AsymWt = 0 as there are two equivalent spin zero nuclei gives the following simulation:

This shows a strong Q branch, which is clearly present in the experimental spectrum at around 27178 cm-1and the branch to the right looks as though it could be assigned - note the small gap immediately to the right of the Q branch, which is also visible in the spectrum. Using the Line Position Fitting procedure to assign the first few members of this branch, starting from the left gives the picture on the left on pressing "Test":

Good | Mis-assignment

Note the nice pattern of indicating marks at the top for the spectrum on the left, joining the positions of the observed and calculated line positions. The plot on the right shows a typical plot following a mis-assignment.

We can now try some fitting; it normally makes sense to start by fitting just a few parameters, so let's try the upper state origin and B:

5 Observations,  2 Parameters
Initial Average Error: 1.22114672883084
Predicted New Error:   0.34497794153667
Parameters:
  # Old                 New                 Std Dev   Change/Std Sens    Summary              Name
  1 27178               27178.5648453395    .2402865     2.3507  .017249 27178.56(24)         A v=1 Origin
  2 .5                  .474483017372344    .0048478    -5.2636  .000348 0.4745(48)           A v=1 B

These two parameters are well determined, and the plot shows a much better fit:

It also indicates one of the lines has been mis-assigned - the rightmost one. Note that holding the mouse over the tick mark at the top will show the source of the relevant observation, and right clicking will take you to the line in the linelist window for editing. Correcting the error and re-fitting gives an even better fit. The obvious additional parameter to float is the lower state B value, and the fit with these observations does indeed work:

5 Observations,  3 Parameters
Initial Average Error: 0.0229832236953073
Predicted New Error:   0.0229832236953073
Parameters:
  # Old                 New                 Std Dev   Change/Std Sens    Summary              Name
  1 .431694643119403    .431694642718755    .00863921    0.0000  1.99e-5 0.43169(864)         X v=0 B
  2 27178.9571892846    27178.9571892862    .033426      0.0000  .000766 27178.957(33)        A v=1 Origin
  3 .409391071646742    .409391071313973    .00714522    0.0000  1.55e-5 0.40939(715)         A v=1 B

Correlation Matrix
       1       2       3
  1   1.000
  2  -0.878   1.000
  3   0.999  -0.894   1.000

While the values are physically reasonable, note the large correlation of 0.999 between parameters 1 and 3, the two rotational constants, which is also reflected in the estimated errors for these parameters being quoted to 3, rather than 2 figures. This implies that there is only just enough information in the supplied data to determine the three parameters, and the derived values should be looked at with some suspicion.

The correlation can be broken by adding more lines, preferably from another branch. Looking at a wider range of the spectrum indicates several possible extra assignments, though there are clearly more lines in the experimental spectrum than the simulation, indicative of an additional band being present:

At this stage it is probably simplest to add several assignments, and then look for any that don't look quite right. Assigning 14 more lines that look about right leads to an improved fit:

19 Observations,  3 Parameters
Initial Average Error: 0.0585913375363875
Predicted New Error:   0.0585913375363875
Parameters:
  # Old                 New                 Std Dev   Change/Std Sens    Summary              Name
  1 .429544716011829    .42954471601421     .00101655    0.0000  2.03e-5 0.4295(10)           X v=0 B
  2 27178.9692155569    27178.969215557     .02145922    0.0000  .001953 27178.969(21)        A v=1 Origin
  3 .408140469786951    .408140469789101    .00094343    0.0000  1.93e-5 0.40814(94)          A v=1 B

Correlation Matrix
       1       2       3
  1   1.000
  2   0.227   1.000
  3   0.976   0.058   1.000

Note how the correlation between the the rotational constants (parameters 1 and 3) is no longer 0.999. At this stage the residuals window (View, Residuals) is perhaps the best way of looking for problems; compare the fit on the left with the one on the right where one assignment has been shifted to the other peak of a doublet (the pair at 27170.5 cm-1):

Note the plot on the right has a bigger vertical scale, and one point, the mis-assigned peak, stands out. For a good fit, the residual fit should look completely random, and a useful trick to indicate issues is to try different horizontal scales. The plot above are against upper state J, and the errors are clearly bigger at higher J. This might be a cue to try centrifugal distortion (D), though in this case note that the f parity levels (minus signs in circles) are above the axis and the e (+) levels are below the axis. This is a classic symptom of lambda doubling, and allowing q in the upper state to float gives a much improved fit, and the residual plot now has no obvious trend:

19 Observations,  4 Parameters
Initial Average Error: 0.0301742415918127
Predicted New Error:   0.0301742415918126
Parameters:
  # Old                 New                 Std Dev   Change/Std Sens    Summary              Name
  1 .430438760425889    .43043876044772     .00053537    0.0000  7.85e-6 0.43044(54)          X v=0 B
  2 27178.9607318607    27178.9607318605    .01110167    0.0000  .000754 27178.961(11)        A v=1 Origin
  3 .409363044507011    .409363044540297    .0005115     0.0000  7.47e-6 0.40936(51)          A v=1 B
  4 -.00117830836843453 -.00117830840808154 .00016929    0.0000  1.49e-5 -1.18(17)e-3         A v=1 q

Correlation Matrix
       1       2       3       4
  1   1.000
  2   0.201   1.000
  3   0.972   0.025   1.000
  4  -0.209   0.095  -0.313   1.000

If you don't float the right parameters there are various possible indications. If you float p (the other commonly used lambda doubling parameter) instead of q then PGOPHER clearly detects this is not determined:

19 Observations,  4 Parameters
Initial Average Error: 0.0620577920690341
Predicted New Error:   0.0620577920690341
**** 1 combinations of parameters not floated ****
Parameters:
  # Old                 New                 Std Dev   Change/Std Sens    Summary              Name
  1 .429658997291519    .429658997292251    .00107669    0.0000  1.61e-5 0.4297(11)           X v=0 B
  2 27178.9680780115    27178.9680780115    .02272882    0.0000  .001551 27178.968(23)        A v=1 Origin
  3 .408250076142484    .408250076143445    .00099924    0.0000  1.54e-5 0.40825(100)         A v=1 B
  4 0                   0                   NAN             NAN  INF     0 NAN                A v=1 p

Correlation Matrix
       1       2       3       4
  1   1.000
  2   0.227   1.000
  3   0.976   0.058   1.000
  4     Nan     Nan     Nan     Nan

Singular Value Decomposition
                        X v=0 B  A v=1 Origin       A v=1 B       A v=1 p
  1 606.33631228  -.68905037825 .005563083443 .724692092088 0
  2 42.9863049189 .724633451607 -.00956828901 .689068072586 0
  3 2.73019060661 .010767406567 .999938748098 .002561836805 0
  4 0             0             0             0             1

This case is particularly clear, in that the singular value decomposition has indicated exactly which parameter is not determined - the rows in the singular value decomposition correspond to linear combinations of parameters, the the lowest row indicates the combination that is least well determined. In this case it is clearly p, and indeed inspection of the Hamiltonian will indicate that p requires non zero spin.

Floating D in either state gives a rather better behaved fit, though the error bar is larger than the parameter, indicating it should be fixed at zero:

  4 -3.3058739831523e-7 -3.3059827872211e-7 3.3351e-6    0.0000  8.77e-8 -3(33)e-7            A v=1 D

Adjusting the temperature to 50 K and the (Gaussian) linewidth to 0.25 cm-1 gives an excellent simulation of most of the spectrum, though there is clearly an additional band present:

The final file is available as c3fitfinal.pgo. To see how to fit the other band in the spectrum simultaneously, see the next page.


Multiple State Fitting Example - The A-X transition in C3

In this example we will show some of the considerations required when fitting multiple states simultaneously, particularly with regards to the putting the line lists together for fitting. We start where the single state fit in Fitting example - the A-X transition in C3 finished by adding another state. The experimental spectrum does not seem to show the presence of another Q branch, suggesting a Σ-Σ transition should be added. If we assume the lower state is the same for both transitions, then this can easily be generated by right clicking on the upper state, selecting "Copy with linked items" and then "Paste". (There is more than one way to structure the addition of a state - see the "Different Manifolds" section below for a discussion of this.) Manually adjusting the origin of the new state to 27166.8 gives a promising simulation:

To obtain this appearance the colour of the new state has been set to "Navy" and the Π state to "Green"; the file is saved as multc3fitinital.pgo. Now, while the simulation is quite good, note that the indicating marks at the top show a very poor fit, and fitting with the old line list will fail. Deleting the line list and starting again would work fine, but there are better ways to do this which we we will now explore.

The origin of the problem introduced is best demonstrated by looking in the Energy Level Plot Window. Select "View, Levels", and for the best plot put the upper state rotational constant in the "Subtract" box, select the upper state manifold at "State/Manifold/Molecule", select line under "Plot Type" and both the buttons under "Observed". Pressing "All" should give a view like this:

If you have trouble setting this up, the settings are saved in multc3fitinital.pgo.This is a plot of energy against J, but with 0.408J(J+1) subtracted from the energy, so simple states will give horizontal lines. The two excited states are clearly visible on this plot as the green and blue horizontal lines, and the circles give the observed energy levels calculated from the line list by adding the calculated lower state energy. The vertical lines join the calculated to the observed energy levels, and it is clear from this that about half some of the assignments are to the wrong energy level. This is because the line list constructed specifies states in terms of J, symmetry (+ or -) and eigenvalue number, and we have just added a state below the previous one, increasing the eigenvalue number. There are various ways of dealing with this and we work through several possibilities here, all of which work for this case, but may not in more complicated cases.

Different Manifolds

The first possibility is to put the new state in a different manifold from the initial Π state. The original line list will then work, as the manifold is specified for each state. The disadvantage of this is that perturbations between states can't be simulated, and states close together in energy as these are may well interact. The required set in is shown in the right hand side below, with the original set up on the left:

Setup with two states (Sigma, Pi) in a single excited state manifold (A) | Setup with each state in its own manifold (A for Pi, Asigma for Sigma)

Converting between the two is straightforward:

  • Left to right: right click on A, select "Copy with Linked Items", right click on A again and select "Paste" to duplicate the upper manifold. Compete the process by deleting the one state from each of the excited state manifolds and renaming as required.
  • Right to left: right click on Sigma, select "Copy", right click on A and select "Paste" to copy the Sigma state to the A manifold. Then right click on <Sigma|T(1)|v=0>, select "Copy", right click on <A|mu|X> and select "Paste" to copy the transition moment. The Asigma manifold can then be deleted.
Note that a Transition Moment from the ground state is required for both states (here <Pi|T(1)|v=0> and <Sigma|T(1)|v=0>), and a separate Transition Moments object (here <A|mu|X>and <Asigma|mu|X>) is required for each connected pair of manifolds. When the name of a manifold is changed the line list will need adjustment using one of the methods described below.

Using a separate line list file

For the most flexible handling, the line list should be put in a separate text file and edited with a separate text editor, the The Slave Editor included with PGOPHER or other text editor of your choice. Use of a separate editor is more flexible than editing in the line list window (undo/redo, search and replace), and it is easy to combine separate sources of data into a combined fit. To generate a file use "More, Save to File" in the Line List Window, and then use the Log Window to select the file and fit.

State Renumbering

The first option in fixing the line list is simply to change the eigenvalue number that are wrong in the new simulation set up. In the line list window this will be the #' column, and in this case the values for the odd J levels need increasing by 1. This change could be done manually, but a further change may need making if a state is added or removed, so we use the indexoffsets directive. To use this we put the line list in a separate file. Select "More, Save to File, In Standard Format" in the Line List Window window and choose a suitable filename, say APi.lin. Now go to the Log Window, check than the file you have just created is shown and press "Edit" to edit the file. To add the required offsets add:

upperindexoffsets 1 0

at the start of the file and then save the changed file. (If you use the the Slave Editor included with PGOPHER this step is not necessary as it a save is forced on each PGOPHER fit.) You can check this is right by hitting the reload button in the Energy Level Plot Window and the upper state should now show no long vertical lines, indicating a correct assignment:

State Searching

As an alternative the quantum numbers given in the comments at the end of each line can also be used to work out the eigenvalue number . In the Line List Window this can be forced for an individual line by clearing the eigenvalue number (#' and #") columns or in a line list file by setting the eigenvalue number to 0. The symmetry (S', S") can also be similarly left unset, though a negative value, rather than 0 must be used in the line list file to flag this. To force this for the entire file use:

upperindexoffsets search

to work out the eigenvalue numbers or

upperindexoffsets searchall

to work out both symmetry and eigenvalue number. Alternatively:

UpperState Pi

can be used to indicate that the eigenvalue numbers are to be taken within the state. Any of these methods will work fine in many cases, though where the quantum numbers are ambiguous, typically in the presence of strong state mixing, the quantum numbers assigned can change as the parameters change. In fitting the quantum number assignments for any given state can flip between successive fit cycles.

Notes on Standard Line List Format

A few lines of the line list file are shown below; see Line List Input File Format for a detailed explanation of each field.

LinearMolecule   A   1  1  1   X   0  0  1    27179.774 1 .03172      0 :     R(0) : A Pi  1 e - X v=0  0 e : LDS751.dr b - C3AX.ovr
LinearMolecule   A   3  1  1   X   2  0  1    27181.277 1 .05494      0 :     R(2) : A Pi  3 e - X v=0  2 e : LDS751.dr b - C3AX.ovr
LinearMolecule   A   5  1  1   X   4  0  1    27182.625 1  .0589      0 :     R(4) : A Pi  5 e - X v=0  4 e : LDS751.dr b - C3AX.ovr
...

Notes on this file:

  • Most of the values after the "Std Dev" column, the last column of all 1's, are not used in fitting but are just shown in the fit log. The column giving the conventional quantum numbers ("A Pi 1 e - X v=0 0 e" is only used if state searching is invoked as described above. The column headed .03172 contains the line intensities from the simulation for information, but is never used in the fit.
  • The layout is not critical except where the simple quantum numbers on the end are used (e.g. "A Pi 1 e - X v=0 0 e")
  • The molecule and manifold fields are optional; if it is not clear which should be used then defaultmolecule, uppermanifold or lowermanifold directives can be used:
UpperManifold A
1  1  1  0  0  1 27179.774 1
3  1  1  2  0  1 27181.277 1
5  1  1  4  0  1 27182.625 1
...

Branch Format

An alternative way of specifying transitions is to use traditional branch notation, such as P(3), implying J' = 2, J" = 3. Such a file can be generated from the Line List Window using "More, Save to File, In Branch Format". The resulting file (in APibranch.lin) looks like this:

UpperState Pi
R(0)    27179.774 1
R(2)    27181.277 1
R(4)    27182.625 1
...
For clarity, the intensity and comment fields have been removed. The "UpperState Pi" is required to identify which of the two possible upper vibronic states is required. defaultmolecule, uppermanifold, lowermanifold or lowerstate directives might also be required if there is more than one possibility for each.

Simple Format

It is also possible to use the conventional quantum numbers to specify the transitions. Such a file can be generated from the Line List Window using "More, Save to File, In Simple Format". The resulting file (in APisimple.lin) looks like this:

NQN 2
UpperState Pi
 1 e  0 e    27179.774 1
 3 e  2 e    27181.277 1
 5 e  4 e    27182.625 1
...
For clarity, the intensity fields have been removed. The "UpperState Pi" is required to identify which of the two possible upper vibronic states is required. defaultmolecule, uppermanifold, lowermanifold or lowerstate directives might also be required if there is more than one possibility for each. The quantum numbers here are J' parity' J" parity"; see Simple Format for the possible formats of the quantum numbers. Note than NQN, the number of quantum numbers present for each state, must be specified.

Multiple State Fit

With the Π state line list saved to a separate file, the line list window can be cleared and an independent fit of the Σ-Σ transition can be performed using the standard method. If trying this for yourself, you will need to fix all the Π state parameters, and remove q from the Σ state. When right clicking on the simulation you may end up selecting both Σ and Π state lines; you will have to check for any Π state lines manually and delete them. The resulting file is available in multc3fitsigma.pgo. A fit to both states simultaneously can now be done by saving the line list for the Σ state to a separate file in, say simple format (ASigma.lin) looking like this:
NQN 2
 1 e  2 e    27164.765 1
 3 e  4 e    27163.026 1
...

To use this file with one of the previous Π state files set up a separate file, say Aboth.lin, with the following format:

Colour Green
Include APisimple.lin

Colour Navy
UpperState Sigma
Include ASigma.lin

The include statements simply read the contents of the given file. All the information could be put in one file, or split in any other way as convenient. The colour directives set the colour of the points in the Residuals Window and the indicating marks at the top of the main window. The final fit () gives an excellent overall simulation:


Linear Molecule Hamiltonian

The linear molecule Hamiltonian used by PGOPHER is designed to be absolutely standard. IUPAC has produced a set of recommendations for fine and hyperfine parameters (Hirota et al, 1994) which are followed by PGOPHER as far as possible. The basic form ignoring centrifugal distortion is the sum of the terms in the following terms in the table:
For all states |  | Rotation
S > 0 |  | Spin-Rotation
Λ > 0, S > 0 |  | Spin-Orbit
S > 1/2 |  | Spin-Spin
S > 1 |  | Spin-Rotation
Λ > 0, S > 1 |  | Spin-Orbit
S > 3/2 |  | Spin-Spin
Π states |  | Λ doubling
Π states, S > 0 |  | Λ doubling
Π states, S > 1/2 |  | Λ doubling
Δ states | See Λ type doubling for Δ and higher states.

See the individual sections below for a more detailed discussion. Note that any operators not listed above (such as alternate forms of operators or higher powers of centrifugal distortion) can be generated using a perturbation diagonal in electronic state.

The Rotational Operator

The standard way of writing the rotational kinetic energy is in terms of the angular momentum excluding spin, N :

though formally, it should only involve the rotational angular momentum of the nuclear framework, R and thus be written:

PGOPHER can use either form, as controlled by the "RSquaredH" flag at the molecule level. This flag affects many of the terms in the Hamiltonian; for all the linear molecule terms read [image] for [image] if RSquaredH=True; to follow the IUPAC recommendations the [image] form must be used.

The reason both forms are in use is that each has some problems in evaluation, as discussed by Brown et al, 1987. Strictly the second form is correct, but full evaluation is not possible because of the terms involving L . Consider evaluating the [image] term:

The diagonal terms are:

which becomes:

The [image] term must be discarded, leaving:

which is the form used. The equivalent expression in [image] is:

i.e. simply an additional Λ2 term compared to [image] . The main practical difference is a shift in the effective band origin of BΛ2 (so they are identical for Σ states), but it is not clear that one is any more correct than the other as both ignore the term [image] . This latter term is only likely to be worth considering if isotope shifts of vibrational band origins are required, and the former leads to different definitions of the band origin, so it is worth checking all published constants to see which is used. The matrix elements of higher powers of [image] or [image] are evaluated by evaluating the matrix of [image] or [image] as above and taking the appropriate power of the matrix. This means that the RSquaredH flag will cause small changes which will affect most of the constants so, for example, B will change by 2Λ2D.

Note that off-diagonal terms:

are normally discarded in both forms of the Hamiltonian as they only connect completely different electronic states so they are not normally important. They can be included as a perturbation if required (see Luncouple)

Spin Orbit

where:

For states with S > 1 an additional term is required:

eta Lz Sz (Sz^2 -1/5(3S^2-1))

as described in Brown et al, 1981.

Spin-Spin

For S > 1/2 the spin-spin interaction can contribute:

is also in use. The term in θ only contributes for states with S > 3/2; again see references in Brown et al, 1987. Read [image] for [image] if RSquaredH=True.

Spin-Rotation

If RSquaredH=True, read [image] for [image] but note the [image] term is unchanged. For S > 1 an additional term is also required:

-sqrt(70/3) gammaS T^2_0{T^1(J), T^3(S)}

This form is from Cheung et al, 1984. It is perhaps clearer in terms of its (only) Hund’s case (a) matrix elements as given by Brown and Milton, 1976:

Λ type doubling for Π states

The IUPAC form is:

Of these terms q will contribute for any Π state, p requires S > 0 also and o will only contribute for S > 1/2. The e±2iφ terms are shorthand to ensure that the Λ-doubling operators only connect the two halves of a Π state:

If RSquaredH=True, read [image] for [image] in the centrifugal distortion terms, and leave the other operators unchanged. There are alternative Λ doubling parameters, in use including:

This arises naturally from expressing the Hamiltonian in terms of J, rather than N as can be seen by making the replacement N+- = J+- - S+- :

See Brown and Merer, 1979 for a discussion of this. This also explains why under some circumstances only p + 2q is determined rather than p and q individually. (A term equivalent to this can be generated using perturbations; see the CrO sample file for an example of this.)

Λ type doubling for Δ and higher states

Λ doubling in Δ states is discussed by Brown et al, 1987. They propose two different forms, a case (b) form:

and a case (a) form:

The case (a) form is programmed into PGOPHER with the parameters m̃Δ = o, ñΔ = oD, õΔ = oH, p̃Δ = p and q̃Δ = q. The case (b) form, and centrifugal distortion of either can be generated using perturbation objects, and Λ doubling operators for higher values of Λ can also be generated in this way.

References

  • "Spin-dependent interactions for linear molecules in Σ states of quartet and higher multiplicity", J. M. Brown and D. J. Milton, Mol. Phys, 31, 409 (1976).
  • "Lambda-type doubling parameters for molecules in Π electronic states of triplet and higher multiplicity", J. M. Brown and A. J. Merer, J. Mol. Spec., 74, 488 (1979).
  • "Higher-order fine structure of the a4Πu state of O2+. J. M. Brown, D. J. Milton, J. K. G. Watson, R. N. Zare, D. L. Albritton, M. Horani and J Rostas, J. Mol. Spec., 90, 139 (1981).
  • "Λ-type doubling parameters for molecules in Δ electronic states", J. M. Brown, A. S-C. Cheung and A. J. Merer, J. Mol. Spec., 124, 464 (1987).
  • "Fourier transform spectroscopy of CrO: Rotational analysis of the A5Σ – X5Π (0,0) band near 8000 cm–1.", A. S-C. Cheung, W. Zyrnicki and A. J. Merer, J. Mol. Spec., 104, 315 (1984).
  • "Symbols for fine and hyperfine parameters", E. Hirota, J. M. Brown, J. T. Hougen, T. Shida and N. Hirota, Pure & Appl. Chem., 66, 571 (1994).


Linear Molecule

These are the settings for a linear molecule as a whole, i.e. those common to all states (but perhaps different for different isotopologues).

Settings

nNuclei | Number of nuclei to calculate hyperfine structure for. Leave this at 0 unless you want the hyperfine structure simulated.
Jmin | Minimum J to use in calculation - set to -1 (default) to use value from the species.
Jmax | Maximum J to use in calculation - set to -1 (default) to use value from the species.
Colour | Colour - set to "None" to take value from elsewhere as explained in Determining Colours and J ranges.
JAdjustSym | If set, energy level plots and Fortrat diagrams will take account of the alternation in symmetry with J. For linear molecules a given energy level will typically alternate between + and - parity with J (hence the e/f notation). Note that this should be set to False if simulating hyperfine structure as otherwise confusing results can be obtained.
BlockMatrix | Set to force check of Hamiltonian matrix for factorization into blocks before diagonalization. If blocks are found, these are diagonalized separately, ensuring states that have no connecting matrix elements are not accidentally mixed if the eigenvalues happen to be very close. In principle, if full use is made of symmetry and states are separated into separate manifolds as appropriate, this should not be necessary but can easily happen if selected terms in the Hamiltonian are zero or interactions between states are omitted.
Symmetric | Set true if the molecule has a centre of symmetry, and g or u must be specified for individual states.
SymWt | Statistical weight of symmetric rotational levels. Ignored if no centre of symmetry. See Making a linear molecule data file for how to set this up. Note that any nucleus for which hyperfine structure is to be calculated should not be included in calculating the statistical weights.
AsymWt | Statistical weight of asymmetric rotational levels. Ignored if no centre of symmetry.
RSquaredH | Set to use the R2 Hamiltonian rather than the default N2 form.
ShowJ | Show J in state label.
ShowOmega | Show Omega in state label.
ShowN | Show N in state label.
ShowFNumber | Show F Number in state label.
Showef | Show e/f symmetry in state label.

Parameters

Abundance Abundance of this isotope; default is 1


Linear Molecule State

This contains the rotational constants and other information specific to each state within a linear molecule. Note that PGOPHER will calculate Hund's cases (a) and (b) exactly. Other cases can be handled, but typically require more work to set up. For Hund's case (c), for example it may make sense to treat the various components of a state separately, which is possible by setting up multiple copies of the state and making use of the OmegaSelect and/or ParitySelect settings. For example the two halves of a 2Π state can be treated separately by setting up two 2Π states, one with OmegaSelect = ½ and one with OmegaSelect = 3/2.

Settings

Colour | Colour - set to "None" to take value from elsewhere as explained in Determining Colours and J ranges.
RveSelect | Only include given rovibronic symmetry - for normal use set to 'all'
S | Electron Spin
Lambda | Electronic angular momentum - use Sigma-, Sigma+, Pi, Delta, Phi, Gamma, H, I or a numerical value
gerade | True for gerade (g) states, false for ungerade (u) states; ignored if the molecule is not symmetric as specified by the Symmetric setting for the molecule.
OmegaSelect | Set to all for normal use; set to a specific value to restrict the state to a specfic value of Ω

Parameters

Origin | State Origin. |
Width | Linewidth (rotation independent) for state. |
B | Rotational constant. | Rotation
A | Spin-orbit coupling constant. | Spin-Orbit
LambdaSS | Spin - spin coupling constant (=1.5*ε). | Spin-Spin
o | Spin-spin coupling constant giving lambda doubling for Omega = 0 states. | Λ Doubling
theta | Higher Order Spin-Spin interaction (S>=2 only). | Spin-Spin
Gamma | Spin rotation coupling constant. | Spin-Rotation
p | Lambda doubling constant. | Λ Doubling
q | Lambda doubling constant. | Λ Doubling
D | Quartic centrifugal distortion. | Rotation
H | Sextic centrifugal distortion. | Rotation
L | J8 centrifugal distortion. | Rotation
M | J10 centrifugal distortion. | Rotation
PP | J12 centrifugal distortion. (Not P to avoid confusion with p.) | Rotation
AD | Centrifugal distortion of A. | Spin-Orbit
LambdaD | Centrifugal Distortion of Lambda. | Spin-Spin
LambdaH | J4 Centrifugal Distortion of Lambda. | Spin-Spin
oD | Centrifugal distortion of o. | Λ Doubling
oH | J4 Centrifugal distortion of o. | Λ Doubling
oL | J6 Centrifugal distortion of o. | Λ Doubling
pD | Centrifugal distortion of p. | Λ Doubling
pH | J6 Centrifugal distortion of p. | Λ Doubling
pL | J8 Centrifugal distortion of p. | Λ Doubling
qD | Centrifugal distortion of q. | Λ Doubling
qH | J6 Centrifugal distortion of q. | Λ Doubling
qL | J8 Centrifugal distortion of q. | Λ Doubling
gammaD | Centrifugal distortion of gamma. | Spin-Rotation
gammaH | J6 Centrifugal distortion of gamma. | Spin-Rotation
gammaL | J8 Centrifugal distortion of gamma. | Spin-Rotation
eta | Additional spin orbit term for quartet and higher states | Spin-Orbit
gammaS | Additional spin rotation term for quartet and higher states | Spin-Orbit


Linear Molecule Nucleus

If the parent molecule has nNuclei non zero, then each state will have nNuclei LinearNucleus objects. (In principle the Spin and AsNext properties should be set at the molecule level, but in fact have been implemented at the state level, and any change in these two properties is copied to all the states in the molecule.) The following coupling scheme is normally used:
F1 = J1 + I1; F2 = F1 + I2; ... F = Fn-1 + In
though at alternative scheme must be used for equivalent nuclei, as described under the AsNext setting. Note that only nuclei not explicitly simulated should be included in calculating the SymWt and AsymWt statistical weights.

Settings

Spin | Nuclear spin.
AsNext | Set to indicate that this nucleus is equivalent to the following nucleus. This is required for molecules with a centre of symmetry, where nuclei not on the centre of symmetry must occur as equivalent pairs. In these circumstances all parameters are taken from the second of the two nuclei, and the modified coupling scheme: I12 = I1 + I2; F = J + I12 is used. This setting can also be used for molecules without a centre of symmetry, in which case the alternate coupling scheme is used but the nuclei are not forced, or even required, to be identical.

Parameters

a | Nuclear spin - orbit interaction (I.L).
b | Nuclear spin - electron spin (I.S). Note that b = bF - c/3.
c | Nuclear spin - electron spin dipole dipole interaction diagonal in Lambda.
d | Nuclear spin - electron spin dipole dipole interaction off diagonal in Lambda by 2.
eQq0 | Nuclear quadrupole coupling constant diagonal in Lambda.
eQq2 | Nuclear quadrupole coupling constant off diagonal in Lambda by 2.
cI | Nuclear spin rotation (I.J).
aJ | Centrifugal distortion of nuclear spin - orbit interaction (I.L). (Outline implementation)
bJ | Centrifugal distortion of nuclear spin - electron spin (I.S). (Outline implementation)
cJ | Centrifugal distortion of nuclear spin - electron spin dipole dipole interaction diagonal in Lambda. (Outline implementation)
dJ | Centrifugal distortion of nuclear spin - electron spin dipole dipole interaction off diagonal in Lambda by 2. (Outline implementation)
eQq0J | Centrifugal distortion of nuclear quadrupole coupling constant diagonal in Lambda. (Outline implementation)
eQq2J | Centrifugal distortion of nuclear quadrupole coupling constant off diagonal in Lambda by 2. (Outline implementation)


Linear Molecule Perturbation

There will be one of these for each perturbation parameter in each state.

Settings

Nucleus | Index, starting from 1, of the nuclear spin involved in perturbation; 0 (the default) for those not involving a nuclear spin.
SymSelect Possible values are all (normal use), e_only (only affect e levels) and f_only (only affect f levels). Was ParitySelect in previous versions.
ScalePrev | Scale factor with respect to preceding perturbation
Op Perturbation type. See below for possible values. If only Npower and/or Srank, Scomp are needed, use Op = Luncouple with n = 0.
n | Power of operator in perturbation.
Npower Power of N (for centrifugal distortion of perturbation). Perturbation operator is ½[N2,Op]+. If RSquaredH is set, N is replaced by R.
OmegaSelect | Set to all (the default) for normal use; set to a specific value to restrict the perturbation to a specific value of Ω. Note that the current implementation applies the constraint to both connected wavefunctions, so is only useful for ΔΩ = 0 matrix elements.
Srank If Srank < 0: adds a term S±Scomp and changes the power of J or N. See the Op details below.
If Srank > 0: spherical tensor operator for S with overall rank Srank and component Scomp.
Note that both of these are only implemented for Op = Luncouple, Suncouple and LNuncouple.
Scomp

Parameters

Value Size of perturbation.
The matrix elements are described individually below, but a general comment on specifying the value of the parameter is appropriate. In a Hund’s case (a) basis there are four related matrix elements of any operator:

PGOPHER will essentially take the one in the top left as the parameter, ordering the matrix such that Λ' > Λ and Λ' > 0 (or Σ' > Σ and Σ' > 0 if Λ' = Λ or S' > S if all the other quantum numbers are equal). The two rows of the matrix can be related using the reflection operator σv:

The columns can be related by requiring the Hamiltonian to be symmetric.

Perturbation Types

LS
Spin orbit coupling, with the Ω dependence from the Wigner-Eckart theorem; see for example Lefebvre-Brion and Field, 2nd Edition Equation 3.4.36:

The perturbation parameter is the reduced matrix element [image] arranged so that Λ' > Λ and Λ' > 0 (or S' > S if Λ' = Λ). It is perhaps more normal to quote the value including the 3j symbol, but this is ambiguous when the spin-orbit operator connects more than one component of a pair of states. Some common non-zero values of the 3j symbol are tabulated below.

S. | Σ' | S | Σ
½ | -½ | ½ | ½
½ | ½ | ½ | ½
1 | 0 | 0 | 0
1 | 1 | 0 | 0
1 | 1 | 1 | 1
1 | 1 | 1 | 0
Luncouple
         J+nL-n+J-nL+n
 L uncoupling; Using the default n = 1 this can be used to model the [image] term omitted from the rotational operator. The perturbation parameter is the value of the matrix element:

for Λ > 0 with the matrix element of L- derived by symmetry
If Srank < 0 the operator becomes: J+n+ScompS+-ScompL-n+J-n+ScompS--ScompL+n
Suncouple
         J+nS-n+J-nS+n S uncoupling. (Note that this term with n = 1 is present in the normal Hamiltonian within a single vibronic state; it only makes sense to add it as a perturbation between states.) It checks for ΔΛ = 0 and |ΔΣ| = n, but does not check for ΔS = 0. S is taken from the Ket. (Note this form is not useful with Srank < 0).
Homog
Simple homogeneous perturbation with ΔΩ = 0 selection rule; Use only if one of the other types is not appropriate.
NS
N.S (n is ignored)
RS
R.S (n is ignored)
LNuncouple
         N+nL-n+N-nL+n Similar to Luncouple, but with J replaced by N.
If Srank < 0 the operator becomes: N+n+ScompS+-ScompL-n+N-n+ScompS--ScompL+n
aL
         aI.L
 Nuclear Spin Orbit perturbation
e
Nuclear magnetic dipole perturbation
eQq1
Nuclear electric quadrupole perturbation

Rotational Hamiltonian expressed as perturbations

The standard rotational Hamiltonian can be expressed entirely in terms of diagonal perturbations, as shown in the table below. The scale factor indicates the factor the standard parameter must be multiplied by to use the given perturbation. This is useful as it allows additional terms to be added, such as higher powers of the centrifugal distortion terms or alternative forms of the lambda doubling to be added. Note that the "Op" is irrelevant if n = 0, but Luncouple should be used in this case.
Name
 Operator
 Op
         n
         Npower
         Srank
         Scomp
         Scale
Factor
 Notes
B N2
 (Luncouple) 0 2 0 0 1 N2 is replaced by R2 if RSquaredH is set
D | N4 | (Luncouple) | 0 | 4 | 0 | 0 | -1 | N4 is replaced by R4 if RSquaredH is set
H | N6 | (Luncouple) | 0 | 6 | 0 | 0 | 1 | N6 is replaced by R6 if RSquaredH is set
L | N8 | (Luncouple) | 0 | 8 | 0 | 0 | 1 | N8 is replaced by R8 if RSquaredH is set
M | N10 | (Luncouple) | 0 | 10 | 0 | 0 | 1 | N10 is replaced by R10 if RSquaredH is set
PP | N12 | (Luncouple) | 0 | 12 | 0 | 0 | 1 | N12 is replaced by R12 if RSquaredH is set
A see above
 LS 1 0 0 0 Scale factor calculated to give LzSz operator form
AD see above
 LS 1 2 0 0 Scale factor calculated to give ½[N2,LzSz]+ operator form
gamma N.S
 NS 1 0 0 0 1
gammaD | ½[N2,N.S]+ | NS | 1 | 2 | 0 | 0 | 1 | N2 (only) is replaced by R2 if RSquaredH is set
gammaH | ½[N4,N.S]+ | NS | 1 | 4 | 0 | 0 | 1 | N4 (only) is replaced by R4 if RSquaredH is set
gammaL | ½[N6,N.S]+ | NS | 1 | 6 | 0 | 0 | 1 | N6 (only) is replaced by R6 if RSquaredH is set
LambdaSS 6-½(3Sz2-S2) (Luncouple) 0 0 2
 0 (8/3)½
LambdaD ½[N2,6-½(3Sz2-S2)]+ (Luncouple) 0 2 2
 0 (8/3)½ N2 (only) is replaced by R2 if RSquaredH is set
LambdaH ½[N4,6-½(3Sz2-S2)]+ (Luncouple) 0 4 2
 0 (8/3)½ N4 (only) is replaced by R4 if RSquaredH is set
theta 280-½(35Sz4-20S2Sz2+25Sz2-6S2+3S4) (Luncouple) 0 0 4
 0 (35/18)½

Lambda doubling for Π states

For all of these operators, the N is replaced by R if RSquaredH is set; the N+ and N- operators are not changed.

Name
 Operator
 Op
         n
         Npower
         Srank
         Scomp
         Scale
Factor
o | S+2L-2+S-2L+2 | LNuncouple | 2 | 0 | -1 | -4 | ½
oD | ½[N2,S+2L-2+S-2L+2]+ | LNuncouple | 2 | 2 | -1 | -4 | ½
oH | ½[N4,S+2L-2+S-2L+2]+ | LNuncouple | 2 | 4 | -1 | -4 | ½
oL | ½[N6,S+2L-2+S-2L+2]+ | LNuncouple | 2 | 6 | -1 | -4 | ½
p | N+S+L-2+N-S-L+2 | LNuncouple | 2 | 0 | -1 | -2 | -½
pD | ½[N2,N+S+L-2+N-S-L+2]+ | LNuncouple | 2 | 2 | -1 | -2 | -½
pH | ½[N4,N+S+L-2+N-S-L+2]+ | LNuncouple | 2 | 4 | -1 | -2 | -½
pL | ½[N6,N+S+L-2+N-S-L+2]+ | LNuncouple | 2 | 6 | -1 | -2 | -½
q | N+2L-2+N-2L+2 | LNuncouple | 2 | 0 | 0 | 0 | ½
qD | ½[N2,N+2L-2+N-2L+2]+ | LNuncouple | 2 | 2 | 0 | 0 | ½
qH | ½[N4,N+2L-2+N-2L+2]+ | LNuncouple | 2 | 4 | 0 | 0 | ½
qL | ½[N6,N+2L-2+N-2L+2]+ | LNuncouple | 2 | 6 | 0 | 0 | ½

An alternative form for these operators, used in some circumstances, can be obtained by replacing LNuncouple with Luncouple. This has the effect of replacing N+ and N- with J+ and J- throughout. For example the p + 2q is the determinable constant in some circumstances, and corresponds to the operator ½(J+S+L-2+J-S-L+2). This can be created from the perturbation corresponding to "p" above, with Op = Luncouple, n = 2, Srank = -1 and Scomp = -2.

Lambda doubling for Δ and higher states

A few lambda doubling operators for Δ states are built into PGOPHER, though note that these use the form involving J rather than N, and the name is not standard for some of them. The form involving N can be obtained by replacing Luncouple with LNuncouple and lambda operators for higher values of Λ can be obtained by setting n = 2Λ.

Name | Operator | Op | n | NPower | Srank | Scomp | Scale Factor | Notes
o | S+4L-4+S-4L+4 | Luncouple | 4 | 0 | -1 | -8 | ½ | The conventional name would be m
oD | J+S+3L-4+J-S-3L+4 | Luncouple | 4 | 0 | -1 | -6 | -½ | The conventional name would be n
oH | J+2S+2L-4+J-2S-2L+4 | Luncouple | 4 | 0 | -1 | -4 | ½ | The conventional name would be o
p | J+3S+L-4+J-3S-L+4 | Luncouple | 4 | 0 | -1 | -2 | -½ |
q | J+4L-4+J-4L+4 | Luncouple | 4 | 0 | 0 | 0 | ½ |


Linear Molecule Transition Moments

The following types of transition moments are currently implemented for linear molecules:

  • Spherical - electric dipole moment in spherical tensor form allowing its use for multiphoton and Raman transitions in addition to normal one photon transitions.
  • Spin - the magnetic moment from electron spin.
  • Orbital - the magnetic moment from electron orbital motion.
  • Rotational - the magnetic moment from molecular rotation
  • Nuclear - the magnetic moment of a nucleus


Spherical Transition Moment

This transition moment must be used for multiphoton or Raman transitions. It is also appropriate for single photon transitions classified as parallel or perpendicular, as noted below. For linear molecules the "Strength" number is the value of the vibronic only matrix element:
T(k,q) = <stateA, Λ+q| μ | stateB, Λ>
where k is the "Rank" and q the "Component" setting, normally chosen to be >= 0. The corresponding matrix element:
T(k,-q) = <stateA, Λ-q| μ | stateB, Λ>
is then computed by symmetry. The order of the states (which can be significant in cases involving multiple transition moments) is as displayed in the constants window. Strictly all the above matrix elements should have selection rules ΔS = 0 (and ΔΣ = 0 for linear molecules), but as an extension PGOPHER relaxes this requirement for ΔS ≠ 0 transitions and only enforces the |ΔΩ| = q rule. See the section on Forbidden Transitions in Linear Molecules for a more detailed discussion of this.

Settings

Rank | Rank of transition: 1 for a normal electric dipole transition; see here for multiphoton or Raman transitions
Component | Projection quantum number of transition moment. The default is auto, which for simple cases implies taking the only value of the component which gives an allowed transitions. In the standard one photon case it will be 0 for a parallel transition and 1 for a perpendicular transition. For more complicated cases auto will not work and a specific component must be taken.

Parameters

Strength Transition (dipole) moment. For one photon transitions this has units of Debye. Note that the relative intensity is proportional to the square of this value.


Spin Magnetic Transition Moment

This is appropriate for a magnetic dipole transition moment carried by the electronic spin angular momentum. In principle the Hamiltonian for this interaction of the magnetic moment of the electron spin with an external magnetic field is:

gSμBB.S

In practice the effective multipliers of the molecule fixed Sz and S± components are sometimes found to be different, so they are entered separately. Typical use uses two components, Component = 0 and Component = 1; the default with equal Strength for both gives the Hamiltonian above. The entry with Component = 0 gives the multiplier of Sz and Component = 1 gives the multiplier of T1±1(S) = -±2-½S±.

Settings

Rank | Rank of transition - 1 for a normal magnetic dipole transition with the Hamiltonian above.
Component | Projection quantum number of transition moment - 0 for a parallel transition, 1 for a perpendicular transition.

Parameters

Strength Transition (dipole) moment in units of the Bohr magneton. Note that the relative intensity is proportional to the square of this value. The default for this value is gS = 2.0023193043622.


Orbital Magnetic Transition Moment

This is appropriate for a magnetic dipole transition moment carried by the electronic orbital angular momentum. In principle the Hamiltonian for this interaction of the electron orbital magnetic moment with an external magnetic field is:

gLμBB.L

To allow for the most general possible interactions, the Λ dependence is not included in evaluating the matrix element, and must be included in the Strength parameter. In the absence of mixing between electronic states, using Component = 0 with Strength = Λ should give a good starting point. The effective electronic matrix elements are:

<Λ+Component,SΣ',Ω'|gLμBL|Λ,SΣ,Ω,> = δΣ'Σ δΩ'Ω Strength

The requirement for Σ' = Σ is dropped if the electron spin is different between the two states. The matrix element with Λ' = Λ-Component is derived by symmetry.

Settings

Rank | Rank of transition - 1 for a normal magnetic dipole transition.
Component | Projection quantum number of transition moment - 0 for a parallel transition, 1 for a perpendicular transition. For linear molecules this will normally be the change in Λ for the transition.

Parameters

Strength Transition (dipole) moment in units of the Bohr magneton. Note that the relative intensity is proportional to the square of this value.


Rotational Magnetic Transition Moment

This is appropriate for a magnetic dipole transition moment carried by the magnetic moment associated with the overall rotation of the molecule.
Note: This implementation has changed since 5.3.335, with the main change being the switch to units of nuclear magnetons from Bohr magnetons.

Parameters

Strength Rotational magetic moment in units of the Nuclear magneton. Note that the relative intensity is proportional to the square of this value.


Nuclear Transition Moment

Nuclear Magnetic Transition Moment

This term represents the interaction between the magnetic moment of a nucleus with an external magnetic field, the key interaction in NMR spectroscopy. In principle one of these will be required for each nucleus. The interaction is taken as:

-gNμNB.I

Note: This transition moment has not been fully tested.

Settings

Nucleus Index of nucleus

Parameters

gN Nuclear magnetic moment in terms of the Nuclear Magneton, μN


Forbidden Transitions in Linear Molecules

Strictly the spherical transition moments T(k,q) should have selection rules ΔS = ΔΣ = 0, but as an extension PGOPHER relaxes this requirement and only enforces the |ΔΩ| = q rule for ΔS ≠ 0 transitions. This will give some intensity to an otherwise forbidden transition but does not give enough flexibility in all cases, as several transition moments may be needed. (For exact simulations give intensity to the spin forbidden transition by using perturbations to mix in transitions to spin allowed states.)

For one photon 1Σ - 3Σ transitions PGOPHER has enough flexibility as only one parallel (q=0) and one perpendicular (q=1) component is required. The relative signs of these two are significant and direct comparison with the results in the literature requires care; there are two definitions for the perpendicular component in use:
J.K.G.Watson, Can J Phys 46, 1637 (1968), equation [23]:
μ(1) = 1/√2 < S=0 +- | μ(x) + i μ(y) | S=1, -+, Σ=-1 >
J.T.Hougen, NBS monograph 115, equation [3-27]:
μ(perp) = 1/√2 < S=1, -+, Σ=-1 | μ(x) + i μ(y) | S=0 +- >
The only difference here is the order, but this is essential to the definition. The two are related as follows:
μ(1) = 1/√2 < S=0 +- | μ(x) + i μ(y) | S=1, -+, Σ=-1 >
= 1/√2 { < S=0 +- | μ(x) | S=1, -+, Σ=-1 > + i < S=0 +- | μ(y) | S=1, -+, Σ=-1 > }
= 1/√2 { < S=1, -+, Σ=-1 | μ(x) | S=0 +- >*+ i < S=1, -+, Σ=-1 | μ(y) | S=0 +- >* }
= 1/√2 < S=1, -+, Σ=-1 | μ(x) - i μ(y) | S=0 +- >*
= -1/√2 < S=1, -+, Σ=+1 | μ(x) + i μ(y) | S=0 +- >*
= -μ(perp)*
The complex conjugate can be ignored as μ(1) can be chosen to be real. (in fact only the ratio μ(1)/μ(0) matters, and as shown by Watson eq [25], this ratio is real.) PGOPHER uses the following definition for T(1,1):
T(1,1) = -1/√2 < stateA, Ω+1 | μ(x) + i μ(y) | stateB, Ω >
with stateA being the state in the bra as shown in the constants window. If this is 3Σ we have:
T(1,1) = -μ(perp) = μ(1)
but if the bra is 1Σ (reversing the states) the definition of μ(1) and μ(⊥) does not change but the definition of T(1,1) does, giving:
T(1,1) = μ(perp) = -μ(1)
The difference is because with PGOPHER you can select which state is on the left but e.g. Watson's definition always has the singlet state on the left, and swapping the states over introduces a minus sign. There is no such problem with T(1,0) = μ(0) = μ(//).

Note on the definition of the strength parameter. For normal transitions, the strength is defined as the value of the matrix element:

<stateA, Λ+q| μ | stateB, Λ>

with the value of the <stateA, Λ-q| μ | stateB, Λ> matrix element derived by symmetry. For forbidden transtions there are two symmetry related q = 0 matrix elements; the strength parameter is then the value of the matrix element:

<stateA, Λ' Σ'| μ | stateB, Λ Σ>

with Λ > 0, or Σ > 0 if Λ = 0. This definition was introduced in version 7.1.450, and versions before this gave incorrect values for some q = 0 matrix elements.


Linear Molecule Sample Data Files

This section shows some examples of data files for various linear molecules. These include:
  • an O2 microwave spectrum - this is a microwave spectrum and involves a spin magnetic dipole transition moment. If also shows how to simulate for different isotopes, including 18O16O (no g/u symmetry) and 17O16O (nuclear hyperfine structure)
  • The C2 Swan band - this is an example of an electronic spectrum. Two examples are given; one is a simple example including one vibrational band only, the other is more complicated and includes many vibrational bands.
  • Hyperfine structure in the B - X transition in I2. This shows how to handle hyperfine structure and take account of equivalent nuclei.
  • Electronic spectrum of the A5Σ - X5Π transition of CrO. An example of states with high multiplicity. It also shows an example of how to handle constants that are not presented in quite the same way as PGOPHER requires them.
  • Zeeman and Stark Effects in SO - this shows the sort of set up required to simulate the defects of external fields, and to fit line position data in the presence of a field.


O2 Microwave Spectrum

Main Isotope

This shows an example of a microwave spectrum using a magnetic moment. The values are taken from G.Yu. Golubiatnikov and A.F. Krupnov, J Molec. Spectrosc. 225, 222 (2004), but with γH = 0, which gives a better fit to the experimental data. It gives good, but not exact agreement with their calculated values. The values calculated by PGOPHER have been checked against the explicit formulae given in Rouille at al, J Molec. Spectrosc. 154, 372 (1992) so the discrepancy is probably due to a slight difference in the method of calculation. Data file: o2fittedmuwave.pgo. Note the following:
  • Symmetric = True for the molecule
  • AsymWt = 0 to reflect the fact that half the rotational levels are missing as 16O has spin 0.

18O16O

This is the microwave spectrum of the 18O16O species. The constants were obtained by fitting to the observed microwave lines given in the JPL Molecular Spectroscopy catalog (H. M. Pickett, R. L. Poynter, E. A. Cohen, M. L. Delitsky, J. C. Pearson, and H. S. P. Muller, "Submillimeter, Millimeter, and Microwave Spectral Line Catalog," J. Quant. Spectrosc. & Rad. Transfer 60, 883 (1998)) λH was fixed to the value for 16O2.
Data file: o18ground.pgo Note the following differences:
  • Symmetric = False for the molecule (no u/g for this isotope) and AsymWt = 1 as nuclear spin statistics have no effect here

17O16O

This is the microwave spectrum of the 17O16O species. The constants were obtained by fitting to the data from Fit to data from G. Cazzoli et al., Nuovo Ciminto 62, 243 (1981) obtained from the JPL Molecular Spectroscopy catalog. The centrifugal distortion constants were fixed to the value for 16O2.

Data file: o17ground.pgo Note the following differences:
  • Symmetric = False for the molecule (no u/g for this isotope)
  • nNuclei = 1, as 17O has spin 5/2 (and 3 hyperfine parameters are determined by the data).

All isotopes

This file combines all the above. Data file: o2allground.pgo Note the following differences:
  • Abundance has been set as appropriate
  • The hyperfine structure has been turned off in the 17O16O species to simplify the spectrum.
  • Colours have been set on the spectrum so that individual spectra will show in different colours, as in the sample below (Green = 17O16O, Blue = 18O16O; the main isotope is in red but does not show in this picture).


C2 Swan Bands

This shows an example of an electronic spectrum. The constants are taken from G. M. Lloyd and P. Ewart, J Chem. Phys. 110, 385 (1999). The line positions agree with the calculated line positions from the paper to about 0.0001 cm-1. A small adjustment was required to the contants - the difference between pD+2qD between the two states is taken to be -9.42 rather than -0.942 as given in Table II. (The value given in Table II is not the value quoted by Prasad and Bernath as quoted in the footnotes to the table.) Note that LimitSearch="True" is required for the F1/F2/F3 quantum numbers to be calculated correctly. See below for a larger example involving several vibrational states.
Data file: c2a.pgo

This is a more complicated example, including many vibrational bands. The 0-0 band is as above, with the additional constants from C.V.V. Prasad and P.F. Bernath, Astrophys. J..426, 812 (1994). Note that the vibrational states are all in the same manifold, though this is not essential.
Data file: c2a.pgo


Hyperfine structure in the B-X transition in I2

This example reproduces figure 2 from S. Churassy, G. Grenet, M. L. Gaillard and R. Bacis, Opt. Comm. 30 41 (1979), and shows hyperfine structure from the spin 5/2 iodine nuclei in the 12-0 band of the B-X electronic transition of I2. This shows how to handle hyperfine structure for equivalent nuclei; each nucleus should show in the constants tree, but AsNext is set true for the first nucleus it is treated as equivalent to the second and all the constants are taken from the second nucleus. JAdjustSym is also off, as it can give confusing results in this case.

The statistical weights are set to SymWt=1, AsymWt = 0, as there are no other equivalent nuclei in the molecule. Note that this is a change introduced in 7.1.141; previous versions required both SymWt and AsymWt non zero, but did not handle the case of more than one pair of equivalent nuclei correctly.

If you don't want the hyperfine structure, set nNuclei to 0, and SymW = 5, AsymWt = 7 (or SymW = 15, AsymWt = 21) for the correct statistical weights.

Data file: b12x0hyp.pgo


Electronic spectrum of the A5Σ - X5Π transition of CrO

Simulation of figure 3
This example is based on A. S-C. Cheung, W. Zyrnicki and A. J. Merer, J. Molec. Spectrosc. 104 315 (1984), and shows an example of a spectrum involving states with high multiplicity, and also demonstrates two alternative approaches to dealing with molecular parameters that are not presented in quite the same way as PGOPHER requires them. Four slightly different data files are given below. The difference between them is not really significant on the scale of the precision of the original data, but CrOAdjusted.pgo is the recommended one to use.

CrOOriginal.pgo. This gives the data in a form that is closest to the form presented in the paper, which requires special consideration as follows:

  • The RSquaredH parameter is set to true, as the Hamiltonian specified in the paper is closest to this form.
  • LimitSearch is set to true to give quantum number assignments consistent with the paper.
  • Constants Tree for CrO The origins of the individual components of the ground X5Π state are specified individually, rather than in several spin orbit coupling constants. This effect can be achieved in PGOPHER using perturbations, in this case homogeneous contributions with OmegaSelect set. For example <v=0|Om=3|v=0> shifts the Ω = 3 component (only) by the amount of the perturbation Value. For correct assignment of the quantum numbers PGOPHER requires an approximately correct value for the spin-orbit coupling constant, A, so not all the components can be positioned in this way. For the file given here, the Ω = 0 and 1 components are fixed by setting the state Origin and A values, and perturbations are used to position the other spin-orbit components. In this case it is possible to derive the values by comparing the matrix elements used in PGOPHER and the paper, though in general it can be simpler to simply re-fit data from the literature.
As an example of how this can be done, consider the diagonal Ω = 0 matrix elements given in the paper for the X5Π state (Table I):
T0
+ (B-AD-2LambdaD+/-3*oD)*(J*(J+1)+5)
- D*(J*J*(J+1)*(J+1)+20*J*(J+1)+25)
+/-3*(o+p+q)

PGOPHER gives the following for the same matrix elements (right click on X and select matrix elements):

<J,Lambda=1,Omega=0 + |H| + J,Lambda=1,Omega=0> =
+  Origin
+  B*(J*(J+1)+5)
+  -A
+  + 3*o
+  -6*gamma
+  D*(-J*(J*(J*(J+2)+21)+20)-25)
+  (AD+2*LambdaD)*(-J*(J+1)-5)
+  +3*oD*(J*(J+1)+5)

A little algebra will show that these two expressions are identical apart from o and oD (discussed below) and the J independent terms. Equating these shows that TO = Origin-A-6*gamma. Repeating the process with Ω = 1 shows that T1 = Origin-6*gamma. The difference between these, T1 - T0 = A, so given that the paper fixes T0 = 0 it follows that A can be set to T1. The paper has chosen to take the energy zero for the state at Ω = 0, while PGOPHER will take it at Σ = 0 component (Ω = 1 here). To align the two scales, set the PGOPHER Origin = A+6*gamma. Repeating the process for the other Ω components gives the following set of equations:

T(-1) = Origin-2*A-4*gamma+<v=0|Om=-1|v=0>
T2 = Origin+A-4*gamma+<v=0|Om=2|v=0>
T3 = Origin+2*A+<v=0|Om=3|v=0>

Note that the homogeneous perturbations such as <v=0|Om=3|v=0> have been added here, and each of these is essentially indicating how far the component has been shifted from the equal spacing predicted from the simple spin orbit energy formula AΛΣ. The required value for each component can be worked out by rearranging the above giving, for example, <v=0|Om=2|v=0> = T2-T0 - (2A+2*gamma).

  • The lambda doubling constants are given in an alternative form that naturally involves J rather than N (see Λ doubling for more on this). The term involving o (in PGOPHER) has the same operator form as o+p+q as used in the paper, so no extra term is required for this. This also applies to its centrifugal distortion, oD, as confirmed by comparing the matrix elements above. To reproduce the p+2q term requires a perturbation, <v=0|J+L-2S+|v=0>; this uses Op = Luncouple, n = 2, Srank = -1 and Scomp = -2. To match the definition given in the paper with the PGOPHER perturbation requires a scale factor of -1/2; this can be worked out by comparing the operator forms (see perturbations for the PGOPHER definitions) or by comparing matrix elements. Similarly the <v=0|J+2L-2|v=0> perturbation is used to reproduce the q term; this time the scale factor is +1/2.
CrOOriginalAdjusted.pgo. This is the data file above, with some minor adjustments to give slightly better agreement with the energy levels and transitions listed in the paper. To do this, the information in table VIII and the appendix was converted to a form PGOPHER could use. Using the simplified format the energy level list can be input as follows:
FrequencyOffset -54.43912
NQN 2
 - - 1 F1f 0.0002
 - - 2 F1f 2.025
 - - 3 F1f 5.0621
 - - 4 F1f 9.1117
 - - 14 F1f 105.3185
 - - 15 F1f 120.5138

 - - 0 F2f 57.1558
 - - 1 F2f 58.1881

 - - 0 F2e 56.9666
 - - 1 F2e 58.0008
 - - 2 F2e 60.0692
 - - 3 F2e 63.1718

Only a few entries have been included. Notes on producing this:

  • The e and f levels have been swapped, to give energy levels consistent with the signs of the published lambda doubling constants, which were in turn chosen on the assumption that the upper state is a 5Σ - state. The true sign, and thus the absolute parity assignments, was not known and the tabulated energy levels seem to have been worked out with the opposite signs of the constants. In general swapping + and - parity assignments, and swapping Σ - and Σ + states will make no change to the spectrum, provided the signs of all the lambda doubling constants are also changed.
  • The FrequencyOffset directive is required as the energy zero for this list is taken as the lowest energy level, J = 1 of the Ω = -1 component.

Given the settings above, table VIII can be reproduced exactly if minor adjustments by fitting are made to the Origin, B, o, gamma and the perturbations. The adjustments are mainly because the constants have not been quoted to sufficient precision to reproduce the calculated values.

The transitions given in the appendix can be similarly converted into a form that PGOPHER can read using the BranchTable format:

BranchTable sR54 rQ54  qP54    pQ34      oQ24     oP34     nP24
7  8021.3   8011.337    -        -        -        -        -
8  8023.748 8012.779 8002.799    -     7988.457    -        -
9  8026.122 8014.157 8003.182    -     7986.855    -        -
10 8028.406 8015.457 8003.513    -        -        -     7976.194
11 8030.687 8016.698 8003.742    -     7983.441    -     7973.451
12 8032.814 8017.876 8003.909    -     7981.63     -     7970.649
13 8034.913 8018.965 8004.007    -     7979.758    -     7967.778
14 8036.943 8020.003 8004.04  7992.332 7977.818    -     7964.822
15 8038.898 8020.967 8004.007 7991.327 7975.811 7976.352 7961.852
16 8040.787 8021.867 8003.909 7990.252 7973.74  7974.309 7958.792

Again, only a few sample lines are shown. The agreement with the observed lines is good, but can be slightly improved (average error dropping from 0.011 to 0.0086 cm-1) by fitting the upper state Origin, B and LambdaD. The changes are minor, with the exception of LambdaD which changes from 4.6e-6 to 1.6e-6. This may reflect a misprint in the original paper, or possibly a more thorough treatment of blended transitions in the original fit.

CrO.pgo is set up using the standard constants available in PGOPHER, derived as follows:

  • The RSquaredH parameter left at false, the default.
  • LimitSearch is set to true to give quantum number assignments consistent with the paper.
  • The Origin for the ground X5Π state is left at zero, the default, and values for A, LambdaSS and eta are taken from equation (20) of the paper.
  • The lambda doubling constants o, p and q are worked out from the combined values given in Table V
  • The Origin of the upper A5Σ - state needs to be offset by approximately the gap between the Ω = 0 and Ω = 1; the exact value is taken to give the best fit to the tabulated values. This arises from the different choice of energy zero for the ground state used by PGOPHER.
CrOAdjusted.pgo is the same data file, with selected constants adjusted slightly to give the best fit with the energy levels and transitions values given in the paper.
  • For the ground state table VIII can be reproduced exactly if minor adjustments by fitting are made to the Origin, B, A, LambdaSS, eta, o, theta, AD and eta of the ground state. The adjustments are mainly because the constants have not been quoted to sufficient precision to reproduce the calculated values, and minor differences to the matrix elements. Note that fitting requires a FrequencyOffset of -119.72578 as the choice of energy zero is different.
  • For the excited state Origin, B and LambdaD are fitted. The changes are minor, with the exception of LambdaD which changes from 4.6e-6 to 1.6e-6. This may reflect a misprint in the original paper, or including blended transitions in the fit. The average error drops from 0.011 to 0.0086 cm-1 on fitting.


Zeeman and Stark Effects in SO

Data file: so.pgo
This example reproduces the results of "Laser magnetic resonance spectroscopy of SO in the X3Σ - state with a CO2 laser as a source", K. Kawaguchi, C. Yamada and E. Hirota, J. Chem. Phys. 71, 3338 (1979) and "Microwave spectrum of the SO radical", F. X. Powell and D. R. Lide, Jr., J. Chem. Phys., 41, 1413 (1964). It provides a good example of calculating the effects of external fields.

The later paper gives rotational constants for both v=0 and v=1 in the ground electronic state, and these are straightforward to enter, as described in Making a Linear Molecule Data File. In this B, λ, γ, DN and λN are available. Following the procedure will produce a simulation of the infra-red spectrum of the fundamental band of SO. Simulating the Zeeman or Stark effect is more complicated, and the complete data file has 3 Transition Moments objects with 9 individual Transition Moment objects beneath them, as summarized in the diagram:

The transition moments are made up as follows:

  • The <v=1|mu|v=0> Transition Moments object connects the v=1 and v=0 manifolds, and is required to simulate the vibrational transition
    • The <v=1|T(1)|v=0> spherical tensor transition moment provides the intensity of the transition, and indicates that it is a standard parallel electric dipole transition.
  • The <v=0|mu|v=0> Transition Moments object collects the various dipole moments of the v=0 state, and is required to simulate the microwave spectrum, and the Zeeman and Stark effects.
    • The <v=0|T(1)|v=0> spherical tensor transition moment provides the electric dipole moment of v=0, and is essential for the microwave spectrum and the Stark effect.
    • The <v=0|gS(0)|v=0> and <v=0|gS(1)|v=0> Spin Magnetic Moments provide the bulk of the magnetic interaction in v=0. In principle this reflects the gSμBB.S interaction between the magnetic field and the electron spin magnetic moment, and leaving the Strength of both at their default values of the g factor of the electron would simulate exactly that. In practice the effective g factor along the axis, <v=0|gS(0)|v=0>, and perpendicular to the axis, <v=0|gS(1)|v=0>, are found to be slightly different. In the Kawasaki et al paper these are expressed as ges + gel = <v=0|gS(1)|v=0> and gel = <v=0|gS(1)|v=0> - <v=0|gS(0)|v=0>. These will also result in magnetic dipole transitions, with different selection rules than electric dipole transitions.
    • The <v=0|gr|v=0> rotational magnetic moment is also included for completeness, though here it only has a small effect. Note that PGOPHER expresses this in terms of the nuclear magneton, while Kawasaki et al use the Bohr magneton, so the values differ by mp/me.
  • The <v=1|mu|v=1> Transition Moments object collects the various dipole moments of the v=1 state, and is required to simulate the microwave transitions within v=1, and the Zeeman and Stark effects.of infrared transitions. The transition moment objects beneath it are essentially the same as v=0.

The 32S18O isotope has not been included in the data file, but could be by duplicating the structure above. In principle the <v=1|mu|v=0> Transition Moments object could also have magnetic dipole components, but these are likely to give much weaker transitions, and would only be important in the absence of an electric dipole moment, as in O2.

Zeeman Plot

Figure 3 of Kawaguchi et al, showing the Zeeman effect in J = 20 and 22, N = 21 in v=1 is re-simulated below.

Line position fitting in the presence of a field

To fit line position data in the presence of a field requires the use of EField and BField directives in the input file, typically immediately before before the affected lines. For example, the data in Table 1 of Kawaguchi at al can be used as follows:

LMR transitions; these are unusual in that the line position is constant, but the field value varies. There are various ways of specifying the data; taking the first transition in the table as an example:
.
Right clicking on a simulated peak and copying the line from the linelist window yields:

BField 0.3004
SO v=1  18  -  1 v=0  18  -  3    1104.91097 - 1.8e-7      0 : pQ12(18)18,18 : v=1 v=1 18 17 F1e 18 - v=0 v=0 18 18 F2f 18

The molecule need not be specified, as there is only one, and manifolds will default to v=1 for the upper state and v = 0 for the lower state so this can be shortened to:

BField 0.3004
18 - 1 18 - 3 1104.91097 1

In this mode the text after the (relative) standard deviation (here 1) is just taken as a comment, so can be omitted, and the symmetry will be ignored in the presence of a field.

The two input lines above require the eigenvalue numbers to be known, which is tricky to work out from the data in the table. Setting the eigenvalue numbers to zero means they will be worked out from the transition label at the end of the line:

BField 0.3004
18 - 0 18 - 0 1104.91097 1 : v=1 v=1 18 17 F1e 18 - v=0 v=0 18 18 F2f 18
The quantum numbers at the end of the line are in order J N and M.

Alternatively branch format can be used:

BField 0.3004
pQ12(18),18,18 1104.91097 1

The branch is specified in the order:

  • p = ΔN = -1
  • Q = ΔJ = 0
  • 1 = F1 in the upper state (N' = J' - 1)
  • 2 = F2 in the lower state (N "= J")
  • (18) = Lower state J"
  • 18 = Upper state M'
  • 18 = Lower state M"
This last format is the easiest when working with published line lists; the complete first block of data will then look like this:
BField 0.3004
pQ12(18)18,18 1104.91097 1
BField 0.3213
pQ12(18)17,17 1104.91097 1
BField 0.3751
pQ12(18)15,15 1104.91097 1
BField 0.4105
pQ12(18)14,14 1104.91097 1

The last block of data points in the table are also worth commenting on, as these correspond to microwave, rather than infra-red transitions. The field free transitions in v=1 can be input with

ScaleStdDev 0.1

LowerManifold v=1
BField 0
pR1(0) 0.99900 1
rR1(1) 2.09120 1
rQ32(1) 0.42537 1
rQ32(2) 1.18287 1
rQ32(3) 2.16164 1
Note:
  • ScaleStdDev 0.1 implies all the microwave measurements are 10 times more precise. (Alternatively a standard deviation of 0.1 could have been specified for the individual lines.)
  • LowerManifold v=1 to override the default lower state.
  • BField 0 as these are field free
  • The individual lines do not have M specified, as there is no field.
  • To display 5 decimal places in the obs-calc values, the Precision needs to be set at the Mixture level.

Finally the v=0 microwave transitions can be input with:

LowerManifold v=0
UpperManifold v=0

BField 0.57433
pR1(0)-1,0 0.83165 1

BField 0.72408
rQ32(2)2,2 0.83078 1
BField 0.80262
rQ32(2)1,2 0.83064 1
BField 0.83331
rQ32(2)2,1 0.83087 1


Symmetric Tops

See Making a Symmetric Top data file for a quick start. For details of the Hamiltonian used, see the symmetric top state section.

PGOPHER will currently calculate rotational structure for symmetric tops for the point groups listed below. Note that electron and nuclear spin effects are not currently implemented.

Quantum Numbers

The following standard quantum numbers are used or displayed for symmetric tops:
J | Total angular momentum excluding nuclear spin
K | The projection of J on to the highest order symmetry axis. Note that K will sometimes appear negative, depending on the symmetry of the state.
l | The vibronic angular momentum; this will have a value of 0 for non-degenerate states, and ±1 for degenerate states.
kl | The sign of Kl; see Hoy and Mills J. Molec Spectrosc. 46, 333 (1973) for the definition of the value displayed.

Symmetry

The rovibronic symmetry of each level will be given in standard format. The symmetry of non-degenerate levels typically flips between two values for odd and even J, so if JAdjustSym is set True at the Mixture level the symmetry will be read and written as that of the corresponding even J level. The symmetry can also be read (or written) as an integer, which is simply the row index of the character table.

Basis States

The basis states used by PGOPHER are standard symmetric top functions, and are displayed as:

|Name J K +- l Sym>

where Name is the manifold and state name, J, K and l are the quantum numbers described above and Sym is the rovibronic symmetry. l is omitted for non-degenerate states, where it is 0. If + or - is present, it implies the basis state is the symmetised combination:

1/Sqrt(2){ |JKl> ± |J-K-l> }

For levels with degenerate rovibronic symmetry, only one K, l combination will be shown. The basis states are chosen such that their behaviour under the symmetry operations of the appropriate point group are as in Hegelund, Rasmussen, and Brodersen, J. Raman. Spectrosc. 1, 433 (1973); see also section 12.4 of Bunker and Jensen, Molecular Symmetry and Spectroscopy, 2nd Ed (2006). Note that while the references are specific to vibrational wavefunctions, electronic functions are taken to follow the same phase conventions.

State Labels

The possible contents of state labels are:

Name | The manifold and state name
J | The J quantum number
K | The K quantum number; this is always positive for state labels.
Kl | The sign of Kl; this is only present for degenerate vibronic states for K ≠ 0

For example, a E vibronic state in C3v may give the following label:

Excited v=1  3  3 +1 E

where the name is Excited v=1, J = 3, K = 3, l = +1 and the rovibronic symmetry is E.

Further Details

  • Making a Symmetric Top data file
  • Molecule Settings
  • State Settings
  • Perturbation types
  • Transition Moment types
  • Sample Data Files
The table below shows the rovibronic symmetries for each point group that have the same statistical weight.
 | Dipole | wt0 | wt1 | wt2 | wt3 | wt4 | wt5 | wt6
C3v | A2 | A1,A2 | E
C4v | A2 | A1,A2 | B1,B2 | E
C5v | A2 | A1,A2 | E1 | E2
C6v | A2 | A1,A2 | B1,B2 | E1 | E2
C7v | A2 | A1,A2 | E1 | E2 | E3
C8v | A2 | A1,A2 | B1,B2 | E1 | E2 | E3
D3h | A1" | A1',A1" | A2',A2" | E',E"
D4h | A1u | A1g,A1u | A2g,A2u | B1g,B1u | B2g,B2u | Eg,Eu
D5h | A1" | A1',A1" | A2',A2" | E1',E1" | E2',E2"
D6h | A1u | A1g,A1u | A2g,A2u | B1g,B1u | B2g,B2u | E1g,E1u | E2g,E2u
D7h | A1" | A1',A1" | A2',A2" | E1',E1" | E2',E2" | E3',E3"
D8h | A1u | A1g,A1u | A2g,A2u | B1g,B1u | B2g,B2u | E1g,E1u | E2g,E2u | E3g,E3u
D2d | B1 | A1,B1 | A2,B2 | E
D3d | A1u | A1g,A1u | A2g,A2u | Eg,Eu
D4d | B1 | A1,B1 | A2,B2 | E1,E3 | E2
D5d | A1u | A1g,A1u | A2g,A2u | E1g,E1u | E2g,E2u
D6d | B1 | A1,B1 | A2,B2 | E1,E5 | E2,E4 | E3
D7d | A1u | A1g,A1u | A2g,A2u | E1g,E1u | E2g,E2u | E3g,E3u
D8d | B1 | A1,B1 | A2,B2 | E1,E7 | E2,E6 | E3,E5 | E4
C3h | A" | A',A" | E',E"
C4h | Au | Ag,Au | Bg,Bu | Eg,Eu
C5h | A" | A',A" | E1',E1" | E2',E2"
C6h | Au | Ag,Au | Bg,Bu | E1g,E1u | E2g,E2u
S4 | B | A,B | E
S6 | Au | Ag,Au | Eg,Eu
S8 | B | A,B | E1,E3 | E2
S10 | Au | Ag,Au | E1g,E1u | E2g,E2u
S12 | B | A,B | E1,E5 | E2,E4 | E3
D3 | A1 | A1 | A2 | E
D4 | A1 | A1 | A2 | B1 | B2 | E
D5 | A1 | A1 | A2 | E1 | E2
D6 | A1 | A1 | A2 | B1 | B2 | E1 | E2
D7 | A1 | A1 | A2 | E1 | E2 | E3
D8 | A1 | A1 | A2 | B1 | B2 | E1 | E2 | E3


Making a Data File for a Symmetric Top Molecule

A simple symmetric top molecule file can be generated from File, New, Symmetric Top This initializes the program for a parallel band of a molecule of C3v symmetry with a band origin of 1500 cm-1and with rotational constants in both states of A = 5 cm-1, B = 0.5 cm-1 . To adjust the constants (and set the type of vibronic transition) use select View, Constants. Most constants and settings can be left unchanged at their default values (and indeed should be unless you need a specific effect) but the ones that must normally be changed are adjusted as follows:
  1. At the Molecule level (Click on "SymmetricTop") the PointGroup and the statistical weights are the most important. A symmetric top must have equivalent nuclei and the defaults of 1 are only appropriate for 3 equivalent spin ½ nuclei in C3v. Note that you should leave nNuclei at 0 unless you specifically want to calculate hyperfine structure.
  2. Adjust the ground state by clicking on the "v=0" entry under "Ground". The key things to set are
    • The Symmetry of the state
    • The rotational constants, A/C and B. Note that the rotational constant about the symmetry axis is always shown as C, though this corresponds to A for a prolate top.
  3. Adjust the upper state by clicking on the "v=1" entry under "Excited". The key things to set here are:
    • The Origin
    • The Symmetry and rotational constants, as for the ground state.
  4. The transition moment "<v=1|T(1)|v=0>" may also need adjusting, as the default is along the a axis. The axis is likely to change if you change the symmetry and for low symmetry asymmetric tops more than one transition moment may be needed. (Right click on the transition moment in the tree view to show the copy and paste menu items that can be used for duplicating objects). See here for Raman and multiphoton transitions.
For details of the Hamiltonian used, see the symmetric top state section.

Pure Rotational (Microwave) Spectra

For a pure rotational transition only do steps 1 and 2 as above and then:
  3. Right click on <Excited|mu|Ground> (the transition moments object) and select rename. Change the "Bra" entry in the rename dialog so that both entries read "Ground". (This converts the transition moment to act within the ground state, rather than connecting two different states.)
  4. The upper state can be deleted - right click on "Excited" and select delete.
  5. The default frequency range for the plot will still be in the infra-red; press the simulate button and then the All button to see a spectrum.


Symmetric Top Molecule

These are the settings for a symmetric molecule as a whole, i.e. those common to all states (but perhaps different for different isotopologues).

Settings

nNuclei | Number of nuclei to calculate hyperfine structure for. Leave this at 0 unless you want the hyperfine structure resolved.
Jmin | Minimum J to use in calculation - set to -1 (default) to use value from species.
Jmax | Maximum J to use in calculation - set to -1 (default) to use value from species.
Colour | Colour - set to "None" to take value from elsewhere as explained in Determining Colours and J ranges.
JAdjustSym | If set, energy level plots and Fortrat diagrams will take account of the alternation in symmetry with J that is often found. For example an alternation in the order of the K=3 levels of A1 and A2 symmetry is often seen, though the details depend on the point group and the vibronic symmetry of the state.
BlockMatrix Set to force check of Hamiltonian matrix for factorization into blocks before diagonalization. If blocks are found, these are diagonalized separately, ensuring states that have no connecting matrix elements are not accidentally mixed if the eigenvalues happen to be very close. In principle, if full use is made of symmetry and states are separated into separate manifolds as appropriate, this should not be necessary but can easily happen if selected terms in the Hamiltonian are zero or interactions between states are omitted.
PointGroup Point group of molecule. Possible values are:
C3v, C4v, C5v, C6v, C7v, C8v, D3h, D4h, D5h, D6h, D7h, D8h, D2d, D3d, D4d, D5d, D6d, D7d, D8d.
C3h,C4h, C5h, C6h, S4, S6, S8, S10, S12 are also partially implemented.
AlternateBasis | Set to use and alternate basis in separably degenerate point groups, with |K,l> and |-K,-l> for non E symmetry functions, rather than {|K,l> ± |-K,-l>}
Wt0
Wt1
...
 Statistical Weights for each possible rovibronic symmetry. The number of settings here depends on the point group set as above, with one setting per rovibronic symmetry.

Parameters

Abundance Abundance of this isotope; default is 1


Symmetric Top State

This allows setting rotational constants and other values specific to each state in the molecule.

Settings

Colour | Colour - set to "None" to take value from elsewhere as explained in Determining Colours and J ranges.
RveSelect | Only include given rovibronic symmetry - for normal use set to 'all'
S | Electron Spin
Symmetry | Symmetry
Kmin | Minimum |K| to use; "all" (default) for no lower limit.
Kmax | Maximum |K| to use; "all" (default) for no upper limit.

Parameters

The Hamiltonian used is:

Origin
+ BN(N+1) + (C-B)K2
+ (-2Cζ + ηJ*N2 + ηK*K2) lK
- DJN2(N+1)2 - DJKJ(J+1)K2 - DKK4
+ HJN3(N+1)3 + HJKN2(N+1)2K2 + HKJN(N+1)K4 + HKK6
+ LJN4(N+1)4 + LJJKN3(N+1)3K2 + LJKN2(N+1)2K4 + LKKJN(N+1)K6 + LKK8
+ ½εaa(N+S-+N-S+) + εccNzSz
+ DsN N2N.S + ½DsNK(N2NzSz+NzSzN2) + DsKN N.S Nz2
+ α(3Sz2-S2) + ½β(S+2-S-2)
+ aefflzSz

with the following off-diagonal matrix elements, which are responsible for l-doubling::

<J, K+2, l+1|H|J, K, l-1> = ½ (q+ + DqJJ(J+1) + DqK(K2+(K+2)2)) [ (J(J+1) - K(K-1)) (J(J+1) - K(K+1)) ]½
<J, K+2, l-1|H|J, K, l+1> = ½ q- [ (J(J+1) - K(K-1)) (J(J+1) - K(K+1)) ]½
<J, K+1, l-1|H|J, K, l+1> = (r + DrJJ(J+1) + DrK(K2+(K+1)2)) (2K+1) (J(J+1) - K(K+1))½

A note on the sign convention for these constants is appropriate. This is discussed in a G. J.Cartwright and I. M. Mills, J. Molec. Spectrosc.34, 415 (1970), though that they define their constants, q(+) and q(-), in a way to factor out the expected vibrational dependence, specifically:

q+ = ½ρ[(vt+1)2 - lt2]½q(+)
q- = ½ρ[(vt+1)2 - lt2]½q(-)

The constant ρ defines the sign convention, and Cartwright and Mills suggest a value of -1 should be used for this. The sign convention can also be defined by looking at the spitting of the l = K = ±1 levels. Note that equation (5) of this paper is slightly unclear; the magnitude of the spitting between these otherwise degenerate levels is q+J(J+1) with the PGOPHER definition of q rather then the Cartwright and Mills definition. The PGOPHER definition means a positive value of q+ puts the even J, K=1 A1 rotational level below the A2 level, whereas a positive value of the Cartwright and Mills constant, q(+), gives the opposite order.

l doubling is also observed in degenerate electronic states of symmetric top molecules; while the physical origin is different, the J and K dependence of the matrix elements is the same so PGOPHER can be used for such cases also. The classic example is the B state of NH3 (see for example M. N. R. Ashfold, R. N. Dixon, N. Little, R. J. Stickland and C. M. Western, J. Chem. Phys., 89, 1754 (1988)) with the published q values being simply -q+ as used by PGOPHER.

Origin | State Origin.
Width | Linewidth (rotation independent) for state; see Width and Lifetime effects
B | Rotational constants perpendicular to symmetry axis.
C | A or C - the rotational constant about symmetry axis.
DJ | J2(J+1)2 Quartic Centrifugal Distortion
DJK | J(J+1)K2 Quartic Centrifugal Distortion
DK | K4 Quartic Centrifugal Distortion
zeta=ζ | Coriolis coupling constant.
etaJ=ηJ | J(J+1) dependence of Coriolis coupling constant.
etaK=ηK | K2 dependence of Coriolis coupling constant.
qplus=q+ | l doubling constant.
qminus=q- | l doubling constant.
r | l doubling constant.
DqJ | Centrifugal distortion of qplus l doubling constant.
DqK | Centrifugal distortion of qplus l doubling constant.
DrJ | Centrifugal distortion of r l doubling constant.
DrK | Centrifugal distortion of r l doubling constant.
HJ | J3(J+1)3 Sextic Centrifugal Distortion
HJK | J2(J+1)2K2 Sextic Centrifugal Distortion
HKJ | J(J+1)K4 Sextic Centrifugal Distortion
HK | K6 Sextic Centrifugal Distortion
LJ | J4(J+1)4 Octic Centrifugal Distortion
LJJK | J3(J+1)3K2 Octic Centrifugal Distortion
LJK | J2(J+1)2K4 Octic Centrifugal Distortion
LKKJ | J(J+1)K6 Octic Centrifugal Distortion
LK | K8 Octic Centrifugal Distortion
ebb | xx/yy Spin-Rotation interaction
ecc | zz Spin-Rotation interaction
DsN | quartic spin rotation parameter
DsNK | quartic spin rotation parameter
DsKN | quartic spin rotation parameter
DsK | quartic spin rotation parameter
alpha | Diagonal spin-spin coupling constant (=D/3)
beta | Off-Diagonal spin-spin coupling constant (=E)
aeff | Effective spin-orbit parameter
wK | multiplier of <K2> for linewidth; see Width and Lifetime effects
wJ | multiplier of <J(J+1)-K2> for linewidth; see Width and Lifetime effects
After 7.1.323 the definition of the spin-spin parameters alpha and beta changed to be consistent with the literature. Values in older files are converted on loading by multiplying alpha by sqrt(5) and beta by sqrt(6).


Symmetric Top Perturbation

Settings

Nucleus | Index, starting from 1, of nuclear spin involved in perturbation; 0 (default) for those not involving a nuclear spin.
SymSelect | Symmetry select
ScalePrev | Scale factor with respect to preceding perturbation
JPower Twice power of N2 = N(N+1) (= J(J+1) for closed shell systems with S = 0).
zPower Power of Nz; If both zPower and pPower are non zero then the effective operator is either:
NJPower/2[Nz|zPower|, N+|pPower|+N-|pPower|]+
or NJPower/2[Nz|zPower|-1,[Nz, N+|pPower|+N-|pPower|]+]+ if zPower is odd and < -2
pPower | Power of N±
lPower Select l dependence; valid values are 0 (l independent), 1 or -1. If lChange is 0, the matrix element is multiplied by l*lPower, otherwise the matrix element is multiplied by sign(l'-l)*lPower.
lChange | Power of l+ or l-; < 0 implies opposite sign to change in K; valid values are -2..2
KSelect | K the perturbation applies to
SPower Twice power of S2 = S(S+1)
SzPower Power of Sz. If this is combined with a rotational operator, the overall operator is:
[NJPower/2[Nz|zPower|, N+|pPower|+N-|pPower|]+,SzSzPower]+
SpPower Power of S±. If this is combined with a rotational operator, the overall operator is (if pPower and SpPower have the same sign):
[NJPower/2[Nz|zPower|,N+|pPower|]+, S+|SpPower|]+ + [NJPower/2[Nz|zPower|,N-|pPower|]+, S-|SpPower|]+
If pPower and SpPower have opposite signs:
[NJPower/2[Nz|zPower|,N+|pPower|]+, S-|SpPower|]+ + [NJPower/2[Nz|zPower|,N-|pPower|]+, S+|SpPower|]+
NSPower | Power of N.S.

Currently only one of SzPower and SpPower can be non-zero.

Parameters

Value Size of perturbation.

Rotational Hamiltonian expressed as perturbations

The standard rotational Hamiltonian can be expressed entirely in terms of diagonal perturbations, as shown in the table below. This can be used as a basis for adding higher powers of the centrifugal distortion or other terms not provided as standard.

 Operator
 JPower
 zPower
 pPower
 lPower
 lChange
 Scale
Factor
 Notes
B N2 2
 0 0
 0 0 1
 Both terms required to replicate B[J(J+1) - K2]
Nz2 0
 2
 0
 0
 0
 -1
C Nz2 0 2 0 0
 0 1
DJ N4 ≡ N2(N+1)2 4 0 0 0 0 -1
DJK N2Nz2 ≡ N(N+1)K2 2 2
 0 0 0 -1
DK Nz4≡ K4 0 4
 0 0 0 -1
zeta
         Nzlz 0
 1
 0
 1
 0
 -2C
 In this form, parameter must be -2Cζ, not -2ζ
etaJ
         N2Nzlz 2
 1
 0
 1
 0
 1
etaK
         Nz3lz 0
 3
 0
 1
 0
 1
qplus
         N+2l+2+N-2l-2 0
 0
 2
 0
 2
 ½
qminus
         N+2l-2+N-2l+2 0
 0
 2
 0
 -2
 ½
r
         [N+l-2+N-l+2,Nz]+ 0
 1
 1
 0
 -2
 1
DqJ
         N2[N+2l+2+N-2l-2] 2
 0
 2
 0
 2
 ½
DqK
         [N+2l+2+N-2l-2,Nz2]+ 0
 2
 2
 0
 2
 ½
DrJ
         N2[N+l-2+N-l+2,Nz]+ 0
 1
 1
 0
 -2
 1
DrK
         [[N+l-2+N-l+2,Nz]+,Nz2]+ 0
 -3
 1
 0
 -2
 1
 zPower <= -3 flags use of two anticommutators
HJ N6 6 0 0 0 0 1
HJK N4Nz2 4 2
 0 0 0 1
HKJ N2Nz4 2 4
 0 0 0 1
HK Nz6 0 6
 0 0 0 1
LJ N8 8 0 0 0 0 1
LJJK N6Nz2 6 0 0 0 0 1
LJK N4Nz4 4 0 0 0 0 1
LKKJ N2Nz6 2 0 0 0 0 1
LK Nz8 0 0 0 0 0 1

Spin-Rotational Hamiltonian expressed as perturbations

The spin rotation terms can be expressed as perturbations.

 Operator
 JPower
         zPower
         pPower
         lPower
         lChange SzPower
         SpPower
         SPower
 NSPower
         Scale
Factor
ebb N+S- + S+N-+ N-S+ + S-N+
= 2(N+S- + N-S+)
= 8(NxSx+NySy) 		0
 0
 1
 0
 0
 0
 -1
 0
 0
 1/4
ecc
NzSz + SzNz
=2NzSz 		0
 1
 0
 0
 0
 1
 0
 0
 0
 ½
DsN N2N.S 2
 0
 0
 0
 0
 0
 0
 0
 1
 1
DsNK
         [N2, NzSz]+ 2
 1
 0
 0
 0
 1
 0
 0
 0
 ½
DsKN
         N.S Nz2 0
 2
 0
 0
 0
 1
 0
 0
 1
 1
DsK
         [Nz3, Sz]+ = 2Nz3Sz
0
 3
 0
 0
 0
 1
 0
 0
 0
 ½
alpha
         Sz2 0
 0
 0
 0
 0
 2
 0
 0
 0
 3
S2 0
 0
 0
 0
 0
 0
 0
 2
 0
 -1
beta
         S+2-S-2 0
 0
 0
 0
 0
 0
 2
 0
 0
 ½
aeff
         lzSz 0
 0
 0
 1
 0
 1
 0
 0
 0
 1


Symmetric Top Nucleus

Note that the current implementation only handles nuclei on the top axis. Handling of off-axis equivalent nuclei is planned for a future release.

Settings

Spin | Nuclear spin
AsNext | Nucleus is equivalent to following nucleus

Parameters

eQq | Qudrupole Coupling Constant
eQq2 | Extra Qudrupole Coupling Constant for degenerate states; This is defined by analogy with eQq2 in linear molecules, and gives the same matrix elements within K = ±1 states as in Λ = ±1 states for linear molecules.
Czz | Component along symmetry axis of Nuclear Spin - Rotation interaction.
Cperp | Average of components perpendicular to symmetry axis of Nuclear Spin - Rotation interaction.


Symmetric Top Transition Moments

The following types of transition moments are currently implemented for symmetric tops:

  • Spherical - electric dipole moment in spherical tensor form allowing its use for multiphoton and Raman transitions in addition to normal one photon transitions.
  • Cartesian - conventional a, b or c electric dipole moment components.


Spherical Transition Moment

Spherical Transition Moments for Symmetric Tops

This must be used for multiphoton or Raman transitions, and is also appropriate for single photon transitions classified as parallel or perpendicular, as noted below. The "Strength" number is the value of the vibronic only matrix element:
T(k,q) = <stateA, K+q| μ | stateB, K>
where k is the "Rank" and q the "Component" setting, normally chosen to be >= 0. The corresponding matrix element:
T(k,-q) = <stateA, K-q| μ | stateB, K>
is then computed by symmetry. The order of the states (which can be significant in cases involving multiple transition moments) is as displayed in the constants window.

Settings

Rank | Rank of transition: 1 for a normal electric dipole transition; see here for multiphoton or Raman transitions
Component | Projection quantum number of transition moment. The default is auto, which for simple cases implies taking the only value of the component which gives an allowed transitions. In the standard one photon case it will be 0 for a parallel transition and 1 for a perpendicular transition. For more complicated cases auto will not work and a specific component must be taken.

Parameters

Strength Transition (dipole) moment. For one photon transitions this has units of Debye. Note that the relative intensity is proportional to the square of this value.


Cartesian Transition Moment

Cartesian Transition Moment for Symmetric Tops

While this form of transition moment is more appropriate for asymmetric tops, as it allows transition moments to be set along the a, b, or c inertial axes, it can also be used for symmetric tops.

Settings

Rank | Rank of transition - 1 for a normal electric dipole transition.
Axis | Axis of transition moment - a, b or c. The two axes perpendicular to the symmetry axis will be equivalent.

Parameters

Strength Transition (dipole) moment. For correct absolute intensities this should be given in units of units of Debye. Note that the relative intensity is proportional to the square of this value.


Symmetric Top Sample Data Files

This section shows some examples of data files for various symmetric tops. These include:
  • The 2+1 multiphoton ionization spectrum of the C'-X transition in NH3
  • The pure rotational spectrum of the ground state of NH3


The 2+1 multiphoton ionization spectrum of the C'-X transition in NH3

This example is taken from "The resonance enhanced multiphoton ionization spectroscopy of ammonia isotopomers NH3, NH2D, NHD2 and ND3", M. Nolde, K.-M. Weitzel and C. M. Western, Phys. Chem. Chem. Phys. 7, 1527 (2005) http://dx.doi.org/10.1039/b417835c.

Data file: nh3c0x0.pgo

The data file simulates the origin band of the C'-X 2 + 1 multiphoton transition in NH3. See the paper for the constants used; note the ground state constants are not the best available but are adequate for the Doppler limited resolution. There are two points that are slightly non-standard:
  1. The point group used is D3h, rather than C3v. This is necessary to account for the inversion doubling in the ground state.
  2. There are two spherical tensor transition moments contributing to the transition, a zero rank component, <v=0|T(0,0)|v=0> and a second rank component <v=0|T(2,0)|v=0>

The picture below shows a simulation at 300K.


The pure rotational spectrum of the ground state of NH3 and the Stark effect

The pure rotational spectrum of the ground state of NH3/ND3 and the Stark effect

NH3

The data files given here were constructed by fitting to the line positions and intensities in the HITRAN 2008 (http://www.hitran.com) database. The fit was restricted to J < 16, and is sufficient to reproduce the line positions to better than 0.001 cm-1 and the intensities to better than 10-20 cm2 cm-1 Molecule-1. There are two points that are slightly non-standard:

  1. The point group used is D3h, rather than C3v. This is necessary to account for the inversion doubling in the ground state, which appears in the data file as two vibrational states:
    • s/0+ with A1' symmetry
    • a/0- with A2" symmetry
  2. To fit the K = 3n levels requires three perturbation operators:
    • <0+|J+-^6|0+> = J+6 + J-6
    • <0+|J^2J+-^6|0+> = J2(J+6 + J-6)
    • <0+|J+-^12|0+> = J+12 + J-12
Two separate data files are provided, with the required constants. The first is nh3x0.pgo which has the two inversion doublets in separate manifolds (s and a), with a transition moment acting between the two manifolds. This is a good starting point for simulating electronic spectra, where the transitions will typically be from one inversion doublet or other.

The Stark Effect

The second file, nh3x0one.pgo, has the same constants in, but with the two inversion doublets in the same manifold. The resulting energy levels will be the same, but as the dipole moment now acts within the manifold, the Stark effect in the ground state can be simulated with this file. To give quick calculation times Jmax has been set to 5 for this file. The energy level plot window can then be used to produce a plot of energy against field, as for example:

This shows the K = 1, M = 1 levels show a strong Stark effect, but the other levels show a rather weaker effect. The "Summary" button gives the following information:
   M  Sym   #    g Population Name J K (kl) Sym M         Energy Linear         Dipole     Err  Quadratic       Err  Two Level Delta     C              Dipole2    Err
   0    -   1    4 .660533316 a  0  0 A2"  0             0.7933 -5.20523347e-9 -.0309983 15.8% -1.0409798e-15 .02 %
   0    -   2    2 .036129526 s  1  1 E"  0             16.1730 -1.47243024e-9 -.0087686 15.8% -2.9448374e-16 .002%
   0    -   3    2 .032246486 a  1  1 E'  0             16.9632 -1.53137719e-9 -.0091197 15.8% -3.0627282e-16 .002%
   0    -   4    4 .042329414 s  1  0 A2'  0            19.8899 3.241105275e-9 .01930147 15.8% 6.48153456e-16 .033%
   1    -   1    2 .036129526 s  1  1 E"  1             16.1730 -7.02797997e-8 -.4185312 13.9% -1.3786935e-14 5.18% 16.583449 .82098935 -1.25126674e-7 -.7451561 .013%
   1    -   2    2 .032246486 a  1  1 E'  1             16.9632 6.802667704e-8 .40511341 13.9% 1.33363101e-14 5.36% 16.583784 .75886528 1.190970869e-7 .70924861 .015%
   1    -   3    4 .042329414 s  1  0 A2'  1            19.8899 -1.47290548e-9 -.0087715 15.8% -2.9457878e-16 .002%
This indicates that the K = 1 levels are intermediate between a first and second order Stark effect, and the others are essentially showing a second order (quadratic) Stark effect. See External Fields - The Zeeman and Stark Effects for more information.

ND3

A similar set of data files for ND3 is given below. The data sources are L Fusina and S N Murzin, J. Molec. Spectrosc. 167 464 (1994), L H Coudert and E Roueff, Astron. Astrophys. 449 855 (2006) and the ND3 linelist from the Cologne Database for Molecular Spectroscopy (CDMS).
  • nd3x0.pgo, similar to the nh3x0.pgo file above. This was derived by from an unweighted fit to all lines in the CDMS linelist with J < 16, which gave an average error of 7×10-5 cm-1 and a maximum error of 0.003 cm-1. This has the two ground state inversion doublets in different manifolds, giving a simpler description than in the next file.
  • nd3x0one.pgo, equivalent to the nh3x0one.pgo file above, with both ground state inversion doublets in the same manifold to allow the Stark effect to be simulated. This uses exactly the Hamiltonian and constants used in the Fusina and Murzin paper. This includes perturbations acting between the two inversion doublets, though note that the sign of the αJ and αK constants must be changed in PGOPHER to give consistent matrix elements. The line positions agree with the CDMS linelist to < 0.006 cm-1 (< 0.0005 cm-1 for J < 15). The operators mixing states are:
    • <0-|JzJ+-^3|0+> = [J+3 + J-3,Jz]+ (term in α)
    • <0+|J^2JzJ+-^3|0+> = J2[J+3 + J-3,Jz]+ (-term in αJ)
    • <0+|J+-^3|0+> = J+3 + J-3 (-term in αK)
  • nd3x0hyp.pgo which has the hyperfine structure due to the nitrogen nucleus added to the simulation, giving a linelist consistent with the Coudert and Roueff paper.


Asymmetric Tops

See Making an Asymmetric Top Data File for an introduction.

PGOPHER will calculate rotational structure for asymmetric tops for the point groups C1, Ci, C2, Cs, D2, C2v, C2h or D2h, including effects due to electron and nuclear spin.

Quantum Numbers

The following standard quantum numbers are used or displayed for asymmetric tops:
J | Total angular momentum excluding nuclear spin
N | The rotational angular momentum (excluding electron and nuclear spin). J = N + S
Ka | The projection of N on to the a inertial axis; see Symmetry and Axis System
Kc | The projection of N on to the c inertial axis.
K | The projection of N onto the inertial axis determined by the representation.

Symmetry

See Symmetry and Axis System

Basis States

The basis states used by PGOPHER are standard symmetric top functions, and are displayed as:
|Name J N K +->

where Name is the manifold and state name and J, N and K are the quantum numbers described above. N is ommited for singlet states. If + or - is present, it implies the basis state is the symmetised combination:

1/Sqrt(2){ |JNK> ± |JN-K> }

If hyperfine structure is included in the calculation then F (and intermediate quantum numbers if there is more than one nucleus) is added to the end. If PhaseAdjust is set, then these functions are multiplied by an additional phase factor to minimize the number of imaginary matrix elements:

 | K even, + | K even, - | K odd, + | K odd, -
N even | 1 | -i | i | -1
N odd | i | -1 | 1 | -i

State Labels

The possible contents of state labels are:
Name | The manifold and state name
N | The N quantum number
Ka | The projection of N along the a inertial axis.
Kc | The projection of N along the c inertial axis.
J | The J quantum number; only show here if S > 0.
 | Hyperfine quantum numbers are added at the end as required.
For example, a state may give the following label:
v=0  6  1  6
where the name is v=0, N=J = 6, Ka = 1 and Kc = 6.

Further Details

  • Making an Asymmetric Top Data File
  • The Hamiltonian
  • Symmetry and Axis System
  • Pseudo C2v Symmetry
  • Molecule Settings
  • State Settings
  • Perturbations
  • Nuclear Hyperfine Structure
  • Transition Moment types
  • Sample Data Files


Making a Data File for an Asymmetric Top Molecule

A simple asymmetric top molecule file can be generated from File, New, Asymmetric Top This initializes the program for a molecule of C2v symmetry with a band origin of 2000 cm-1and with rotational constants in both states of A = 9 cm-1, B = 1.2 cm-1 and C = 1 cm-1. To adjust the constants (and set the type of vibronic transition) use select View, Constants. Most constants and settings can be left unchanged at their default values (and indeed should be unless you need a specific effect) but the ones that must normally be changed are adjusted as follows:
  1. At the Molecule level (Click on "AsymmetricTop") the PointGroup, Representation and the position of the symmetry elements within the molecule (controlled by C2zAxis and C2xAxis) are critical - see Axis systems and symmetries for asymmetric tops. If you have equivalent nuclei the statistical weights (eeWt, eoWt, oeWt and ooWt) may also need setting. Note that you should leave nNuclei at 0 unless you specifically want to calculate hyperfine structure.
  2. Adjust the ground state by clicking on the "v=0" entry under "Ground". The key things to set are
    • The Symmetry
    • The overall electronic spin, S
    • The rotational constants, A, B and C.
  3. Now switch to the upper state (click on the "v=1" entry under "Excited") . The key things to set here are:
    • The Origin
    • All the settings and values listed above under the ground state.
  4. The transition moment may also need adjusting - click on "<v=1|a|v=0>" . Key things to adjust are:
    • The axis of the dipole moment - the default is along the a axis, and can be changed with the Axis setting. The axis is likely to change if you change the symmetry or point ground of the molecule.
    • For low symmetry asymmetric tops more than one transition moment may be needed; either:
      • right click on the transition moments object (<Excited|mu|Ground>) in the tree view and select "Add New...","Cartesian Transition Moment" (or other type)
      • or right click on the transition moment (<v=1|a|v=0>) and select copy and then paste to produce a duplicate transition moment that can be adjusted.
    • Raman and multiphoton transitions are covered in a separate section.
For details of the Hamiltonian used, see the section on the Asymmetric Top Hamiltonian.

Pure Rotational (Microwave) Spectra

For a pure rotational transition only do steps 1 and 2 as above and then:
  3. Right click on <Excited|mu|Ground> (the transition moments object) and select rename. Change the "Bra" entry in the rename dialog so that both entries read "Ground". (This converts the transition moment to act within the ground state, rather than connecting two different states.) Adjustment to the transition moment may also be required - see step 4 above.
  4. The upper state can be deleted - right click on "Excited" and select delete.
  5. The default frequency range for the plot will still be in the infra-red; press the simulate button and then the All button to see a spectrum.


Asymmetric Top Hamiltonian

Closed Shell Molecules

The asymmetric top Hamiltonian used is either of the A or S standard reduced forms proposed by Watson (Watson, 1977). The SReduction flag at the Molecule level determines which one, with a setting of false implying the A reduction is used. When reporting these constants it is important to specify both the reduction and the axis system used. Note that, for open shell systems with S > 0, J should be replaced with N in the discussion below, though not in the parameter names.

The rigid rotor part can be specified in two ways, independent of the reduction:

or the equivalent form (which can give better determined parameters):

where:

and:

Note that this alternate form, as currently implemented, requires the a and z axes to be same, i.e. for a Ir or Il representation to be used.

The different forms of the centrifugal distortion terms do not have a simple relationship:

 | A reduction
Quartic |
Sextic |
Octic |

 | S reduction
Quartic |
Sextic |
Octic |

Note that various symbols are in use for many of the centrifugal distortion constants; in particular different symbols are typically used for the A and S reduction constants rather than as here. Some of these are listed below, together with the name PGOPHER uses.

PGOPHER

A reduction

S reduction

A

A

B

B

C

C

BBar

Bdelta

DJ

ΔJ

DJ

DJK

ΔJK

DJK

DK

ΔK

DK

deltaJ

δJ

d1

deltaK

δK

d2

HJ

ΦJ

HJ

HJK

ΦJK

HJK

HKJ

ΦKJ

HKJ

HK

ΦK

HK

phiJ

φJ

h1

phiJK

φJK

h2

phiK

φK

h3

LJ

LJ

LJJK

LJJK

LJK

LJK

LKKJ

LKKJ

LK

LK

llJ

lJ

llJK

lJK

llKJ

lKJ

llK

lK

Open Shell Molecules

For open shell molecules (S > 0) a Hund’s case (b) basis is used. The rotational part is as above, though for J and its components read N throughout. The following additional terms are present:

Spin Rotation Interaction

εaaNaSa + εbbNbSb + εccNcSc
+ ½ε‾ab(NaSb + SbNa + NbSa + SaNb)
+ ½ε‾ac(NaSc + ScNa + NcSa + SaNc)
+ ½ε‾bc(NbSc + ScNb + NcSb + SaNb)

where ε‾ab = eabbar = ½(εab + εba), ε‾ac = eacbar = ½(εac + εca) and ε‾bc = ebcbar = ½(εbc + εcb). The slightly long winded form arises because the operators Np and Sq only commute if p = q. Following Brown and Sears (1979) the centrifugal terms come in two slightly different forms, depending on the representation:

A reduction: | ΔsN N2N.S + ½ΔsNK(N2NzSz+NzSzN2) + ΔsKN N.S Nz2 + δsN N.S(N+2 + N-2) + ½δsK{(N+2 + N-2)NzSz + NzSz(N+2 + N-2)}
S reduction: | DsN N2N.S + ½DsNK(N2NzSz+NzSzN2) + DsKN N.S Nz2 + ds1N.S(N+2 + N-2) + ds2(N+3S+ + N-3S-)

Only that last term actually has a different operator form. Note that the S reduction names are used to label the parameters.

Spin Spin Interaction

α(3Sz2-S2) + β(Sx2-Sy2)

Also in use are D = 3α and E = β.

References

  • J. M. Brown and T. J. Sears, "A reduced form of the spin-rotation Hamiltonian for asymmetric top molecules, with applications to HO2 and NH2, J. Mol. Spec. 75, 111 1979.
  • J. K. G. Watson in "Vibrational Spectra and Structure" (Ed: J. Durig) Vol 6 p 1, Elsevier, Amsterdam, 1977.


Axis systems and symmetries for asymmetric tops

In setting up asymmetric top calculations, care must be taken in setting the axis systems used, particularly for results to be consistent with other work. The key point to realize is that there are three more or less independent body fixed (Cartesian) axis systems to be chosen, and the choice is often arbitrary, or subject to a convention that is not necessarily followed. The choice is determined in PGOPHER by the settings PointGroup, Representation, C2zAxis and C2xAxis at the molecule level. The SReduction setting is also similarly important, though it only affects the form of the Hamiltonian rather than axis choice.

Principal Axes - A, B and C

The principal axes (here written as a, b and c) are chosen by convention so that the rotational constants are in the order A > B > C, though PGOPHER does not check for, or even require, this ordering. If only three constants are used, then any permutation of these numbers will give exactly the same energy levels. However, most other constants will require adjustment if the axis choice is changed, as discussed in the next section.

The Representation - x, y and z

When calculating the energy levels PGOPHER will use standard symmetric top functions, implying a choice must be made as to which axis is chosen for K, the body fixed projection of J. This in turn determines the basis functions used. There are three possible choices for this axis, along the A, B or C inertial axes, which are labeled I, II or III respectively. It is conventional to label this axis as z, so that the Jz operator has eigenvalues of K. x and y axes must also be chosen, labeled r and l, giving six possibilities overall:
 | Ir | IIr | IIIr | Il | IIl | IIIl
z | a | b | c | a | b | c
x | b | c | a | c | a | b
y | c | a | b | b | c | a

 | Ir | IIr | IIIr | Il | IIl | IIIl
a | z | y | x | z | x | y
b | x | z | y | y | z | x
c | y | x | z | x | y | z

The labels Ir ... IIIl are known as the representation, and must always be specified when quoting rotational constants (other than A, B or C) for asymmetric tops. The obvious choice would seem to be I for near prolate tops and III for near oblate tops, as this will result in the choice of basis for which K is closest to a good quantum number. However, unless PGOPHER is set to truncate the basis in some way (which it will not do by default) the basis is sufficiently complete that the choice of representation should make no difference to the final energy levels. In practice it will make a difference because most of the rotational constants are expressed with respect to the (x, y, z) axis system, rather than the (a, b, c) principal axis system. As an example, consider the Dk or Δk centrifugal distortion term, which is defined as:
DkJz4≡ DkK4
Changing the representation will therefore mean that the operator corresponding to Dk will change and the energy levels will also change. It will normally be possible to regain the same energy level pattern after changing the representation, but only by adjusting all of the constants. An exact match will only be achievable by adding higher order constants.
As an example, consider the ground vibronic level of HCHO, for which the Ir representation is commonly used. Using J ≤ 10 levels calculated using the Ir representation as input to a PGOPHER energy level fit yields the following sets of constants:
 | Ir | IIr | IIIr | Il
A | 9.405524207646(36) | 9.4055520(69) | 9.4055261(66) | 9.405524207646(36)
B | 1.29543120899(13) | 1.294704(15) | 1.296011(14) | 1.29543120899(13)
C | 1.13419132182(13) | 1.134891(15) | 1.133609(14) | 1.13419132182(13)
ΔK | 6.476176877(13)e-4 | 6.4792(26)e-4 | 6.4791(25)e-4 | 6.476176877(13)e-4
ΔJK | 4.30670962(16)e-5 | -9.9265(35)e-4 | -9.9444(32)e-4 | 4.30670962(16)e-5
ΔJ | 2.51257682(34)e-6 | 3.47693(92)e-4 | 3.48291(87)e-4 | 2.51257682(34)e-6
δK | 3.4294099(51)e-5 | 3.16927(88)e-4 | -3.29653(85)e-4 | -3.4294099(51)e-5
δJ | 3.4872359(41)e-7 | -1.72970(48)e-4 | 1.72662(47)e-4 | -3.4872359(41)e-7
σ | 2.7e-9 | 5.2e-4 | 5.2e-4 | 2.7e-9
Note that changing between r and l only changes the sign of the off diagonal centrifugal distortion constants, δJ and δK.

The Point Group - x', y' and z'

The third axis system is that defined by the symmetry of the molecule, and is set by the C2zAxis and C2xAxis variables. This is most straightforward to understand for C2v where two things must be specified:
First is the location of the C2 axis, which is conventionally the z axis in the character table, so we use z' for this to distinguish it from the z axis used to define K as described in the previous section. The C2zAxis variable must be set to control this; possible values are a, b or c.
Secondly we must choose one of the two mirror panes to be perpendicular to the x' axis; the C2xAxis variable must be set to control this. This must be different from the C2 axis but the choice is otherwise in a sense arbitrary. However, it does have the effect of swapping over the B1 and B2 symmetries, so it is important to be consistent, particularly when comparing to the literature. The convention for planar molecules is to take the x' axis out of the plane, which means it will always be the c axis for planar asymmetric tops. The overall character table then looks like this:

C2v | Sym | E | C2(z') | σ(x'z') | σ(y'z')
 |  |  | Rπ(z') | Rπ(y') | Rπ(x')
A1 | 0 | 1 | 1 | 1 | 1
A2 | 1 | 1 | 1 | -1 | -1
B1 | 2 | 1 | -1 | 1 | -1
B2 | 3 | 1 | -1 | -1 | 1
The Sym column gives the numbers PGOPHER uses internally to represent the symmetry.

Symmetry of Rotational Wavefunctions

The C2v group is the point group of the molecule, and as such is only appropriate for determining vibronic symmetry. However, when considering the symmetry of the overall wavefunction, the symmetry of the rotational wavefunction is also required, and this is best done using the permutation inversion group of the molecule. For molecules with C2v symmetry this is straightforward, as each overall operation in the permutation inversion group can be taken as an operator acting on the rotational wavefunction combined with an operation of the point group. The operations on the rotational wavefunctions are written as Rπ here, and rotate the rotational wavefunction by 180° about the given body fixed axis. The paring with the operations of the conventional point group are indicated in the tables above. The effect on a symmetric top basis function defined such that K is along the z' axis is:
Rπ(z') |J, K> = (-1)K|J, K>
Rπ(y') |J, K> = (-1)J-K|J, -K>
Rπ(x') |J, K> = (-1)J|J, -K>
As these symmetry operations changes the sign of K, symmetry adapted functions are obtained by taking linear combinations of the +K and -K functions:
|J, |K|, ±> = 2-1/2[|J, K>±|J, -K>]
This is the Wang transformation, and gives the basis functions PGOPHER uses. Given the alternation of symmetries with K the odd and even K levels will be different giving four different sorts of basis functions, designated E+ (K even, positive combination), E-, O+ and O-. K = 0 is a special case; there is no E- function and the E+ function is just |J, 0>. In the C2v point group these correspond to four different symmetries; the actual symmetry depends on the axis choice, but can be worked out from the tables above.

 | Rπ(z) | Rπ(y) | Rπ(x)
E+ | 1 | (-1)J | (-1)J
E- | 1 | -(-1)J | -(-1)J
O+ | -1 | -(-1)J | (-1)J
O- | -1 | (-1)J | -(-1)J

ee eo oe oo Notation

In discussing the symmetry of rotational wavefunctions, the ee/eo/oe/oo notation is often used, which specifies whether the Ka and Kc quantum numbers respectively are even or odd. This notation is used internally by PGOPHER to handle rotational symmetries, and is used to specify statistical weights. The corresponding symmetries are:

RoSym | KaKc | Rπ(a) | Rπ(b) | Rπ(c)
0 | ee | 1 | 1 | 1
1 | eo | 1 | -1 | -1
2 | oe | -1 | -1 | 1
3 | oo | -1 | 1 | -1
The statistical weights are set in the constants window for a totally symmetric vibronic state for the molecule under consideration; PGOPHER will convert the symmetries as required.

Overall symmetry

PGOPHER requires the overall rovibronic symmetry (rotational × vibrational × electronic) to calculate any given state as, in general, Hamiltonian matrices containing all states of the same total angular momentum and rovibronic symmetry are set up and diagonalized. (The point group symmetry number given above will be used internally.) In the simple case that the vibronic wavefunction is totally symmetric (A1 in C2v) this means that the rotational symmetry will be the same as the overall symmetry. The ee rotational functions are always totally symmetric, and thus correspond to A1 symmetry, but for the other rotational functions the matching function will depend on the mapping between the a, b and c axes and the x', y' and z' axes, which is in turn determined by the C2zAxis and C2xAxis settings. For the HCHO case the conventional choice is C2zAxis = a and C2xAxis = c, giving the following character table:

C2v |  | Sym | E | C2(a) | σ(ac) | σ(ab) |  |
 |  |  |  | Rπ(a) | Rπ(b) | Rπ(c) | Even J | Odd J
A1 | ee | 0 | 1 | 1 | 1 | 1 | E+ | E-
A2 | eo | 1 | 1 | 1 | -1 | -1 | E- | E+
B1 | oo | 2 | 1 | -1 | 1 | -1 | O+ | O-
B2 | oe | 3 | 1 | -1 | -1 | 1 | O- | O+

J adjusted symmetry

From the table above it can be seen that the form of the basis functions alternates with J, in that E+ functions have A1 symmetry for even J but A2 for odd J. In considering the energy level and transition patterns it is helpful to consider the E+ levels together, rather than the A1 functions. (Similar considerations arise in linear molecules, where e and f parity labels (which alternate with J) are more useful than the absolute parity.) It is therefore helpful to introduce the idea of a J adjusted symmetry. There is no standard notation for this, so PGOPHER uses the Wang labels. For the case illustrated here E+ alternates between A1 and A2 and the complete table is:

 |  | Even J |  |  | Odd J
E+ | Ka+Kc=J | A1 | 0 | ee | A2 | 1 | eo
E- | Ka+Kc=J+1 | A2 | 1 | eo | A1 | 0 | ee
O+ | Ka+Kc=J | B1 | 2 | oo | B2 | 3 | oe
O- | Ka+Kc=J+1 | B2 | 3 | oe | B1 | 2 | oo

Note that for cases where the statistical weights are all 1 (i.e. no equivalent nuclei) the C2zAxis and C2xAxis settings will not affect the form of the spectra, but will affect the symmetry labels given.

PGOPHER input and display of symmetry

When displaying the symmetry PGOPHER will normally use the J adjusted symmetry labels described above or, if JAdjustSym for the Mixture is set to false, the standard irreducible representation labels for the point group. On input (typically in a line list file) either notation is accepted or the symmetry number (the Sym column in the tables above) can also be given. To display the various labels used above for any given state, right click on the state name in the constants window and select "Symmetry Table". The result will be found in the log window.

Other Point Groups

D2

This group is the same size as C2v and therefore many of the ideas used above carry over directly:
D2 | Sym | E | C2(z') | C2(y') | C2(x')
 |  |  | Rπ(z') | Rπ(y') | Rπ(x')
A | 0 | 1 | 1 | 1 | 1
B1 | 1 | 1 | 1 | -1 | -1
B2 | 2 | 1 | -1 | 1 | -1
B3 | 3 | 1 | -1 | -1 | 1
The C2zAxis and C2xAxis variables indicate the principal axes that correspond to the z' and x' axes of the point group. The J adjusted symmetry notation is essentially the same as for C2v.

Lower Symmetry Groups - C1, C2 and Cs

The character tables for these point groups can be derived from C2v by removing one or more of the operations of the group

C1

This has no symmetry operations, so all states have the same symmetry, A or symmetry number 0. The C2zAxis and C2xAxis variables are therefore both ignored, and the discussion about J adjusted symmetry does not apply to this point group.

C2

This and Cs have a single symmetry operation, and thus only two possible symmetries:

C2 | Sym | E | C2(z')
 |  |  | Rπ(z')
A | 0 | 1 | 1
B | 1 | 1 | -1
Only the C2zAxis variable is used, and specifies which of the principal axes corresponds to the C2 axis of the molecule; the C2xAxis variable is ignored. For the J adjusted symmetry labels there are three possible set of labels, depending on which of the Wang symmetries pair up:
  • E and O, used where E+ has the same symmetry as E- and O+ has the same symmetry as O-
  • + and -, used where E+ has the same symmetry as O+ and E- has the same symmetry as O-
  • E+O- and E-O+, used where E+ has the same symmetry as O- and E- has the same symmetry as O+
The appropriate set depends on the representation and C2zAxis.

Cs

This is similar to C2 in only having a single symmetry operation, and thus only two possible symmetries:

Cs | Sym | E | σ(x'y')
 |  |  | Rπ(z')
A' | 0 | 1 | 1
A" | 1 | 1 | -1
Only the C2zAxis variable is used, and specifies which of the principal axes is perpendicular to the symmetry plane. For a planar molecule this will always be the c axis. The C2xAxis variable is ignored. For the J adjusted symmetry labels there are three possible set of labels, depending on which of the Wang symmetries pair up:
  • E and O, used where E+ has the same symmetry as E- and O+ has the same symmetry as O-
  • + and -, used where E+ has the same symmetry as O+ and E- has the same symmetry as O-
  • E+O- and E-O+, used where E+ has the same symmetry as O- and E- has the same symmetry as O+
The appropriate set depends on the representation and C2zAxis.

Groups with a centre of symmetry - Ci, C2h and D2h

These can all be generated by adding a centre of symmetry, and thus g and u labels to one of the above. Rotational wavefunctions always have g symmetry, so any given vibronic state will only have half of the possible rovibronic symmetries.

Ci

This is generated by adding a centre of symmetry to C1:
Ci | Sym | E | i
 |  |  | E*
Ag | 0 | 1 | 1
Au | 1 | 1 | -1
The C2zAxis and C2xAxis variables are therefore both ignored, and the discussion about J adjusted symmetry does not apply to this point group as all the rotational states for a given vibronic state have the same symmetry.

C2h

This is generated by adding a centre of symmetry to C2:
C2h | Sym | E | C2(z') | i
 |  |  | Rπ(z') | E*
Ag | 0 | 1 | 1 | 1
Bg | 1 | 1 | -1 | 1
Au | 2 | 1 | 1 | -1
Bu | 3 | 1 | -1 | -1
Only the C2zAxis variable is used, and specifies which of the principal axes corresponds to the C2 axis of the molecule; the C2xAxis variable is ignored. For the J adjusted symmetry labels there are 6 possible set of labels, depending on which of the Wang symmetries pair up:
  • Eg and Og, used where E+ has the same symmetry as E- and O+ has the same symmetry as O-
  • +g and -g, used where E+ has the same symmetry as O+ and E- has the same symmetry as O-
  • E+O-g and E-O+g, used where E+ has the same symmetry as O- and E- has the same symmetry as O+
and another 3 sets with u symmetry. The appropriate set depends on the representation and C2zAxis.

D2h

This is generated by adding a centre of symmetry to D2:
D2h | Sym | E | C2(z') | C2(y') | C2(x') | i
 |  |  | Rπ(z') | Rπ(y') | Rπ(x') | E*
Ag | 0 | 1 | 1 | 1 | 1 | 1
B1g | 1 | 1 | 1 | -1 | -1 | 1
B2g | 2 | 1 | -1 | 1 | -1 | 1
B3g | 3 | 1 | -1 | -1 | 1 | 1
Au | 4 | 1 | 1 | 1 | 1 | -1
B1u | 5 | 1 | 1 | -1 | -1 | -1
B2u | 6 | 1 | -1 | 1 | -1 | -1
B3u | 7 | 1 | -1 | -1 | 1 | -1
The C2zAxis and C2xAxis variables indicate the principal axes that correspond to the z' and x' axes of the point group. The J adjusted symmetry notation is similar to that for C2v, though there are now 8 possibilities, E+g, E+u, E-g, E-u, O+g, O+u, O-g and O-u.

PGOPHER 5.1 input and display of symmetry

In version 5.1 of PGOPHER a different numbering scheme was used to label the rovibrational symmetry. This had a less obvious relationship with the various ways of denoting symmetry as described above, hence the change. This change only affects molecules with C2v, D2 or D2h symmetry. To use line list files generated for the old version, add a
pgopherversion 5.1
directive at the top of the file, as described here. The symmetry tables displayed by PGOPHER will show this number (Labeled "Old sym" in brackets) where it differs from the current scheme.


Pseudo C2v Symmetry

Pseudo C2v (or D2h) Symmetry

For asymmetric tops, the pure rotational Hamiltonian only contains operators involving even powers of the angular momentum, so is always symmetric with respect to a C2 rotation about any of the principal axes. The resulting group has the same form as the D2 point group, though it is often known as the V group in this context. For molecules with point groups C2v D2 and D2h the rotational operations acting on the rotational Hamiltonian are equivalent to operations on the molecule as a whole and no special considerations are required.

For lower symmetry groups it is not possible to map all of the C2 rotations about each of the principal axes to operations of the overall point group of the molecule, and indeed the full Hamiltonian will not have these symmetries. However, in the absence of perturbations acting between different vibronic states, there will be no operators that break the V symmetry and this can be used to simplify calculations. This is controlled by the PseudoC2v setting at the molecule level - if this is set a higher effective symmetry is used for calculations. In the most favorable cases, such as C1, this can lead to a reduction in memory usage by 4 and in run time by 16, though the savings are only going to be noticeable for complicated systems. The action on setting this flag depends on the point group and is described individually below.

An alternative approach is to set the symmetry of the molecule to a higher symmetry than it actually has, but then a symmetry check on allowed transitions must be disabled. This is the purpose of the FakeSym flag, which is also described below.

C1

For this case the single symmetry becomes 4, and the molecule is treated exactly as C2v, with the C2zAxis and C2xAxis settings controlling the symmetry labels used.

Cs

In this case turning PseudoC2v on splits each irreducible representation into two:

Cs |  | C2v |  | E | σ(x'y') |  |
 | Sym |  | Sym |  | Rπ(z') | Rπ(y') | Rπ(x')
A' | 0 | A1 | 0 | 1 | 1 | 1 | 1
A' | 0 | A2 | 1 | 1 | 1 | -1 | -1
A" | 1 | B1 | 2 | 1 | -1 | 1 | -1
A" | 1 | B2 | 3 | 1 | -1 | -1 | 1
and C2xAxis will control the labels used for the split state

C2

In this case turning PseudoC2v on splits each irreducible representation into two:

C2 |  | C2v |  | E | C2(z') |  |
 | Sym |  | Sym |  | Rπ(z') | Rπ(y') | Rπ(x')
A | 0 | A1 | 0 | 1 | 1 | 1 | 1
A | 0 | A2 | 1 | 1 | 1 | -1 | -1
B | 1 | B1 | 2 | 1 | -1 | 1 | -1
B | 1 | B2 | 3 | 1 | -1 | -1 | 1
and C2xAxis will control the labels used for the split state.

Ci

For this case PseudoC2v will actually force the use of D2h symmetry, with the g states becoming one of the four g symmetries in D2h and the u states becoming one of the four u symmetries in D2h. The C2zAxis and C2xAxis settings controlling the symmetry labels used.

C2h

For this case PseudoC2v will actually force the use of D2h symmetry, with each irreducible representation split into two:
C2h |  | D2h |  | E | C2(z') |  |  | i
 | Sym |  | Sym |  | Rπ(z') | Rπ(y') | Rπ(x') | E*
Ag | 0 | Ag | 0 | 1 | 1 | 1 | 1 | 1
Ag | 0 | B1g | 1 | 1 | 1 | -1 | -1 | 1
Bg | 1 | B2g | 2 | 1 | -1 | 1 | -1 | 1
Bg | 1 | B3g | 3 | 1 | -1 | -1 | 1 | 1
Au | 2 | Au | 4 | 1 | 1 | 1 | 1 | -1
Au | 2 | B1u | 5 | 1 | 1 | -1 | -1 | -1
Bu | 3 | B2u | 6 | 1 | -1 | 1 | -1 | -1
Bu | 3 | B3u | 7 | 1 | -1 | -1 | 1 | -1
and C2xAxis will control the labels used for the split state.

FakeSym

 An alternative approach is to set the point group to the higher symmetry; this will give equivalent results provided that the normal check for allowed transitions from the overall rovibronic symmetry is disabled by setting FakeSym to true. As an example consider the possible rotational transitions starting from the 000 level of a totally symmetric vibronic state to J = 0 and 1 levels of another totally symmetric vibronic state. The allowed transitions will depend on the point group and the alignment of the principal axes with the symmetry elements. For two specific choices we have:
Upper State | Rovibronic Symmetry in C2v (C2zAxis = a, C2xAxis = c) | Rovibronic Symmetry in Cs (C2zAxis = c)
000 | A1 - forbidden | A' - forbidden
101 | A2 - allowed | A" - allowed
111 | B1 - forbidden | A" - allowed
110 | B2 - forbidden | A' - forbidden
In C2v symmetry only one component of the transition dipole can give a transition, and with the example axis choice above this is the a component. For this transitions with ΔKa = 0, ΔKc = ±1 are allowed so only one of the four listed transitions is possible. (This also follows as the the rovibronic symmetry of the transition dipole moment is always A2 in C2v.) In Cs symmetry, given that the symmetry axes are chosen such that the a dipole is still symmetric, the same transition is still allowed but another component, here the b component, now has the same symmetry as the a component and thus also gives an allowed transition. To use C2v settings (with the consequent reduction in matrix sizes) to calculate b type transitions thus requires a symmetry check on allowed transitions to be disabled, which setting FakeSym to true will do. Similar logic allows C2v settings to be applied to a C1 molecule, where c type transitions can also be allowed.


Asymmetric Top Molecule

These are the settings for an asymmetric molecule as a whole, i.e. those common to all states (but perhaps different for different isotopologues).

Settings

nNuclei | Number of nuclei to calculate hyperfine structure for. Leave this at 0 unless you want the hyperfine structure resolved.
Jmin | Minimum J to use in calculation - set to -1 (default) to use value from the species.
Jmax | Maximum J to use in calculation - set to -1 (default) to use value from the species.
Colour | Colour - set to "None" to take value from elsewhere as explained in Determining Colours and J ranges.
JAdjustSym If set, energy level plots and Fortrat diagrams will take account of the alternation in symmetry with J that is often found. For example the E+ and E- Wang matrices will alternate in J for selected point groups - see Axis systems and symmetries for asymmetric tops for more details.
BlockMatrix Set to force check of Hamiltonian matrix for factorization into blocks before diagonalization. If blocks are found, these are diagonalized separately, ensuring states that have no connecting matrix elements are not accidentally mixed if the eigenvalues happen to be very close. In principle, if full use is made of symmetry and states are separated into separate manifolds as appropriate, this should not be necessary but can easily happen if selected terms in the Hamiltonian are zero or interactions between states are omitted.
PointGroup | Point group - C1, Ci, C2, Cs, D2, C2v, C2h or D2h
Representation | Representation - Ir, IIr, IIIr, Il, IIl or IIIl
SReduction | Use Watson's S reduction (as opposed to A).
eeWt | Statistical weight for ee levels for totally symmetric vibronic states. The weights will be permuted appropriately for vibronic states of other symmetries. Note that any nucleus for which hyperfine structure is to be calculated should not be included in calculating the statistical weights.
eoWt | Statistical weight for eo levels for totally symmetric vibronic states.
oeWt | Statistical weight for oe levels for totally symmetric vibronic states.
ooWt | Statistical weight for oo levels for totally symmetric vibronic states.
C2zAxis a, b, or c; C2 axis in C2v, C2 or C2h; axis perpendicular to symmetry plane in Cs - see Axis systems and symmetries for asymmetric tops
C2xAxis | a, b, or c; out of plane axis in C2v
PseudoC2v Ignore any operators breaking C2v symmetry - see Pseudo C2v Symmetry
FakeSym | Turn off transition moment test - see the discussion in Pseudo C2v Symmetry
PhaseAdjust Multiply the basis states by a phase factor chosen to reduce the number of imaginary matrix elements. The factors are:
 | K even, + | K even, - | K odd, + | K odd, -
N even | 1 | -i | i | -1
N odd | i | -1 | 1 | -i
See the description of the basis states used.

Parameters

Abundance Abundance of this isotope; default is 1


Asymmetric Top State

This allows setting rotational constants and other values specific to each state in the molecule.

Settings

Colour | Colour - set to "None" to take value from elsewhere as explained in Determining Colours and J ranges.
RveSelect | Only include given rovibronic symmetry - for normal use set to 'all'
S | Spin
Symmetry | Symmetry
Kmin | Minimum |K| to use in basis; -1 (default) for no lower limit. This is designed for use where there are issues with the Hamiltonian, such as when poorly defined centrifugal distortion constants put high K levels in unreasonable places, or simply to reduce the size of the matrix. To plot selected transitions use the transitions dialog, rather than this setting as Kmin and Kmax will change the energies and intensities.
Kmax | Maximum |K| to use in basis; -1 (default) for no upper limit.

Parameters

 A
Reduction
 S
Reduction
Origin

State Origin.
Width

Linewidth (rotation independent) for state; see Width and Lifetime effects
A

A rotational constant
B

B rotational constant
C

C rotational constant
BBar

Average of rotational constants perpendicular to K axis - Alternate form for rotational constants. Currently requires the a and z axes to be same, i.e. for a Ir or Il representation to be used.
BDelta

Difference between rotational constants perpendicular to K axis - Alternate form for rotational constants. Currently requires the a and z axes to be same, i.e. for a Ir or Il representation to be used.
DK | ΔK | DK | K4 Quartic Centrifugal Distortion
DJK | ΔJK | DJK | J(J+1)K2 Quartic Centrifugal Distortion
DJ | ΔJ | DJ | J2(J+1)2 Quartic Centrifugal Distortion
deltaK | δK | d2 | deltaK - A/S reduction dependent off diagonal Quartic Centrifugal Distortion
deltaJ | δJ | d1 | deltaJ - A/S reduction dependent off diagonal Quartic Centrifugal Distortion
HK | ΦK | HK | K6 Sextic Centrifugal Distortion
HKJ | ΦKJ | HKJ | J(J+1)K4 Sextic Centrifugal Distortion
HJK | ΦJK | HJK | J2(J+1)2K2 Sextic Centrifugal Distortion
HJ | ΦK | HJ | J3(J+1)3 Sextic Centrifugal Distortion
phiK | φK | h3 | A/S reduction dependent off-diagonal Sextic Centrifugal Distortion
phiJK | φJK | h2 | A/S reduction dependent off-diagonal Sextic Centrifugal Distortion
phiJ | φJ | h1 | A/S reduction dependent off-diagonal Sextic Centrifugal Distortion
LK LK
K8 Octic Centrifugal Distortion
LKKJ LKKJ
J(J+1)K6 Octic Centrifugal Distortion
LJK LJK
J2(J+1)2K4 Octic Centrifugal Distortion
LJJK LJJK
J3(J+1)3K2 Octic Centrifugal Distortion
LJ LJ
J4(J+1)4 Octic Centrifugal Distortion
llK lK
A/S reduction dependent off diagonal Octic Centrifugal Distortion
llKJ lKJ
A/S reduction dependent off diagonal Octic Centrifugal Distortion
llJK lJK
A/S reduction dependent off diagonal Octic Centrifugal Distortion
llJ lJ
A/S reduction dependent off diagonal Octic Centrifugal Distortion
eaa | εaa | aa spin-rotation Parameter
ebb | εbb | bb spin-rotation Parameter
ecc | εcc | cc spin-rotation Parameter
eabbar | ½(εab + εba) | off-diagonal spin-rotation Parameter
eacbar | ½(εac + εca) | off-diagonal spin-rotation Parameter
ebcbar | ½(εbc + εcb) | off-diagonal spin-rotation Parameter
DsN DsN
 ΔsN quartic spin rotation parameter
DsNK | DsNK | ΔsNK | quartic spin rotation parameter
DsKN | DsKN | ΔsKN | quartic spin rotation parameter
DsK | DsK | ΔsK | quartic spin rotation parameter
ds1 | ds1 | δsN | quartic spin rotation parameter
ds2 | ds2 | δsK | quartic spin rotation parameter
alpha α
 Diagonal spin-spin coupling constant (=D/3)
beta | β | Off-Diagonal spin-spin coupling constant (=E)
wKa

multiplier of <Ja2> for linewidth; see Width and Lifetime effects
wKb

multiplier of <Jb2> for linewidth; see Width and Lifetime effects
wKc

multiplier of <Jc2> for linewidth; see Width and Lifetime effects
wBar

multiplier of <J(J+1)-K2> for linewidth; see Width and Lifetime effects
wDelta

multiplier of <J+2+J_2>/4 for linewidth; see Width and Lifetime effects
After 7.1.323 the definition of the spin-spin parameters alpha and beta changed to be consistent with the literature. Values in older files are converted on loading by multiplying alpha by sqrt(5) and beta by sqrt(6).


Nuclear Hyperfine Structure in Asymmetric Tops

If the parent molecule has nNuclei non zero, then each state will have nNuclei of the items listed below (TAsymmetricTopNucleus). The following coupling scheme is normally used:
F1 = J1 + I1; F2 = F1 + I2; ... F = Fn-1 + In
though an alternative scheme must be used for equivalent nuclei, as described under the AsNext setting. Note that any explicitly simulated nucleus should not be included in calculating the statistical weights.

Settings

Note that these two should be set at the molecule level, but are in fact implemented at the state level, with any change in these two properties copied to all the states in the molecule.

Spin | Nuclear spin. (Note that this setting should logically be at the molecule, rather than the state level. Changing a spin here will change the corresponding spins in any other states.)
AsNext | Set to indicate that this nucleus is equivalent to the following nucleus. This is required for molecules with a centre of symmetry, where nuclei not on the centre of symmetry must occur as equivalent pairs. In these circumstances all parameters are taken from the second of the two nuclei, and the modified coupling scheme: I12 = I1 + I2; F = J + I12 is used. This setting can also be used for molecules without a centre of symmetry, in which case the alternate coupling scheme is used but the nuclei are not forced, or even required to be identical. Note that equivalent nuclei are currently only partially implemented for asymmetric tops.

Parameters

aF | Nuclear spin - electron spin Fermi Contact interaction (I.S).
Tzz | Tzz = -(Txx+Tyy) component of Nuclear spin - electron spin dipole dipole interaction.
Txxmyy | Txx-Tyy component of Nuclear spin - electron spin dipole dipole interaction.
Tab | ab component of Nuclear spin - electron spin dipole dipole interaction.
Tac | ac component of Nuclear spin - electron spin dipole dipole interaction.
Tbc | bc component of Nuclear spin - electron spin dipole dipole interaction.
CHIzz | zz component of Nuclear Quadrupole interaction.
CHIxxmyy | xx-yy component of Nuclear Quadrupole interaction.
CHIab | ab component of Nuclear Quadrupole interaction.
CHIac | ac component of Nuclear Quadrupole interaction.
CHIbc | bc component of Nuclear Quadrupole interaction.
Caa | aa component of Nuclear Spin - Rotation interaction.
Cbb | bb component of Nuclear Spin - Rotation interaction.
Ccc | cc component of Nuclear Spin - Rotation interaction.


Asymmetric Top Perturbation

There will be one of these for each perturbation parameter in each state.

Settings

Nucleus | Index, starting from 1, of the nuclear spin involved in perturbation; 0 (default) for those not involving a nuclear spin.
SymSelect | Symmetry select
ScalePrev | Scale factor with respect to preceding perturbation
JPower | Twice power of N(N+1)
aPower | Power of Na
bPower | Power of Nb
cPower | Power of Nc
pPower Power of N±.
KSelect
 K that the perturbation applies to; set to "all" (default) to apply to all K. Currently requires that K= K' = Kselect
SaPower | Power of Sa.
SbPower | Power of Sb.
ScPower | Power of Sc.
SpPower | Power of S± - operator is S+SpPower + S-SpPower
SPower | Twice power of S2 = S(S+1)
NSPower | Power of N.S.

Currently the N± and S± operators can only be combined with the a/b/c style operators for the axis corresponding to the z axis so, for example, in the Ir representation N± can be combined with Na or Sa but not Nb or Sb.

The effective operator for rotational perturbations (i.e. where Nucleus = 0) when pPower is zero is:
NJPower [NaaPower, [NbbPower, NccPower]+]+
where:
[An, Bm]+ = AnBm + AnBm
provided that the special cases with n or m zero are taken as:
[An, B0]+ = An
[A0, Bm]+ = Bm
See AllowComplex and PhaseAdjust for options in handling imaginary operators. Note that versions before 7.1.138 multiplied perturbation matrix elements by a phase factor to ensure that all the matrix elements were real; the factor was 1 except where the overall operator involved an odd power of Ny, when it was i.

When pPower is non zero the effective operator is:
NJPower [NzzPower, (N+pPower + N-pPower)]+
with the same definitions as above. z will correspond to a, b or c depending on the representation.

The electron spin operators are similar, with the general form being:
[Sp, N.SNSPowerSSPower/2]+
or just Sp or N.SNSPowerSSPower/2 if only one is present. Currently the N.SNSPowerSSPower/2 operator is the only spin operator that can be combined with another spin operator.

If both rotation and spin operators are present, the most general form is:

NJPower/2NzzPower(N+pPower + N-pPower) Sp N.SNSPowerSSPower/2 + SSPower/2N.SNSPower Sp(N+pPower + N-pPower)NzzPowerNJPower/2

or

NJPower/2NzzPower[NxxPower, NyyPower]+ Sp N.SNSPowerSSPower/2 + SSPower/2N.SNSPower Sp [NxxPower, NyyPower]+ NzzPowerNJPower/2
As an example, consider the operator bPower = 1, cPower = 1, which PGOPHER displays as bc. This notionally corresponds to the operator NbNc + NcNb. In the Ir representation this is equivalent to NxNy + NyNx. Expressed in terms of raising and lowering operators this is -i(N+2- N-2)/2 so the matrix elements are:
<N,K-2|bc|N,K> = i sqrt((N*(N+1)+(-K+1)*(K-2))*(N*(N+1)-K*(K-1)))/2
<N,K+2|bc|N,K> = -i sqrt((N*(N+1)+(-K-1)*(K+2))*(N*(N+1)-K*(K+1)))/2
Note that, for this matrix element, or any other matrix element that is imaginary, allowing the matrix elements to be complex is required to ensure that the overall Hamiltonian matrix is Hermitian. If AllowComplex is false then the matrix elements used are simply the imaginary matrix elements multiplied by -i, which can result in a Hamiltonian matrix that is not symmetric. In this case <N,K-2|bc|N,K> = sqrt(x) and <N,K+2|bc|N,K> = -sqrt(x), but these two matrix elements should have the same sign.

Parameters

Value Size of perturbation.

Rotational Hamiltonian expressed as perturbations

The standard rotational Hamiltonian can be expressed entirely in terms of diagonal perturbations, as shown in the table below. This can be used as a basis for adding higher powers of the centrifugal distortion or other terms not provided as standard. zPower is not an actual setting; it corresponds to aPower, bPower or cPower depending on the representation used.

 Operator
 Reduction
 JPower
 aPower
 bPower
 cPower
 pPower
 zPower
 Scale
Factor
A Na2
 A/S
 0 2 0 0 0 0 1
B Nb2 A/S 0 0 2 0 0 0 1
C Nc2 A/S 0 0 0 2 0 0 1
BDelta | N+2 + N-2 | A/S | 0 | 0 | 0 | 0 | 2 | 0 | ¼
DJ | N4 ≡ N2(N+1)2 | A/S | 4 | 0 | 0 | 0 | 0 | 0 | -1
DJK | N2Nz2 ≡ N(N+1)K2 | A/S | 2 | 0 | 0 | 0 | 0 | 2 | -1
DK | Nz4≡ K4 | A/S | 0 | 0 | 0 | 0 | 0 | 4 | -1
deltaJ N2(N+2 + N-2) A
 2 0 0 0 2 0 -1
N2(N+2 + N-2) S
 2 0 0 0 2 0 1
deltaK [Nz2, N+2 + N-2]+ A
 0 0 0 0 2 2 -½
N+4 + N-4 S
 0 0 0 0 4 0 1
HJ N6 A/S 6 0 0 0 0 0 1
HJK N4Nz2 A/S 4 0 0 0 0 2 1
HKJ N2Nz4 A/S 2 0 0 0 0 4 1
HK Nz6 A/S 0 0 0 0 0 6 1
phiJ N4(N+2 + N-2) A/S
 4 0 0 0 2 0 1
phiJK N2[Nz2, N+2 + N-2]+ A
 2 0 0 0 2 2 ½
N2(N+4 + N-4) S
 2 0 0 0 4 0 1
phiK [Nz4, N+2 + N-2]+ A
 0 0 0 0 2 4 ½
N+6 + N-6 S
 0 0 0 0 6 0 1
LJ N8 A/S 8 0 0 0 0 0 ¼
LJJK N6Nz2 A/S 6 0 0 0 0 2 1
LJK N4Nz4 A/S 4 0 0 0 0 4 1
LKKJ N2Nz6 A/S 2 0 0 0 0 6 1
LK Nz8 A/S 0 0 0 0 0 8 1
llJ N6(N+2 + N-2) A/S
 6 0 0 0 2 0 1
llJK N4[Nz2, N+2 + N-2]+ A
 4 0 0 0 2 2 ½
N4(N+4 + N-4) S
 4 0 0 0 4 0 1
llKJ N2[Nz4, N+2 + N-2]+ A
 2 0 0 0 2 4 ½
N2(N+6 + N-6) S
 2 0 0 0 6 0 1
llK [Nz6, N+2 + N-2]+ A
 0 0 0 0 2 6 ½
N+8 + N-8 S
 0 0 0 0 8 0 1

Spin-Rotational Hamiltonian expressed as perturbations

The spin rotation terms can be expressed as perturbations. Note that terms such as eabbar need two perturbation items to reproduce the corresponding term in Hamiltonian.

 Operator
 aPower
 bPower
 cPower
 SaPower
 SbPower
 ScPower
 Scale
Factor 		Notes
eaa NaSa + SaNa
=2NaSa 		1
 0
 0
 1
 0
 0
 ½ = 2NaSa = 2SaNa as Na and Sa commute
ebb NbSb + SbNb
=2NbSb
 0
 1
 0
 0
 1
 0
 ½ = 2NbSb = 2SbNb as Nb and Sb commute
ecc NbSb + SbNb
=2NbSb
 0
 0
 1
 0
 0
 1
 ½ = 2NcSc = 2ScNc as Nc and Sc commute
eabbar
 NaSb + SbNa 1
 0
 0
 0
 1
 0
 ½ Two perturbations required
NbSa + SaNb 0
 1
 0
 1
 0
 0
 ½
eacbar
 NaSc + ScNa 1
 0
 0
 0
 0
 1
 ½ Two perturbations required
NcSa + SaNc 0
 0
 1
 1
 0
 0
 ½
ebcbar
 NbSc + ScNb 0
 1
 0
 0
 0
 1
 ½ Two perturbations required
NcSb + SbNc 0
 0
 1
 0
 1
 0
 ½
The quartic spin rotation terms are expressed in terms of the effective constants zPower and SzPower, where the z axis corresponds to a, b or c depending on the representation used.

 Operator
 Reduction
 JPower
         pPower
         zPower
         SpPower
         SzPower
         NSPower
         Scale
Factor
DsN
 N2N.S
 A/S
 2
 0
 0
 0
 0
 1
 1
DsNK
 [N2, NzSz]+ A/S 2
 0
 1
 0
 1
 0
 ½
DsKN
 N.S Nz2 A/S 0
 0
 2
 0
 0
 1
 1
DsK
 [Nz3, Sz] = 2Nz3Sz A/S 0
 0
 3
 0
 1
 0
 ½
ds1
 N.S(N+2 + N-2) A/S 0
 2
 0
 0
 0
 1
 1
ds2
 [N+2 + N-2, NzSz]+ A
 0
 2
 1
 0
 1
 0
 ½
[N+3, S+]+ + [N-3, S-]+
= 2(N+3S++N-3S-) 		S
 0
 3
 0
 1
 0
 0
 ½
Note cancelling factors of 2 and ½ in DsK.and the S form for ds2. They arise because the operator forms are derived allowing for the fact that the components of N and S do not, in general, commute, though in this case they do.

Spin-Spin Hamiltonian expressed as perturbations

 Operator
 SxPower
         SyPower
         SzPower
         SpPower
         Scale
Factor
alpha
 Sx2
 2
 0
 0
 0
 -1 3Sz2-S2 = 2Sz2- Sx2-Sy2
Sy2
 0
 2
 0
 0
 -1
Sz2
 0
 0
 2
 0
 2
beta
 S+2 + S-2 = 2(Sx2-Sy2)
 0
 0
 0
 2
 ½
Note that three terms are required to replicate alpha. The assignment of x, y and z is determined by the Representation.


Asymmetric Top Transition Moments

The following types of transition moments are currently implemented for asymmetric tops:

  • Cartesian - conventional a, b or c electric dipole moment components.
  • Spherical - electric dipole moment in spherical tensor form, appropriate for multiphoton or Raman transitions.
  • Orbital - the magnetic moment from electron spin, which includes residual orbital angular momentum.
  • Rotational - the magnetic moment from molecular rotation
  • Nuclear - the magnetic moment of a nucleus


Cartesian Transition Moment

Cartesian Transition Moments for Asymmetric Tops

This form of transition moment is particularly appropriate for asymmetric tops, as it allows transition moments to be set along the a, b, or c inertial axes.

Settings

Rank | Rank of transition - 1 for a normal electric dipole transition.
Axis | Axis of transition moment - a, b or c. To specify a transition moment not aligned along an axis, create two transition moment objects and specify the projection along each axis in the appropriate transition moment. (To duplicate the object right click on the transition moment in the tree view in the Constants Window, select copy and then paste.)

Parameters

Strength Transition (dipole) moment. For correct absolute intensities this should be given in units of units of Debye. Note that the relative intensity is proportional to the square of this value.


Spherical Transition Moment

This transition moment type must be used for multiphoton or Raman transitions. It is also appropriate for single photon transitions classified as parallel or perpendicular. The Strength numbers are actually taken as the sum and difference of the two components such that the value of the vibronic matrix element where K increases is (taking q > 0):
<stateA, K+q| μ| stateB, K> = T(k,q) + T(k,-q)
and where it decreases is:
<stateA, K-q| μ| stateB, K> = T(k,q) - T(k,-q)
T(k,q) and T(k,-q) are the Strength parameters; they are not necessarily symmetry related and two numbers are in general required for q ≠ 0. With this definition the operators multiplying T(k,q) and T(k,-q) will have often have different symmetries in more symmetric point groups (such as C2v), so only one may be required.

While the sign of transition moment matrix elements is often irrelevant, it will be important if more than one transition moment can contribute to a given transition, either through multiple components for a single vibronic transition, or if different vibronic states are mixed, allowing interference between different pathways to the same final state. In such circumstances the relative signs are important and, given the definition above, the order in which states are specified will make a difference to the parameters required. Swapping the bra and ket over will change the sign of the T(k,-q) component.

Settings

Rank | Rank of transition: 1 for a normal electric dipole transition; see here for multiphoton or Raman transitions
Component | Projection quantum number of transition moment. The default is auto, which for simple cases implies taking the only value of the component which gives an allowed transitions. In the standard one photon case it will be 0 for a parallel transition and 1 for a perpendicular transition. For more complicated cases auto will not work and a specific component must be taken.

Parameters

Strength Transition (dipole) moment. For one photon transitions this has units of Debye. Note that the relative intensity is proportional to the square of this value.


Asymmetric Top Orbital Transition Moment

This is in principle the interaction of the magnetic moment of the electron spin with an external magnetic field:

gSμBB.S

but is expressed as a tensor to allow for residual orbital angular momentum. It is typically written in spherical tensor notation as:

gSμBB.S - μBB.Σk=0..2(-1)k((2k+1)/3)½T1(glk,S)

The default has gSaa = gSbb = gScc = gS = 2.0023193043622, which corresponds to the first term in this expression. All the parameters have units of Bohr Magnetons.

Parameters

gsaa | gSaa; Default is 2.0023193043622 Bohr Magnetons
gsbb | gSbb; Default is 2.0023193043622 Bohr Magnetons
gscc | gScc; Default is 2.0023193043622 Bohr Magnetons
gsabbar | ½(gSab + gSba); Default is 0 Bohr Magnetons.
gsacbar | ½(gSac + gSca); Default is 0 Bohr Magnetons.
gsbcbar | ½(gSbc + gScb); Default is 0 Bohr Magnetons.
gsamb | gSab - gSba; Default is 0 Bohr Magnetons.
gsamc | gSac - gSca; Default is 0 Bohr Magnetons.
gsbmc | gSbc - gScb; Default is 0 Bohr Magnetons.


Asymmetric Top Rotational Transition Moment

This represents the interaction of the molecular rotational magnetic moment with an external magnetic field, and is typically written in spherical tensor notation as:

μNB.Σk=0..2(-1)k((2k+1)/3)½T1(grk,S)

Note that all the parameters have units of Nuclear Magnetons; published values will often use Bohr Magnetons. Normally only the diagonal terms, graa, grbb and grcc, are determined.

Parameters

graa | graa; Default is 0 Nuclear Magnetons
grbb | grbb; Default is 0 Nuclear Magnetons
grcc | grcc; Default is 0 Nuclear Magnetons
grabbar | ½(grab + grba); Default is 0 Nuclear Magnetons.
gracbar | ½(grac + grca); Default is 0 Nuclear Magnetons.
grbcbar | ½(grbc + grcb); Default is 0 Nuclear Magnetons.
gramb | grab - grba; Default is 0 Nuclear Magnetons.
gramc | grac - grca; Default is 0 Nuclear Magnetons.
grbmc | grbc - grcb; Default is 0 Nuclear Magnetons.


Axis Switching

To simulate axis switching transitions, add an "Axis Switching" object under a transition moment object; currently it is implemented for Cartesian or Spherical transition moments for asymmetric tops. The rotation between the axes in the two states is specified by the three Euler angles:

Parameters

Chi | Axis switching angle χT (degrees)
Theta | Axis switching angle θT (degrees)
Phi | Axis switching angle φT (degrees)

The basic theory was originally described in Hougen and Watson (1964). The implementation here is more general, using an exact evaluations of the Wigner D matrix and not assuming that K is a good quantum number, rather than the approximations used by Hougen and Watson. It is also implemented for multiphoton transitions. More general results can be found in Dixon and Wright (1985) (for rotation about a single axis, θ) and Huet at al (1990) (including all thee axes). The formula used relies on the fact that the wavefunctions have the form of Wigner D matrices (Brown and Howard, 1976):
|NMK> = [(2J+1)/(8π2)]½DMK N(ω)*
and rotating the the Wigner D matrices though the axis switching angles (χT, θT, φT) produces a sum over Wigner D matrices with the same N and M:
DMK N(ω') = ΣK' DK'K N(χT, θT, φT) DMK' N(ω)
Now consider an arbitrary transition dipole moment, <N'M'K'; ω'| T | NMK; ω>, where the body fixed axes in the bra and ket are different and ω' represents the angle between the space and body fixed angles used for the bra and ω for the ket. Using the equation above we can transform the bra the bra to use the axis system of the ket:
<N'M'K'; ω'| = [(2J+1)/(8π2)]½DM'K' N'(ω') = [(2J+1)/(8π2)]½ ΣK" DK"K' N'(χT, θT, φT) DM'K" N'(ω) = ΣK" DK"K' N'(χT, θT, φT) <N'M'K"; ω|
The transition moment can thus be expressed in terms of rotational matrix elements all in the same axis system:
<N'M'K'; ω'| T |NMK; ω> = ΣK" DK"K' N'(χT, θT, φT)<N'M'K"; ω| T |NMK; ω>
and the transition dipole matrix elements <N'M'K"; ω| T | NMK; ω> are now the standard ones used by PGOPHER.

Example - HSiF

The datafile HSiFswitching.pgo produces the simulation shown below, which reproduces the right hand 2/3 of figure 3c of Dixon and Wright (1985). Note the axis switching angle, θT, set to 2.3 in the "Axis Switch" object under the T(1,1) Spherical transition moment. To reproduce figure 3b, with no axis switching, set the angle to 0. Note the choice of axes is important - θT is the rotation about an axis perpendicular to the axis defining K.

References

  • "An approach to the anomalous commutation relations of rotational angular momenta in molecules", J M Brown and B J Howard, Mol Phys 31 1517 (1976).
  • "The rotational analysis of a Doppler-limited A1A" - X1A' fluorescence excitation spectrum of HSiF at 430 nm", R N Dixon and N G Wright, Chem Phys Lett, 117 280 (1985).
  • "The A electronic state of acetylene: geometry and axis-switching effects.", T R Huet, M Godefroid and M Herman, J Mol Spec, 144 32 (1990).
  • "Anomalous rotational line intensities in electronic transitions of polyatomic molecules: Axis-switching", J T Hougen and J K G Watson, Can J Phys, 43 298 (1965).


Asymmetric Top Sample Data Files

This section shows some examples of data files for various asymmetric top molecules.These include:
  • Rotational Structure of the A-X electronic transition in CFBr- this shows how different isotopes can be included within data files.
  • The microwave spectrum and electric field focusing of (NO)2 - this includes an example of an electric field plot.
  • The 2+1 MPI spectrum of the C-X electronic transition in H2O, D2O and HOD, - includes state dependent predissociation, and an example of the use of multiple multiphoton transition moments. This work is described in C.-H. Yang, G. Sarma, J. J. ter Meulen, D. H. Parker and C. M. Western, Phys. Chem. Chem. Phys., (2010), DOI: 10.1039/c0cp00946f.


Rotational Structure of the A-X Electronic Transition in CFBr

This example is taken from "A reanalysis of the A 1A"−X1A' transition of CFBr". B. S. Truscott, N. L.Elliott and C. M. Western, J. Chem. Phys. 130, 234301 (2009) http://dx.doi.org/10.1063/1.3149785.

Data file: cfbr.pgo

The data file simulates the rotational structure v2 = 1 - 0 band of the A-X electronic transition of CFBr. (See the CFBr Dispersed Fluorescence Spectrum for the vibrational structure.) The data file is a reasonably straightforward example of an asymmetric top molecule, with the only complication being the presence of two isotopes of Br in equal abundance. This is reflected in that the file includes the two Molecules (CF79Br and CF81Br) under the Species object (CFBr). Note that the Colour has been set at the molecule level, so that the contributions from the different species can be seen in the simulation. The plot below is essentially figure 2 of the paper, with both the Show Sum and Show Parts plot options set, to show both the overall spectrum (in black) and the contribution from individual isotopes (in red and green).


The microwave spectrum and electric field focusing of (NO)2

For the purposes of this example a completely blank mixture will be taken for the starting point, though it would also be possible to start from the default asymmetric top. The data is taken from "Molecular beam electric resonance spectroscopy of the nitric oxide dimer", C. M. Western, P. R. R .Langridge-Smith, B. J. Howard, and S. E. Novick, Molecular Physics, 44, 145 (1981), http://dx.doi.org/10.1080/00268978100102341.

Setting up the simulation

To produce a basic simulation in PGOPHER:
  1. Click on File, New, Empty Mixture.
  2. Select View, Constants
  3. Right Click on the unlabeled mixture item at the top and select "Add New...", "Species".
  4. You will probably want to rename the new species (NO)2 - right click and select "Rename"
  5. Next create a molecule object - right click on (NO)2 and select "Asymmetric Molecule"
  6. Again you will probably want to rename the new molecule (NO)2 - right click and select "Rename"
  7. The following settings need to be made at the molecule level:
    1. PointGroup = "C2v"
    2. C2zAxis = b. See figure 1 of the paper and Symmetry and Axis Systems.
    3. For the purposes of the current example we will ignore the hyperfine structure, so nNuclei will be left at 0.
    4. This implies the statistical weights should be set if correct intensities are required. In this case only the spin 1 nitrogen nuclei need be considered, so the required settings are eeWt = ooWt = 1, eoWt = oeWt = 0.
  8. Next create the ground manifold - right click on the molecule and select "Add New...", "Asymmetric Manifold". You might want to rename it to "X". As this manifold will be the initial state for all transitions, set:
    1. Initial = True
  9. Next create the ground vibrational state; right click on the manifold and select "Add New...", "Asymmetric Top". A good name for this is "v=0".
  10. Enter the rotational constants from the paper: A = 25829.4803, B = 5614.30927 and C = 4605.4396. As these are in MHz, make sure the units are showing "MHz" at the top of the constants window by clicking "Convert Units".
  11. To simulate a microwave spectrum, a dipole moment must be entered. First create a Transition Moments object to contain the dipole moment: Right click on the molecule and select "Add New...", "Transition Moments". No settings need be made for this.
  12. Now the dipole moment itself can be added. Right click on the transition moments object and select "Add New...", "Cartesian Transition Moment". The paper has μb = 0.171197 Debye so set:
    1. Axis = b to indicate that the dipole is along the b axis.
    2. Strength = 0.171197

This should be enough for a basic simulation of the microwave spectrum; press the simulate button ( Simulate) and then the all button ( all) and you should see a simulation. The rotational temperature is not specified in the paper, but 5 K is more likely for a van der Waals complex in a molecular beam than the default of 300 K. Changing the plot units to MHz ("Plot", "Units" "MHz") is also more reasonable for a microwave spectrum. Adjusting the frequency scale allows the three microwave transitions mentioned in the paper to be identified (at 187.5, 21224 and 22270 MHz), along with many others. The completed data file is in nodimer.pgo

Focusing in an electric field

The paper includes a plot of energy levels as a function of field, as deflection of the molecule in an electric field was essential in measuring the spectrum. The essential features of the plot can be generated as follows, starting with the file as generated above.
  1. Use "View", "Levels" to open the energy level plot window.
  2. Check the Field box to switch the mode to Electric or Magnetic Field Plots
  3. A default plot will in principle be generated, but will take rather a long time with the default settings as above. To speed things up, press "Abort" if the calculation hasn't finished and reduce the J range of the calculation. With the default settings, the maximum J will be taken from the species object, and defaults to 25. Try setting Jmax to 5.
  4. The paper used a maximum field of 80 kV/cm, so set the maximum field to 8000000 V/m
  5. Setting Top to 65e3, Bottom to -10e3 MHz, Shift Mult to 10 and unchecking Track Quanta will duplicate the figure fairly closely, though not so neatly as the states are not separated by Ka.
  6. Ka can be selected by with the Ka control.
  7. The plot below is obtained with the plot range set to just cover the states with the biggest Stark shifts, with Shift Mult reset to 1. The plot labels are added by setting Position to End. The quantum numbers on the labels are J Ka Kc M. The nodimerplot.pgo file has the plot settings included within it.

Hyperfine Structure

The hyperfine structure mentioned in the paper can also be simulated. Starting from the end of the first section:
  1. At the molecule level, set nNuclei = 2. To avoid an error message, you will also need to set JAdjustSym to false.
  2. (Optional) Rename the "Nucleus1" and "Nucleus2" items that appear to "N1" and "N2"
  3. Set the Spin of each nucleus to 1. (The spin of the nitrogen nucleus).
  4. Set AsNext for the first nucleus to true - this flags that the two nuclei are equivalent.
  5. For correct intensities, the statistical weights due to the remaining nuclei must be set. In this case this is the oxygen nuclei (with I = 0) so the required settings are eeWt = ooWt = 1, eoWt = oeWt = 0. Note versions before 7.1.145 required all 4 weights non zero, but did not handle the case of more than one pair of equivalent nuclei correctly.
  6. The hyperfine constants can now be entered into either of the nuclei. As AsNext is set, the constyants are automatically copied to the other nucleus. The required values are: CHIzz = -4.06522, CHIxxmyy = -8.54983, Caa = 0.01043, Cbb = 0.01384, Ccc 0.00075.
The simulation will now include hyperfine structure. You will need to zoom in to a single rotational line to see it. The completed data file is in nodimerhyp.pgo


The 2+1 MPI spectrum of the C-X electronic transition in H2O

The 2+1 multiphoton ionization spectrum of the C-X transition in H2O, D2O and HOD

This work is described in "REMPI spectroscopy and predissociation of the C1B1(v = 0) rotational levels of H2O, HOD and D2O", C.-H. Yang, G. Sarma, J. J. ter Meulen, D. H. Parker and C. M. Western, Phys. Chem. Chem. Phys., (2010), DOI: 10.1039/c0cp00946f.

Data Files:
  • H2OCX.pgo - PGOPHER input file for the C-X transition in H2O.
  • H2O_Excited.log - PGOPHER output file for for the fit used to generate the C state constants in H2O.
  • D2OCX.pgo - PGOPHER input file for the C-X transition in D2O.
  • D2O_Excited.log - PGOPHER output file for for the fit used to generate the C state constants in D2O.
  • HODCX.pgo - PGOPHER input file for the C-X transition in HOD.
  • HODCX.out - Line list for the C-X transition in HOD produced by PGOPHER from HODCX.pgo.


Vibrational Structure

PGOPHER has can do two significant types of calculations involving vibrations:

  1. Vibronic energy levels, and the pattern of vibrational transitions associated with an electronic transition. If an l matrix is available for the states involved, then full multidimensional Franck-Condon factors can be calculated, but simpler empirical approaches can be taken if this is not available.
  2. A force field analysis, calculating vibrational frequencies, l matrix, isotope shifts, rotational constants, centrifugal distortion constants and Coriolis coupling constants from the force constants and geometry of the molecule.
The force field calculation can feed directly into calculating vibronic energy levels and transitions, or either mode can be used in a stand alone manner. Either (or both) calculation can be worked backwards to fit observed values to molecular parameters. Both modes can use ab initio calculations as a starting point, and even low quality ab initio calculations can give a useful starting point for analysis. A typical use case might involve an ab initio calculation of the force field or other parameters, which is then adjusted or refined to experimental observation or other criteria.

To start, work through the worked examples below.

Vibrational Energy Levels and Franck-Condon Factors

  • Introduction
  • Making a basic data file for simulating vibrational structure
  • Worked Example - The Photoelectron Spectrum of H2O
  • Worked Example - Predicting the Photoelectron Spectrum of H2O using ab initio Calculations
  • Importing l matrices
  • Manual Import of the l matrix
  • The l Matrix Window
  • The Dushinsky Transformation Window
  • Molecule Settings
  • Electronic State Settings
  • Vibrational Modes
  • Nuclear Co-ordinates
  • Perturbations
  • Multidimensional Franck Condon factors
  • Vibrational Mode Changes
  • Sample Data Files

Force Field Analysis

  • Introduction
  • Worked Example - Setting up a simple force field analysis for H2O
  • Worked Example - Setting up a combined force field analysis for H2O and D2O
  • Worked Example - Refining an ab initio force field for H2O
  • z Matrix
  • Internal Coordinates
  • Valence Coordinates
  • Cartesian Coordinates
  • Symmetry Coordinates
  • Sample Data Files


Vibrational Energy Levels and Franck-Condon Factors

PGOPHER will simulate the vibrational structure associated with an electronic state or transition, including anharmonic and Renner-Teller effects and vibronic mixing. Ionization can also be simulated, providing spin effects can be ignored. Currently C1, Ci, C2, Cs, D2, C2v, C2h, D2h, C∞v and D∞h symmetry are explicitly supported. See the worked examples listed below for a quick start.

Note that when using this mode, rotational structure associated with the transition is not simulated. For compatibility with the rotational modes, J will often be displayed but is fixed at zero. (The J range is used to select the maximum vibrational angular momentum to include when simulating spectra.)

A harmonic oscillator basis set is used of the form:

|v1l1> |v2l2>…|…ΛΣ…>

where vi are the standard vibrational quantum numbers and li the corresponding vibrational angular momenta (only required for degenerate modes). Λ and Σ are the electronic quantum numbers, normally only required for linear molecules. Anharmonic, Renner-Teller and other vibronic interactions are accounted for by off-diagonal matrix elements (expressed as perturbations in the language of PGOPHER) and a matrix diagonalisation if required.

To calculate the intensities of the vibrational transitions associated with an electronic transition multidimensional Franck-Condon factors are calculated. As the vibrational basis used for each state is different (the basis is determined by the normal modes) the normal modes in the two states (Q, Q') must be related by:

Q' = JQ + K

where K represents the change in equilibrium geometry and J accounts for mixing between modes (The Dushinsky effect). J and K can be input directly, or calculated from the l matrices from the two states. See P. Chen, "Photoelectron Spectroscopy of Reactive Intermediates" (Chapter 8 of Unimolecular and Bimolecular Ion_Molecule Reaction Dynamics, ed C Y Ng, T Baer and I Powis, Wiley, 1994) for a brief review of the theory.

Further Details

  • Making a basic data file for simulating vibrational structure
  • Worked Example - The Photoelectron Spectrum of H2O
  • Worked Example - Predicting the Photoelectron Spectrum of H2O using ab initio Calculations
  • Importing l matrices
  • Manual entry of the l matrix
  • The l Matrix Window
  • The Dushinsky Transformation Window
  • Molecule Settings
  • Electronic State Settings
  • Vibrational Modes
  • Nuclear Co-ordinates
  • Perturbations
  • Multidimensional Franck Condon factors
  • Vibrational Mode Changes
  • Sample Data Files


Making a basic data file for simulation of vibrational structure

Making a basic data file for simulating vibrational structure

A simple vibrational structure data file can be generated from File, New, Vibrational Structure. This sets up the program to simulate an electronic transition with an origin as 50000 cm-1 and one active vibration with a ground state frequency, ω", = 1000 cm-1 reducing to 750 cm-1 in the excited state and displaced by 0.5 along the normal co-ordinate. To adjust the constants, add more modes or change the type of vibronic transition use View, Constants. Most constants and settings can be left unchanged at their default values (and indeed should be unless you need a specific effect) but the ones that must normally be changed are adjusted as follows:

  1. To set the number of vibrational modes and symmetry of the molecule click on "VibratingMolecule" and change "nModes" and "PointGroup" as required. You need only enter the number of modes that you are interested in. Note that you should leave "nNuclei" at 0 unless you specifically want to calculate Franck-Condon factors from the l matrix - see Making a data file for simulating vibrational structure from the l matrix
  2. The symmetry of the ground electronic state is set by clicking on "X" and altering "Symmetry" as required. (The default is totally symmetric.)
  3. To enter the ground state vibrations click on "v1", "v2" ... in turn under "X" - if the number that appear is wrong set "nModes" as in step 1. The key things to set are the vibrational frequency, "Omega", the symmetry of the vibrational mode, "Symmetry" and "vMax", the maximum value of the vibrational quantum number to consider in each state. Note:
    • Setting the symmetry of a mode in one state will alter the same mode in all other electronic states of the molecule, so you do not need to change the symmetries of the vibrations in the excited state.
    • To avoid a very large calculation, only set vMax non-zero for a few modes; if the product over all modes of (vMax+1) is more than 50 or so the calculation is likely to become rather slow.
  4. The symmetry and origin of the excited electronic state is set by clicking on "A" and altering "Symmetry" and "Origin".
  5. The excited state vibrational frequencies are then entered by clicking on "v1", "v2" ... in turn under "A", and setting "Omega" as required.
  6. Finally the displacements along each normal mode (K) between the two electronic states are entered by clicking on the individual modes under <A|FCF|X> and setting "Displacement"
Other things to adjust are the anharmonicities "xOmega", "yOmega", "zOmega" and the mode mixing (the additional values under displacement).


Worked Example - The Photoelectron Spectrum of H2O

The key parameters required for a simulation of a vibrational spectrum are summarized in Making a basic data file for simulating vibrational structure. The steps below show how to do this for the first band in the photoelectron spectrum of water, using literature values for constants where available. See the related worked example, Predicting the Photoelectron Spectrum of H2O using ab inito Calculations for an alternative approach.

The Constants

An excellent compilation of spectroscopy constants for can be found in the NIST Chemistry web book at http://webbook.nist.gov/chemistry/. A formula search on H2O with ions not excluded yields information on several isotopes; selecting the main isotope and then "Vibrational and/or electronic energy levels" yields for H2O:

Sym Species | No | Approximate type of mode | Selected Freq
a1 | 1 | Sym str | 3657
a1 | 2 | Bend | 1595
b1 | 3 | Anti str | 3756

Confusingly the asymmetric stretch, v3, is shown as having b1 symmetry in this table, though the modern convention is to classify this mode as b2. The b2 symmetry follows if the out of plane axis is chosen to be the x axis, the current convention, while b1 symmetry follows if the out of plane axis is chosen to be the y axis. The choice is not necessarily important for the simulation, but it is important to be consistent.

Selecting "Gas phase ion energetics data" gives an ionization potential of 12.621 eV; see below for some discussion of this value.

For the ion information on several states is available; taking just the most recent ground state (X state) gas phase values:

Vib Sym | No | Approximate type of mode | cm-1
a1 | 1 | Sym stretch | 3197.97
a1 | 2 | Bend | 1408.42
b2 | 3 | Asym Stretch | 3253.91

Note that the asymmetric stretch is shown as b2 here. More detailed simulations would have to consider anharmonicities.

Setting up the simulation

There is now enough information to produce a basic simulation in PGOPHER:
  1. Click on File, New, Vibrational Spectrum.
  2. Select View, Constants
  3. Click on "VibratingMolecule". This sets the parameters common to all states, and the ones that need to be changed from the default values are:
    1. PointGroup = "C2v"
    2. nModes = 3. This is the number of vibrational modes. Note that you should not set the number of atoms (nNuclei) unless you want to input an l matrix for each state.
  4. No changes need to be made at the manifold level for the neutral, "Ground", though you may want to rename it to "Neutral", by right clicking on it and selecting "Rename".
  5. Click on each mode in the neutral ground state in turn (v1, v2 and v3 under X) and enter:
    1. Omega - the frequency from the first table above.
    2. Symmetry - the symmetry of the mode, which you will only need to change for the asymmetric stretch, v3.
    3. vMax = 0. This selects the maximum vibrational quantum number to be considered in each mode. The default (3 or 5) will lead to rather a slow simulation; setting to 0 means that vibrationally excited states are excluded.
  6. The manifold labeled "Excited" corresponds to the ion; no changes need to be made here, though you may want to rename it to "Ion".
  7. Click on the ion ground state, "A" and set:
    1. Symmetry = B1 - the symmetry of the electronic ground state of the ion.
    2. Origin = 101795 cm-1 = 12.621 eV. This is the energy of the ground state of the ion with respect to that of the ground state of the neutral, the ionization energy. (Strictly this is the difference in energy between the minima of the potential energy curves for the two states.) Tip: to avoid having to convert the value from eV, click on the Convert Units button until the units show "eV", enter the value in eV and then click on the button again until cm-1 appears.
    3. You may want to rename the state to X or perhaps IonX, as it is the ground state of the ion, rather than the A state.
    4. The spin, S should be left as zero rather than ½ as PGOPHER does not have a specific calculation mode for ionization. Ignoring spin effects will be a reasonable approximation unless spin splittings are large.
  8. Click on each mode in the ion ground state in turn (v1, v2 and v3) and enter:
    1. Omega - the frequency from the second table above.
    2. (The symmetry will have been set in step 5.2 above.)
    3. Leave vMax as the default here; you may need to adjust this depending on the length of the vibrational progressions.
  9. The default geometry change is too large; as the ionization here is from a non-bonding orbital an initial assumption of no change would be more reasonable. Click on each normal mode under the multidimensional Franck-Condon factor, <IonX|FCF|X> and ensure:
    1. Displacement = 0. This represents the change in each normal mode.

This should be enough for a basic simulation; press the simulate button ( Simulate) and then the all button ( all) and you should see a simulation, though it will essentially have only one peak as we are assuming no geometry change on ionization.

Checking and refining the simulation

It is important to check simulations, not only because it is easy to make mistakes in the steps above, but also because there can be differences in the definitions of the constants or other factors, such as the different choice of symmetry for the asymmetric stretch described above. Checking against tabulated line positions or published spectra is an effective check; note the facility for overlaying pictures (from a Journal for example) onto a simulation.

In this case an experimental simulation is available from R. N. Dixon, G. Duxbury, J. W. Rabalais and L. Åsbrink, "Ro-vibronic structure in the photoelectron spectra of H2O, D2O and HDO", Molecular Physics, 31, 423, http://dx.doi.org/10.1080/00268977600100311. This shows that, while the first peak is indeed the strongest, about ¼ of the intensity is in the other peaks. Manually adjusting the vibrational displacements to v1 = 0.07, v2 = 0.07 gives a reasonable match for the observed intensities. As a final point, the peaks are all shifted from the simulation - the strongest peak is simulated at 12.550 eV but measured at 12.624 eV. The difference here (0.074) is likely to be the zero point energy; this could be checked by looking at the individual vibrational levels - selecting "View", "States". Adding 0.074eV = 600 cm-1 to the ion origin brings the spectra into line, as shown in the plot below.

H2O PES simulation

To obtain the plot the plot units were set to eV ("Plot", "Units", "eV") and a Gaussian width of 0.04 eV was selected (The "Gau" box on the main window toolbar). The completed file is available as H2OPES.pgo.


Worked Example - Predicting the Photoelectron Spectrum of H2O using ab initio Calculations

ab into programs can be used to calculate the normal mode information required to simulate electronic spectra including Franck-Condon factors. The key parameters required for are summarized in Making a data file for simulating vibrational structure from l matrices. The steps below provide a worked example for the first band in the photoelectron spectrum of water, using ab into calculations for the required values. See the related worked example, The Photoelectron Spectrum of H2O for an alternative approach using literature values.

The ab into calculations

For this exercise Molpro is used, though many ab initio programs will produce the same information. A calculation including normal modes can be performed with the following control file:

re=1.013
r1=re
r2=re
a=109.41
basis=VDZ
geometry={
ANGSTROM;
H1;
O1,H1,r1;
H2,O1,r2,H1,a;
}

wf,9,2
hf
optg
frequencies

casscf
optg
frequencies

This performs a geometry optimization and normal mode calculation for the ground state of the ion using both Hartree-Fock and CASSCF. The same file will also work for the ground state of the neutral if the "wf,9,2" line is removed. The more recent versions of Molpro output in XML format that PGOPHER can read directly; alternatively add a "put molden,H2O.molden" command after the frequencies step. This writes out the normal mode (and other) information that PGOPHER can also read directly.

The normal mode output that is required looks like this for the neutral molecule:

 FREQUENCIES * CALCULATION OF NORMAL MODES FOR CASSCF000

 Atomic Coordinates

  Nr  Atom  Charge       X              Y              Z

   1   H1    1.00    0.000000000   -1.417298632    1.034331878
   2   O1    8.00    0.000000000    0.000000000   -0.130322946
   3   H2    1.00    0.000000000    1.417298632    1.034331878

 Frequencies dumped to record   5400.2

 Gradient norm at reference geometry: 0.46187D-03

 Normal Modes

                              1 A1        2 A1        3 B2
 Wavenumbers [cm-1]         1715.28     3721.36     3833.40
 Intensities [km/mol]         53.05        2.68       14.45
 Intensities [relative]      100.00        5.06       27.23
           H1X1             0.00000     0.00000     0.00000
           H1Y1             0.42031     0.56516     0.52478
           H1Z1             0.53260    -0.39609    -0.43124
           O1X2             0.00000     0.00000     0.00000
           O1Y2             0.00000     0.00000    -0.06612
           O1Z2            -0.06711     0.04991     0.00000
           H2X3             0.00000     0.00000     0.00000
           H2Y3            -0.42031    -0.56516     0.52478
           H2Z3             0.53260    -0.39609     0.43124

Note the optimized equilibrium geometry (in atomic units), the normal mode frequencies and the l matrix elements at the end. The latter are the relative motion of each atom in a particular mode.

Setting up the simulation

There is now enough information to produce a basic simulation in PGOPHER. The Molpro output files are available as H2OCAS.out (neutral molecule) and H2OplusCAS.out (ion).
  1. Click on File, Import, l Matrix... and select the ab initio output file generated as above. The description below assumes you start with the output file generated as above for the neutral molecule.
  2. Select View, Constants. You will note that two states have been generated (S0 and S1), corresponding to the HF and CASSCF stages of the calculation respectively. Only one of these is required; to use the CASSCF calculation right click on the first S0 and select "Delete". (Respond "Yes to All" to the delete linked nodes query.)
  3. Check that the imported values are reasonable using the l matrix window, which displays the geometry and normal modes. Bring this up by right clicking on the lower S1 label, and select "l matrix...". Click on "yz" to select the correct plane for plotting, and display the normal modes by clicking on the corresponding columns in the top grid. Note that the numbering and symmetries will not be right at this stage, but this is best fixed after importing the ion information. "Operate", "Print" will print checks for the centre of mass (should be at the origin) and the orthogonality of the normal modes, together with a lot of other information. It is normal for rounding errors to produce numbers slightly different from 0 and 1, but larger differences may indicate a problem with the import. "Operate", "Orthogonalize" will force the checks to be passed.
  4. For clarity, rename some of the items to more meaningful names. Right click on the item and select "Rename" to do this. The manifold and state, currently "S1" should both be something like "Neutral", and the "LmatrixImport" items could be "Water" (upper item) and "H2O" (lower item). (This structure permits isotopically substituted species in the same file - a "D2O" item could be added at the same level as "H2O").
  5. We need to set this state as the initial state in the simulation - click on the upper "Neutral" object (the manifold) and ensure "Initial" is set to true.
  6. Now import the calculations for the ion. Ensure that "Merge" is selected under the "File" menu, so that the import does not overwrite the steps above, then use File, Import, l Matrix... again for the ion calculations. Turn "Merge" off after doing this, to avoid later confusion.
  7. A second "LmatrixImport" species with two states beneath it will have been generated by the import. As above, the second is required, so delete the "SO" objects as before. For clarity, rename both "S1" items to "Ion".
  8. Copy the "Ion" manifold to the first molecule generated above, "H2O". To do this, right click on the "Ion" manifold (the uppermost Ion item) and select copy. Next right click on the destination molecule (the H2O item) and select paste. The remaining import items can then be deleted - right click on the upper "LmatrixImport" and select delete. The final structure aimed for is shown to the right.
  9. Now check the upper state as in state 3 above, using "Operate", "Orthogonalize" if necessary.
  10. The two states must now be connected by a multidimensional Franck-Condon factor. Right click on the H2O molecule and select "Add New", "Transition Moments". A dialog will pop up asking which states you want to connect; select "Ion" as the bra and "Neutral" as the ket. Now right click on the new item, <Ion|mu|Neutral> and select "Add New", "MultidimensionalFCF". Calculate should be set to true for this item, so that the imported l matrices are used.
  11. At this point, check that the atom layout and numbering is consistent between the two imports; different choices can easily be made, especially if the imported data is for more than one source. Bring up the Dushinsky Transformation Window by right clicking on the multidimensional Franck-Condon factor, the lower <Ion|FCF|Neutral>, and selecting "Dushinsky matrix...". This plots equilibrium geometries for the two states on top of each other, and any problems should be clear from this plot.
  12. The symmetry can now be set; it is not imported automatically as full symmetry is often not used in ab initio calculations. Click on the molecule item, H2O, and set:
    1. PointGroup = "C2v"
  13. Click on each mode in the neutral ground state in turn (v1, v2 and v3 under Neutral) and enter:
    1. Symmetry - the symmetry of the mode, which you will only need to change (to B2) for the asymmetric stretch. The l matrix window will show that this has been imported as the first vibrational mode.
    2. vMax = 0. This selects the maximum vibrational quantum number to be considered in each mode. The default (3 or 5) will lead to rather a slow simulation; setting to 0 means that vibrationally excited states are excluded.
  14. To rearrange the modes to the standard order, right click on any mode and select "Sort". This will sort the modes by symmetry and then descending order of frequency. Other menu options allow individual modes to be move up or down; note the "global shift" operations affect all the states in the molecule, whereas the "Move" operations just affect the selected state.
  15. Set the ionization energy by clicking on the ion ground state, the lower "Ion", and set:
    1. Origin = 86800 cm-1 = 10.7 eV. (The calculations described above suggested an energy difference of 0.395 atomic units.)
    2. You should also set Symmetry = B1 for the electronic ground state of the ion.
    3. Note the spin, S should be left as zero rather than ½ as PGOPHER does not have a specific calculation mode for ionization. Ignoring spin effects will be a reasonable approximation unless spin splittings are large.
  16. As a final step you may want to adjust the range of vibrational quantum numbers in the excited state considered. Click on each mode in the ion in turn (v1, v2 and v3 under Neutral) to see them; if the product of all the vMax is 100 or more the calculation is likely to become rather slow in the current version of the program.

Press the simulate button ( Simulate) and then the all button ( all) and you should see a simulation. Comparison with the empirical spectrum generated in the related worked example, The Photoelectron Spectrum of H2O shows that the intensities are reasonable, though both the ionization energy and vibrational frequencies need adjustment.

The resulting file is available as H2OCAS.pgo.


Importing l matrices

PGOPHER can import the required geometry and l matrix directly from normal modes as output by selected ab initio programs. To do this select "File", "Import", "l matrix..." from the main menu, and then navigate to the required file. See Predicting the Photoelectron Spectrum of H2O using ab initio Calculations for a worked example.

When importing l matrices, particularly from from more than one source, it is important to check that the axis system and mode and atom numbering is consistent between the states. The l Matrix Window and Dushinsky Transformation Window provide plots that can help to check for this. Nuclei and modes can be re-ordered by right clicking on the nucleus or mode in the constants tree and selecting "Move Up/Down" (for a move that affects only one electronic state) or Global Shift Up/Down for a move that affects all states within the molecule. The l matrix in its non mass-weighted form should be orthogonal - the "Operate" button in the l Matrix Window contains tools to test and correct this, and the centre of mass.

The point group is not read from the imported file, but defaults to C1. The correct point group can be entered manually, if required, in which case the symmetry of each electronic state and mode must also be entered manually. The modes will not necessarily be in the standard order; use the Global Shift Up/Down or Sort menu items to fix this.

The file formats listed below are currently supported; the format used is detected automatically.

Molden Format

This format is the input to the Molden program, which can be produced by several ab initio programs, either directly or with the help of a post processing program. The format is documented on the Molden website; note that only the [FREQ], [FR-COORD] and [FR-NORM-COORD] sections are read. Note that after version 7.1.370 average atomic weights are assumed, rather than exact masses. The normal modes will be normalized on input, but should be otherwise checked as above.

Molpro

The xml files produced by the more recent versions of Molpro can be imported directly; the output of the FREQUENCIES command is all that is required. Note that after version 7.1.370 average atomic weights are assumed, rather than exact masses, and a different set of co-ordinates is taken from the xml file. Alternatively the PUT,MOLDEN,file command can be used to write output in Molden format.

Gaussian

The log files produced by Gaussian, or other programs producing the same format, can also be imported directly, though as the format is not formally defined some files may fail to import. Note that the the default in Gaussian is only to give normal modes to 2 decimal places, which is rather low. The Gaussian option freq=hpmode is recommended (if available) to increase the precision


Manual entry of the l matrix

If you want to set up an l matrix, the most convenient starting point is importing the required geometry and l matrix directly from the output of selected ab initio programs (see Importing l matrices) or from a simple force field analysis. If this is not possible, say if you want to import an l matrix from a source that PGOPHER can't read directly, the following steps listed below are the minimum needed:
  1. The main menu item File, New, Vibrational Structure will generate a basic settings for two electronic states.
  2. Set the basic molecular information by clicking on "VibratingMolecule" and set:
    • nModes - the number of vibrational modes
    • PointGroup - the symmetry of the molecule
    • nNuclei - the number of nuclei
  3. Set the symmetry of the ground electronic state is set by clicking on "X" and altering "Symmetry" as required. (The default is totally symmetric.)
  4. Set the names of the nuclei by right clicking on the "Nucleus1", "Nucleus1", entries under X and selecting "Rename". If you use the standard element names, possibly with a number (e.g. H1, H2, Br) then the mass can be set by right clicking on the nucleus and selecting "Set Exact Mass". Alternatively, if an approximate mass is entered (at "Mass") "Set Exact Mass" will find the corresponding exact mass. The names and masses need only be set once, though they appear under a state, rather than at the molecule level.
  5. The geometry and l matrix are most conveniently entered by right clicking on the state, "X" and selecting "l matrix...". This brings up the l Matrix Window, which will plot the molecular geometry, with the plot updating as you enter it. Enter the equilibrium co-ordinates under "Equilibrium".
  6. The l matrix can be entered in the same form; if "Mass Weighted" is selected then the elements are l/sqrt(mass) with units of 1/sqrt(amu). The l matrix should be orthogonal - the "Operate" button contains tools to test and correct this, and the centre of mass.
  7. Enter the ground state frequencies and symmetries by clicking on "v1", "v2" ... in turn under "X". As for nuclear masses, the symmetry of a mode only needs to be set in one state.
  8. Repeat steps 3 and 5-7 above for the excited state.
  9. To make use of the l matrices for Franck-Condon factors, "Calculate" must be set to true under <A|FCF|X>.


l Matrix Window

This window displays, and allows the editing of, the equilibrium geometry and vibrational modes for an electronic state. To bring up the window, right click on the state and select "l Matrix...". To display a particular normal mode, click on the appropriate column. Rx, Ry and Rz are the rotations around the x, y and z axes and Tx, Ty and Tz are the translations along the axes. They are calculated from the masses and equilibrium geometries and can't be edited.

The lower panel shows the atom positions, and a normal mode motion if a mode is selected. a, b, and c are the principal inertial axes, which are calculated from the given atomic positions.
Split Drag to resize the upper and lower parts.
Equilibrium positions of the atoms, in Å. These should be with respect to the centre of mass; if not see under the Operate button.
l matrix in Cartesian co-ordinates in one of two possible forms:
  • If "Mass Weighted" is checked the values correspond to relative atomic displacements, and the units are 1/sqrt(atomic mass units).
  • If "Mass Weighted" is checked the values are dimensionless. In this form the matrix should be orthogonal; see under the Operate button for options to check and correct this.
The conversion factor between the two for any given value is Sqrt(mass of Nucleus).
PlotPlaneGroup Select plane to plot
This controls the length of the arrows plotted on each atom to show the motion of the atom in the selected normal mode. The number is the multiple of the zero point motion, assuming the motion is harmonic. If you can't see any arrows, you may need to increase the value set here.
MassWeighted Check to show l matrix elements divided by sqrt(mass); uncheck to show as dimensionless numbers. The numbers can be edited in either mode.
ShowTRCheckBox Show Translational and Rotational normal mode transformations.
OperateButton This brings up a menu with the following options:

Check | Force update of the coordinates and l matrix from all other objects and plot.
Print | Force update of the coordinates and l matrix and show calculated state information in the log window
Fix Centre of Mass | Adjust atomic co-ordinates in the Nuclear co-ordinates objects so centre of mass is at the origin.
Normalize | Adjust the vibrational co-ordinates in Vibrational Modes objects to be correctly normalized.
Orthogonalize | Adjust vibrational co-ordinates in Vibrational Modes objects to be orthogonal and correctly normalized. Also fixes centre of mass if necessary.


Dushinsky Transformation Window

This window displays the normal mode displacements (K) between two electronic states, and the Dushinsky transformation matrix (J) between them. If the information is available, then the geometries and normal modes for the two states are also displayed. To bring up the window right click on the transition moment between the two states and select "Dushinsky Matrix...".

The lower panel, visible if nNuclei for the molecule is > 0, shows the atom positions and normal modes for each state. To plot a particular normal mode, click on the appropriate column, or click on the "Displacement" column to just show the atom positions. In these plots the matching atoms or atom motions are joined by dotted lines - this allows for a check that the same choice of axes and atom and mode numbering has been made for the two states. (This can also show as large off-diagonal elements for the Dushinsky matrix, or negative values on the diagonal.) If the states have been set up inconsistently, then the intensity calculations may not be correct. For example if the two Cl atoms in the above example were swapped between the two states then the atom position plot will look like:

CCl2 with Cl atoms switched

This particular problem could be solved by right clicking on the appropriate atom and using the "Move Up" command. Other possibilities include changing the order or sign of the modes.

Split | Drag to resize the upper and lower parts.
 | Displacements along the normal co-ordinates. If "Calculate" is not selected, these can be edited in this window.
 | Displacements along the normal co-ordinates.
PlotPlaneGroup | Select plane to plot
 | Scale factor for normal mode zero point displacements
CalculateCheckBox | Select for normal mode displacements and the Dushinsky matrix to be calculated from the l matrices and equilibrium geometry for the two electronic states. If not set, the values are taken from the modes under the Multidimensional Franck Condon Factor object.
ShowTRCheckBox | Show Translational and Rotational normal mode transformations.


Vibrating Molecule

These are the settings for a molecule as a whole, i.e. those common to all states (but perhaps different for different isotopologues).

Settings

nNuclei | Number of atoms. Only required if the l matrix is not being used to calculate Franck-Condon factors, otherwise can be left at zero.
Jmin | Not used
Jmax | For linear point groups, this is taken as the maximum vibrational angular momentum to include when simulating spectra.
Colour | Colour - set to "None" to take value from elsewhere.
JAdjustSym | Currently ignored for this molecule type.
BlockMatrix | Set to force check of Hamiltonian matrix for factorization into blocks before diagonalization. If blocks are found, these are diagonalized separately, ensuring states that have no connecting matrix elements are not accidentally mixed if the eigenvalues happen to be very close. In principle, if full use is made of symmetry and states are separated into separate manifolds as appropriate, this should not be necessary but can easily happen if selected terms in the Hamiltonian are zero or interactions between states are omitted.
PointGroup | Point group of molecule. Currently C1, Ci, C2, Cs, D2, C2v, C2h, D2h, Cinfinityv and Dinfinityh are implemented.
nModes | Number of vibrational modes to include in the calculation.
ShowAllQnos | Set false to hide vibrational quantum numbers with vmin = vmax = 0 in all states. This is essential for large molecules with many modes.

Parameters

Abundance Abundance of this isotope; default is 1


Electronic State

One of these is required for each electronic sate for which vibrational structure is to be simulated. Mode specific settings are contained in the Vibrational Mode objects beneath the state, and possibly also Nuclear Co-ordinates for the state.

Settings

Colour | Colour - set to "None" to take value from elsewhere.
RveSelect | Only include given rovibronic symmetry - for normal use set to 'all'
S | Electron Spin
Symmetry | Symmetry of electronic state

Parameters

Origin | State Origin.
Width | Linewidth (rotation independent) for state.
A | Spin-orbit coupling constant.
LambdaSS | Spin - spin coupling constant (=1.5*ε).
o | Spin-spin coupling constant giving lambda doubling for Omega = 0 states.
Emax | Maximum energy to include in the vibrational basis.

Operations

Right click on the item in the constants window for the following operations in addition to the standard ones:

l Matrix...
 Bring up the The l Matrix Window for the current state.
Print Information
 Show calculated state information in the log window
Fix Centre of Mass | Shift atomic co-ordinates so centre of mass is at the origin
Normalize | Scale vibrational co-ordinates to be correctly normalized.
Orthogonalize As "Fix Centre of Mass" and "Normalize", but also force the normal modes to be orthogonal to all the other normal modes, including translation and rotation.


Vibrational Mode

One of these items will be present for each vibrational mode under each electronic state. The number is controlled by the nModes at the molecule level.

Settings

Symmetry | Symmetry of this vibrational mode. Note that this setting is shared with every state in the molecule.
vMin | Minimum vibrational quantum number for this mode to include in the basis. Note that an implementation restriction in the current version means that values of vMin > 0 are likely to slow calculations for intensities considerably.
vMax | Maximum vibrational quantum number for this mode to include in the basis. Note that in more recent versions of the program the default for this is 3 if there are 3 or less vibrational modes, otherwise 0. This avoids asking for very large calculations by accident; if the product over all modes of (vMax+1) is more than 50 or so the calculation is likely to become rather slow.

Parameters

Omega | Vibrational Frequency
xOmega | Anharmonic terms. Diagonal vibrational energy is taken as: Omega(v+d/2) + xOmega(v+d/2)2 + yOmega(v+d/2)3 + zOmega(v+d/2)4 + gll2 where d is the degeneracy of the mode. Note the sign of xOmega - this is often taken as negative in the Dunham expansion for diatomic molecules. For polyatomic molecules, xOmega is typically written as xii, yOmega as xiii and zOmega as xiiii. For terms involving more than one mode, like x12 add a Vibrational Perturbation.
yOmega
zOmega
gll
epsOmega | Renner-Teller term
lx0 | l matrix elements for first nucleus for this vibrational mode in units of 1/sqrt(amu). Repeated for each nucleus, or absent if the l matrix is not being used to calculate Franck-Condon factors
ly0
lz0
... |

Operations

Right click on the item in the constants window for the following operations in addition to the standard ones:

Sort | Sort modes into standard order, i.e. Symmetry and then descending order of frequency. Note that this option re-orders the modes in every state of the molecule.
Global Shift Up | Shift this mode up in every state in the molecule. Note that the "Move Up" item on the same menu only moves the values up for the selected state.
Global Shift Down | Shift this mode down in every state in the molecule. Note that the "Move Up" item on the same menu only moves the values up for the selected state


Molecular Nucleus

One of these items may be present for each nucleus in the molecule under each electronic state. The number is controlled by the nNuclei setting at the molecule level. If the l matrix is not being used to calculate Franck-Condon factors these are not required.

Settings

Spin | Nuclear spin
AsNext | Nucleus is equivalent to following nucleus

Parameters

Mass | Mass of nucleus / amu
x | Equilibrium x co-ordinate / Å
y | Equilibrium y co-ordinate / Å
z | Equilibrium z co-ordinate / Å

Operations

Right click on the item in the constants window for the following operations in addition to the standard ones:

Set Exact Mass Try to set exact mass from mass (if not zero) and name


Vibrational Perturbation

Add one one these items for every extra term required in the Hamiltonian.

Settings

Nucleus | Not used
SymSelect | Symmetry select
ScalePrev | Scale factor with respect to preceding perturbation
Op | Type of perturbation: x, q, qSigned, Gaussian. See below for details
EffectiveQno | Set to group together states connected by this perturbation when assigning quantum numbers.
v1 | One entry per mode; power of each mode (ni) in the overall perturbation operator
v2
...

Parameters

Value | Size of perturbation.
Exponent | Exponent for Gaussian type perturbation

Perturbation Types

In the formulae below, di is the degeneracy of mode i and ni is the vi setting, as above.

x
 Simple diagonal matrix elements with value:
(v1+d1/2)n1(v2+d2/2)n2...
For example to add a conventional x12 term set Op = x, v1 = 1, v2 = 1.
q
 Product of normal mode operators:
q1n1q2n2...
n1, n2 should all be >= 0
qSigned Product of normal mode operators:
q1n1q2n2...
with the additional selection rule that:
Δv1 = n1, Δv2 = n2, ...
or
Δv1 = -n1, Δv2 = -n2, ...
In this case the signs of n1, n2... are important.
Gaussian Matrix element of exp(-bqi2) where b is the Exponent parameter above for the mode with non zero ni. More than one ni can be set non-zero, though this is probably not useful.


Multidimensional Franck Condon Factors

This contains settings controlling the calculation of Multidimensional Franck Condon Factors. One of these should be set up to connect each pair of electronic states between which Franck Condon factors are to be calculated. The per mode settings are contained in a Vibrational Mode Change object for each mode.

Settings

Symmetry | Symmetry of electronic transition moment; default is 'auto'
Calculate | True to calculate normal co-ordinate displacements and Dushinsky matrix from l matrix

Parameters

Strength Relative electronic transition (dipole) moment - note that the relative intensity is proportional to the square of this value.
Note: The interpretation of this parameter changed for version 7.1. The scaling is now such that the strength is consistent with the strength parameter in Cartesian transition moments in asymmetric tops and (rank =1) spherical transition moments in linear molecules.

Operations

Right click on the item in the constants window for the following operations in addition to the standard ones:

Dushinsky Matrix...
 Bring up the t he Dushinsky Transformation Window for the current pair of states.
Print Matrices
 Print detailed information about Franck Condon calculation in the log window.
Fix Centre of Mass | Shift atomic co-ordinates so centre of mass is at the origin
Set Modes From Calculated | Set mode displacements and rotations from l matrices


Vibrational Mode Change

This contains the normal mode displacement and mixing for one mode for a pair of electronic states connected by a Multidimensional Franck Condon factor object. In general the normal modes for the two states (Q, Q') are related by the matrix equation:

Q' = JQ + K

where K represents change in equilibrium geometry and J accounts for mixing between modes (The Dushinsky effect). J and K are calculated from the l matrices for the electronic states involved if Calculate is true in the enclosing Multidimensional Franck Condon factor object, in which case the settings below are ignored.

If Calculate is false, then the elements of J and K for are derived from the settings below. Note that the J matrix is expressed as a product of rotations so that, for example, if there are 3 modes then:

J = R12(θ12)R13(θ13)R23(θ23)

where R12(θ) is the 2×2 rotation:

 | ( | cos θ | -sin θ | 0 | )
R12(θ12)= | ( | sin θ | cos θ | 0 | )
 | ( | 0 | 0 | 1 | )

The angles θ12, θ13, ... are the last parameters below.

Settings

Symmetry Symmetry of this vibrational mode. Note that this setting is shared with every state in the molecule.

Parameters

Displacement Displacement along normal mode between the two electronic states; contains one element of the K vector. Only used if Calculate is false in the enclosing Multidimensional Franck Condon factor object.
v1
v2
...
 For mode n, θ1n, θ2n..., the Dushinsky mixing of this mode with the lower numbered normal modes expressed as an angle in degrees. Mode n will have n-1 entries. Only used if Calculate is false in the enclosing Multidimensional Franck Condon factor object.


Vibrational Structure Sample Data Files

This section shows some examples of data files for simulating vibrational structure in various molecules. These include:
  • CFBr Dispersed Fluorescence Spectrum
  • The Renner-Teller effect in C3


Dispersed Fluorescence Spectrum of the A-X Electronic Transition in CFBr

This example is taken from "A reanalysis of the A 1A"−X1A' transition of CFBr". B. S. Truscott, N. L.Elliott and C. M. Western, J. Chem. Phys. 130, 234301 (2009) http://dx.doi.org/10.1063/1.3149785.

Data file: cfbrdisp.pgo

The data file simulates the vibrational structure of the dispersed fluorescence spectrum obtained by exciting v2 = 1 in the A state of CFBr. (See Rotational Structure of the A-X electronic transition in CFBr for the rotational structure.) The data file is a reasonably straightforward example of simulating vibrational structure. Notes:

  • The 79Br/81Br isotope splitting was not resolved in the dispersed fluorescence spectrum, so the set-up is for the average of the two.
  • The x13 and x23 terms in the ground state must be included using perturbations.
  • The vibrational mode displacements were determined by empirical fitting, so no information about the nuclei have been entered.
  • A dispersed fluorescence rather than an absorption spectrum is simulated by setting Initial to false for the ground state manifold (X) and true for the upper state manifold (A).
This file also provides an example of using a Non-Boltzmann Population to simulate fluorescence from v2 = 1 rather than v2 = 0 that a Boltzmann population would imply. This was set up by:
  1. Use "View","States" to bring up the State Details Window.
  2. Select the A state in the Active Object combo box at the top of the window.
  3. Right click on the required state in the "Eigenvalues" pane (the lower matrix), here state number 2 "0,1,0", and select "Add to population selection".
  4. The required population is now a parameter in the A state manifold object.
  5. To use the manually entered populations rather than a Boltzmann population, set the temperature negative.

Note that a similar effect can be obtained using vMin and vMax for various modes, though an implementation restriction in the current version means that values of vMin > 0 are likely to slow calculations for intensities considerably.

Dispersed fluorescence spectrum from v2 = 1:

Dispersersed fluorescence spectrum from the origin band, obtained by setting T = 300:


The Renner-Teller effect in C3

This provides a basic example of simulating vibrational structure including the Renner-Teller effect. The file was set up by fitting to selected bending levels in the A1Πu and X1Σg+ states. The level structure spectroscopy of both states is very complicated, so this simulation is far from complete.

Data file: c3rt.pgo

Notes:

  • The Renner-Teller effect is included by setting the appropriate PointGroup (DInfinityh) and Symmetry (Piu) for the state. The magnitude is set by the epsOmega parameter.
  • The ground state has a very anharmonic bending potential, which is modeled here by including q4 and q6 terms in the potential using perturbations.


Force Field Analysis

PGOPHER can do a traditional force field analysis, calculating vibrational frequencies, the l matrix, isotope shifts, rotational constants, centrifugal distortion constants and Coriolis coupling constants from force constants and geometry. The force constants and geometry can be derived by fitting to any combination of the calculated quantities. The calculations are similar to those done by the ASYM20/ASYM40 program of Hedberg and Mills (1993, 2000), though implemented in a more flexible way, and these papers give a good outline of the methodology and how the calculations are performed. The VIBCA program (http://www.ifpan.edu.pl/~kisiel/vibr/vibr.htm) also performs similar calculations.

The force field can be expressed in terms of valence or symmetry coordinates. A typical analysis will include several isotopologues and might have a data file structured something like this:

Note the various single and multiple objects:

  • A single Global Variables object which contains geometric variables and force constants common to all isotopologues.
  • A z Matrix for each isotopologue, which specifies the geometry. The use of variables means this will be identical for all isotopologues, except for the masses.
  • An (optional) Internal Coordinates object for each isotopologue, which specifies the valence coordinates and force constants. The use of variables means this will be identical for all isotopologues.
  • An (optional) Symmetry Coordinates object for each isotopologue, which specifies the combinations of valence coordinates to use. The use of variables means this will only differ for isotopologues of different symmetry.

A Cartesian Coordinates object may also be present; the exact combination of objects used depends on the required calculation. Nuclear Co-ordinates and Vibrational Modes objects will also be present, automatically created and updated from the force field analysis objects listed above.

The current version of the program does not explicitly make use of symmetry for the force field analysis, but it is implicit in the way the force constants and geometry are specified. The current version of PGOPHER is restricted to harmonic terms, but the program is structured so that anhamonic terms can be added in future. The units are currently less flexible than for rotational calculations; the overall mixture units must be set to cm-1, the geometry specified in Angstroms and degrees and force constants (for stretches) in millidyne/Å = aJ/Å2 (1 millidyne/Å = 1 aJ/Å2 = 100 J/m2 = 100 N/m). For a full discussion of the units see Hedberg and Mills (1993).

Further Details

  • Worked Example - Setting up a simple force field analysis for H2O
  • Worked Example - Setting up a combined force field analysis for H2O and D2O
  • Worked Example - Refining an ab initio force field for H2O
  • z Matrix
  • Internal Coordinates
  • Valence Coordinates
  • Cartesian Coordinates
  • Symmetry Coordinates
  • Sample Data Files

References

  • L. Hedberg and I. M. Mills, J. Molec. Spectrosc. 160, 117 (1993).
  • L. Hedberg and I. M. Mills, J. Molec. Spectrosc. 203, 82 (2000).


Worked Example - Setting up a simple Force Field Analysis for H2O

There are various ways a force field calculation can be set up; the calculation worked through here is a purely empirical one, using experimental rotational constants and vibrational frequencies to derive the geometry and internal force constants for H2O. To give the simplest possible calculation we look at just one isotopologue, and ignore the effects of zero point vibration, though both these restrictions can be lifted in more detailed calculations.

The Experimental Information

For this calculation we use the following information from "Rotation-Vibration Spectra of Deuterated Water Vapor", W. S. Benedict, N. Gailar, and Earle K. Plyler, J. Chem. Phys. 24, 1139 (1956) http://dx.doi.org/10.1063/1.1742731, though many more recent papers on water are available. The information we will use (all in cm-1) are the rotational constants for the ground state for H2O (Table VII): A = 27.8778, B = 14.5092 and C = 9.2869 and the vibrational frequencies for H2O (Table XI): ν1 = 3656.65, ν2 = 1594.59, and ν3 = 3755.79. (A more complete analysis would include the information from D2O and HDO.)

Setting up the geometry

The first step is to set up the geometry as a z matrix:
  1. Click on File, New, Vibrational Spectrum.
  2. Select View, Constants
  3. The default calculation this generates has two electronic states; as the excited state is superfluous to the current calculation this can be deleted; righ click on "Excited" and select "Delete". Answer "Yes to All" to the "Excited has linked nodes. Delete these also?" question.
  4. Right click on "X" and select "Add New ..., z Matrix". This creates a z matrix object, that allows the geometry to be specified in a natural form, rather than as Cartesian coordinates.
  5. Right click on "z Matrix" and select "View ..." to bring up the z Matrix window.
  6. We now need to enter the three atoms; start with the oxygen atom by entering the "O" in the left of row 1 under "Atom".
  7. To force an update click on "Operate" and select "Check". This will force a blank row 2 to be present, to allow the next atom to be entered. (At later stages in the process you may want to use "Apply to State" instead, which does the check and then updates related information, including adding or removing Nuclear co-ordinates to the state as required.)
  8. To clear multiple cells, select them with a mouse (or shift + arrow keys) and press delete (not backspace; on a Mac you may have to use fn+backspace).
  9. To enter the first hydrogen atom in row 2:
    1. Enter "H1" in the left hand ("Atom") column. The 1 here indicates it is the first hydrogen atom.
    2. Enter the atom it is bonded to ("O") in the next column ("Atom1").
    3. Enter the bond length in the next column ("Distance/x") in Angstroms. We could enter a numerical value here, but for most purposes it is best to enter a variable here. Among other things, this will allow us to fit the bond length to the rotational constants. The name of the variable is not critical, but it should be unique - "rOH" would be an obvious choice.
    4. Click on "Operate" and select "Check". A partial plot of the molecule will now be visible, though it won't mean much yet. The variable chosen for the bond length ("rOH") will now also be visible in the constants window when "z Matrix" is selected. Enter a value for this; at this stage only an approximate value is needed, so 1 will do.
    5. Clicking on "Operate" and selecting "Check" will update the plot with the bond length set, and the two atoms should now be visible in the plot. (You may have have to select a different plot plane to see both atoms.)
  10. Now enter the second hydrogen atom in row 3:
    1. The first three cells are much as the first hydrogen atom: "H2", "O" and "rOH". (This is of course hydrogen number 2.)
    2. An angle must now be specified with respect to another atom. The atom ("H1") is entered under "Atom2".
    3. The in degrees bond angle is entered under "Angle/y". As for the bond length a numerical value could be entered, but a variable name , say "HOH" is more convenient.
    4. Click on "Operate" and select "Check"; an "HOH" entry will appear under "z Matrix". Enter an estimated value here, say 90. Again this can be refined later.
    5. Clicking on "Operate" and select "Check" should now give a recognizable water molecule:

Note that the fourth and subsequent atoms require a third atom and second angle to be specified.

This initial file is available as H2Osf1.pgo. Clicking on "Operate" and selecting "Print" will display the calculation of the rotational constants in the log window. The key information is:

Rotational Constants / cm-1 1..3
    18.83461648    16.72674228     8.85910401
Transformation to principal axis system
   1         2         3
1  -.7071068 -.7071068 0
2  .70710678 -.7071068 0
3  0         -0        1

The rotational constants should be compared with the observed values above (A clearly needs work!). The "transformation to principal axis system" gives the rotation between the Cartesian axis system implicit in the input above (x along the first bond, first three atoms in the xy plane) and the principal axis system (a, b, c, plotted in the z matrix window). Note that there is less flexibility in the units in this mode of PGOPHER; the rotational constants and frequencies must all be in cm-1, the centrifugal distortion constants must be in kHz, the bond lengths must be in Angstroms and the angles in degrees.

Fitting the geometry

We can now fit to the experimental rotational constants to refine the initial guess of the geometry. There are many possible calculated properties to fit to; to see a complete list right click on an object and select "Show Calculated Parameters", which prints all the current value in the log window. Doing this for the state prepared above (right click on "X") gives the following parameters:

Parameter X Ixx = 0.895034367101856
Parameter X Bx = 18.834616480851
Parameter X Iyy = 1.007825
Parameter X By = 16.7267422831787
Parameter X Izz = 1.90285936710186
Parameter X Bz = 8.85910400578871
and many more, including bond angles and distances, centrifugal distortion constants and other rovibrational constants. (Many of the calculated values will be zero or invalid at this stage, as the force field is not set up.) The Ixx, Iyy and Izz values are the principal moments of inertia, and the Bx, By and Bz values are the rotational constants.

To fit to the experimental values of the rotational constants, the experimental information must be given in a separate text file. Use the Slave Editor included with PGOPHER, notepad or any other simple text editor to prepare the file. The file can simply include the lines of interest containing the required parameters as above, with the calculated values replaced by the experimental values. If required a second number can be given, corresponding to the estimated uncertainty in the observed value. For the rotational constants the file should therefore look like this:

Parameter X Bx = 27.8778
Parameter X By = 14.5092
Parameter X Bz = 9.2869

This is available in H2Osf1.obs. To use this file:

  1. Open the log window ("View, Log...") if it is not open already.
  2. The text box at the top needs to contain the file name; drag and drop the file onto the window, or use the browse button to the right of the text box to bring up a file browsing dialog.
  3. Make sure the fit type at the top left is set to "Line".
  4. At this stage no parameters have been floated, so pressing the "Fit" button will simply print out a set of observed and calculated values, that can be used to check that the file has been set up correctly. In this case we have:
    Residuals before fit
    J'S' #'    J"S" #"     Observed    Calculated      Obs-Calc StdDev
X.Bx                        27.8778       18.8346        9.0432 1        :   4:H2Osf1.obs
X.By                        14.5092       16.7267       -2.2175 1        :   5:H2Osf1.obs
X.Bz                         9.2869        8.8591        0.4278 1        :   6:H2Osf1.obs

3 Observations,  0 Parameters
Average Error: 5.38143944037769
    indicating (for example) that the rotational constants are assigned correctly.
  5. The obvious parameters to float are the bond length (rOH) and angle (HOH). To allow these to float, click on "z Matrix" in the constants window and change the "no" by each of the parameters to "yes" by clicking on the "no". (Note that for more complicated fits it will often make sense not to float all the parameters of interest at once, to avoid problems with the fit.)
  6. Pressing the "Fit" button will now carry out one cycle of least squares fitting. The initial observed and calculated values are printed out, followed by an estimate of better values for the floated parameters. As this is a non-linear fit several cycles will be required for convergence - keep pressing the fit button until the values converge. In this case 5 or 6 cycles are required for convergence. (If the values diverge use the undo fit button to step back through the fit cycles, and float less parameters or make some manual changes to the floated parameters.) The final fit cycle gives a good fit:
Residuals before fit
    J'S' #'    J"S" #"     Observed    Calculated      Obs-Calc StdDev
X.Bx                        27.8778       27.8531        0.0247 1        :   4:H2Osf1.obs
X.By                        14.5092       14.4168        0.0924 1        :   5:H2Osf1.obs
X.Bz                         9.2869        9.4997       -0.2128 1        :   6:H2Osf1.obs

3 Observations,  2 Parameters
Initial Average Error: 0.23333195400265
Predicted New Error:   0.233331954002646
Parameters:
  # Old                 New                 Std Dev   Change/Std Sens    Summary              Name
  1 .958238165577492    .958238165037247    .00466889    0.0000  .000295 0.9582(47)           z Matrix rOH
  2 105.281433487712    105.281433398942    .47991846    0.0000  .030373 105.28(48)           z Matrix HOH

Correlation Matrix
       1       2
  1   1.000
  2   0.683   1.000

Setting up the internal coordinates

The next step is to set up the internal valence coordinates and the corresponding force constants using an Internal Coordinates object.

  1. To create the object, right click on "X" and select "Add New ..., Internal Coords".
  2. Right click on "Internal Coords" and select "View ..." to bring up the Internal Coordinates Window.
  3. We now need to enter three Valence Coordinates; for each we need to enter a type of motion, and specify 2-4 atoms involved in the motion in the top left grid.
  4. The order is not critical, so let's start with an O-H stretch:
    1. In the first row, click on the first column (under "Mode") and select "Stretch" from the drop down box.
    2. Two atoms must be specified in the next two columns - enter "O" under "Atom k" and "H1" under "Atom l".
    3. Click on "Operate" and select "Check" to check and update the plot if necessary. (Moving to a different row using the arrow keys also triggers a this process.) Note that error messages will appear in the plot title; you may have noticed, for example, "1:3:Missing Atom 2" appear after you entered "O", which indicates an error (missing atom) associated with row 1 column 3. If the mode is set up correctly, the plot should show the stretch when the cursor is on the top row.
    4. The force constant for this mode (mode 1) can be entered in the top right grid. The first column contains the value; as for the geometry information it is more convenient to enter a symbolic value, say kstretch, rather than a numerical value.
    5. The next two columns specify the two modes involved (the potential energy is ½ fijRiRj). In this case both modes are the same, so enter 1 in both of the next two columns.
    6. Clicking on "Operate" and selecting "Check" will make sure that "kstretch" appears as a variable under "Internal Coords". A reasonable starting value for this might be 7. (This can be experimented with at a later stage.)
  5. Enter the second OH stretch in the next row of both grids:
    1. In the left grid add "Stretch", "O" and "H2"
    2. In the right grid add "kstretch", "2" and "2". Note it is a symmetrically equivalent bond, so using the same name for the force constant forces the two bonds to have the same force constant.
  6. The final mode is the bend in the next row, for which 3 atoms must be specified:
    1. In the left grid add "Bend", "H1", "O" and "H2". Note that the second atom ("Atom l") is the central atom.
    2. The force constant in the right grid is as for the bend, though the force constant will need a different name - add "kbend", "3" and "3".
    3. Clicking on "Operate" and selecting "Check" will make sure that "kbend" appears as a variable under "Internal Coords". A reasonable starting value for this might be 1.
  7. For completeness we can add interactions between the modes to the force constant grid
    1. A stretch-stretch interaction between the two bonds could be specified by adding a row such as "kstrstr", "1" and "2". (Swapping the modes over does not change the interaction so the row "kstrstr", "2" and "1" is, by convention, not added.)
    2. A stretch-bend interaction requires two rows, to allow each bond to interact with the bend:
      1. "kstrbend", "1" and "3" (again the order of "1" and "3" is not important).
      2. "kstrbend", "2" and "3"
    3. The default values of zero for variables is a reasonable starting point for these constants (corresponding to no interaction between the modes), so the value need not be explicitly set.
The Internal Coordinates window should look something like the picture below; the file is available as H2Osf2.pgo.

As the above procedure is followed, a Vibrational Modes object is added for each vibration with a non-zero frequency. These are updated from the information in the internal coordinates and z matrix objects, and the vibrational frequencies can be read from them. Alternatively, clicking on "Operate" and selecting "Print" will display the calculation of the normal modes in the log window. The key information is at the end:
l Matrix (R and T labels arbitrary)
cm-1      3567.5165      3514.9203      1985.2376         0.0001         0.0000         0.0000         0.0000        -0.0000        -0.0000
  l    v1             v2             v3             Rx             Ry             Rz             Tx             Ty             Tz
 xO    0.2158480243   0.1319775701   0.1542439579   0.9538375476   0.0000000000   0.0000000000   0.0000000000   0.0000000000   0.0489314378
 yO   -0.1647853532   0.1728739673   0.2020401264  -0.0627998726   0.1112453333   0.0000000000   0.0000000000   0.4084516430   0.8479316443
 zO    0.0000000000   0.0000000000   0.0000000000  -0.0170374808  -0.8180333414   0.0000000000   0.0000000000  -0.4692857484   0.3321175438
xH1   -0.6805348697  -0.6899365669   0.0581626584   0.2394286284   0.0000000000   0.0000000000   0.0000000000   0.0000000000   0.0122825811
yH1    0.0000000000  -0.0183245689  -0.6814039914   0.0947673725   0.4158240860   0.0000000000   0.0000000000  -0.4805526204   0.3500449461
zH1    0.0000000000   0.0000000000   0.0000000000   0.0000000000   0.0000000000   1.0000000000   0.0000000000   0.0000000000   0.0000000000
xH2   -0.1793620921   0.1641633430  -0.6726408834   0.1328055375  -0.3741846924   0.0000000000   0.0000000000   0.5624645264  -0.1200668167
yH2    0.6564731136  -0.6703720258  -0.1234849642  -0.0448954256  -0.0743106560   0.0000000000   0.0000000000   0.2562049518   0.1766839314
zH2    0.0000000000   0.0000000000   0.0000000000   0.0000000000   0.0000000000   0.0000000000   1.0000000000   0.0000000000   0.0000000000
Discarding 6 modes

The top row has the calculated vibrational frequencies; as expected three are significant, and are in reasonable agreement with the observed values considering the approximate force constants used. Six are essentially zero corresponding to rotation and translation, though not correctly labelled by this calculation. The matrix shows the Cartesian displacements along each normal mode.

Fitting the force constants

We can now fit the force constants to the observed vibrational frequencies. The first step is assigning the vibrational modes; the observations are sorted by symmetry, symmetric modes first, and then frequency but the calculated modes are only sorted by frequency. The current calculation does not make any use of symmetry, so a manual step is required to assign the observed and calculated frequencies. The calculated normal modes are best visualised in the l Matrix Window; right click on "X" and select "l matrix" to bring it up. Clicking in a particular column in the top grid plots the selected mode; clicking on the "v1" column for example gives the picture below. Note that if you update information elsewhere you may need to click on "Operate" and select "Check"to force the window to update. For heavier molecules you may also want to adjust the magnification setting to scale up the length of the arrows showing the vibrational motion.

which clearly shows that v1 is the asymmetric stretch, ν3 in the experimental paper. Similarly v2 is the symmetric stretch, ν1in the experimental paper and v3 is the bend. This information can be presented to PGOPHER by adding the following lines to the observation file prepared above:
Parameter X.v1.Omega = 3755.79
Parameter X.v2.Omega = 3656.65
Parameter X.v3.Omega = 1594.59

This is available in H2Osf2.obs. Fitting can now proceed as before:

  1. Open the log window ("View, Log...") if it is not open already.
  2. The text box at the top needs to contain the file name; drag and drop the file onto the window, or use the browse button to the right of the text box to bring up a file browsing dialog.
  3. Make sure the fit type at the top left is set to "Line".
  4. Given the significant change made to the observations file, it is probably best to do a fit cycle with no parameters floated to check that the file has been set up correctly. To fix all the parameters click on "Fix All" in the constants window. Pressing the "Fit" button will give
    Residuals before fit
        J'S' #'    J"S" #"     Observed    Calculated      Obs-Calc StdDev
    X.Bx                        27.8778       27.8531        0.0247 1        :   4:H2Osf2.obs
    X.By                        14.5092       14.4168        0.0924 1        :   5:H2Osf2.obs
    X.Bz                         9.2869        9.4997       -0.2128 1        :   6:H2Osf2.obs
    v1.Omega                  3755.7900     3567.5165      188.2735 1        :   8:H2Osf2.obs
    v2.Omega                  3656.6500     3514.9203      141.7297 1        :   9:H2Osf2.obs
    v3.Omega                  1594.5900     1985.2376     -390.6476 1        :  10:H2Osf2.obs

    6 Observations,  0 Parameters
    Average Error: 186.252423387177
    suggesting the assignment is correct.
  5. The obvious first step is to try floating the diagonal force constants kstretch and kbend. To do this, click on "Internal Coords" in the constants window and change the "no" by each of the two parameters to "yes" by clicking on the "no".
  6. Pressing the "Fit" button will now carry out one cycle of least squares fitting. As before a few cycles are required for convergence, which gives:
    Residuals before fit
        J'S' #'    J"S" #"     Observed    Calculated      Obs-Calc StdDev
    X.Bx                        27.8778       27.8531        0.0247 1        :   4:H2Osf2.obs
    X.By                        14.5092       14.4168        0.0924 1        :   5:H2Osf2.obs
    X.Bz                         9.2869        9.4997       -0.2128 1        :   6:H2Osf2.obs
    v1.Omega                  3755.7900     3734.6411       21.1489 1        :   8:H2Osf2.obs
    v2.Omega                  3656.6500     3678.1439      -21.4939 1        :   9:H2Osf2.obs
    v3.Omega                  1594.5900     1594.5436        0.0464 1        :  10:H2Osf2.obs

    6 Observations,  2 Parameters
    Initial Average Error: 15.0774681419403
    Predicted New Error:   15.0774681419403
    Parameters:
      # Old                 New                 Std Dev   Change/Std Sens    Summary              Name
      1 7.67120869475949    7.67120869476477    .04415246    0.0000  .005408 7.671(44)            Internal Coords kstretch
      2 .644627021835946    .644627021827996    .01220247    0.0000  .001494 0.645(12)            Internal Coords kbend

    Correlation Matrix
           1       2
      1   1.000
      2  -0.002   1.000
  7. An important check is that the assignment has not changed - using the l matrix window as above will confirm that the the highest frequency mode is still the asymmetric stretch.
  8. The bend is clearly fitting well, but the stretching vibrations could be improved. This suggests floating the stretch-stretch interaction might help, and indeed it does:
    Residuals before fit
        J'S' #'    J"S" #"     Observed    Calculated      Obs-Calc StdDev
    X.Bx                        27.8778       27.8531        0.0247 1        :   4:H2Osf2.obs
    X.By                        14.5092       14.4168        0.0924 1        :   5:H2Osf2.obs
    X.Bz                         9.2869        9.4997       -0.2128 1        :   6:H2Osf2.obs
    v1.Omega                  3755.7900     3755.7900       -0.0000 1        :   8:H2Osf2.obs
    v2.Omega                  3656.6500     3656.6500        0.0000 1        :   9:H2Osf2.obs
    v3.Omega                  1594.5900     1594.5900        0.0000 1        :  10:H2Osf2.obs

    6 Observations,  3 Parameters
    Initial Average Error: 0.134714266452586
    Predicted New Error:   0.134714266452586
    Parameters:
      # Old                 New                 Std Dev   Change/Std Sens    Summary              Name
      1 7.67003365917486    7.67003365917486    .00039448    0.0000  3.22e-5 7.67003(39)          Internal Coords kstretch
      2 .644671760832649    .644671760832649    .00010903    0.0000  8.9e-6  0.64467(11)          Internal Coords kbend
      3 -.0883036398001041  -.0883036398001022  .00039447    0.0000  3.22e-5 -0.08830(39)         Internal Coords kstrstr

    Correlation Matrix
           1       2       3
      1   1.000
      2  -0.002   1.000
      3   0.005  -0.002   1.00
  9. As we only have three vibrations it would be unreasonable to expect to be able to determine more force constants, so kstrbend is left at zero. Note that floating kstrbend instead of kstrstr does give a fit, but with some problems as the assignment of v1 and v2 become swapped, suggesting this is not the right approach.
It is now possible to display a variety of calculated rovibrational parameters such as centrifugal distortion constants and the vibrational dependence of by right clicking on "X" and selecting "Print Information". Note that the layout of object produced by default is a little untidy:

Note the presence of three Vibrational Modes objects (v1, v2 and v3) and three Nuclear Co-ordinates objects (O, H1 and H2) all of which are effectively read only in this set-up as most changes made in these will be overwritten by any calculation. The order is not important, but the objects can be re-ordered for clarity; right click on a node and select "Move Up" or "Move Down". The keyboard shortcuts Alt+Up and Alt+Down can also be helpful for this. The final file is available as H2Osf3.pgo, which has the following order:

Setting up the symmetry coordinates

It is also possible to add to the above so that the calculation involves symmetry adapted coordinates. Among other things, this can reduce or remove the issues with assigning modes. (Note that the normal mode calculations as currently implemented do not formally use symmetry so, for example, setting the point group of the molecule at the molecule level is not required.) Symmetry coordinates are defined using a Symmetry Coordinates object.

  1. To create the object, right click on "X" and select "Add New ..., Symmetry Coords".
  2. Right click on "Symmetry Coords" and select "View ..." to bring up the Symmetry Coordinates Window.
  3. We now need to enter three symmetry coordinates (S1, S2, S3) expressed as a linear combination of the internal coordinates (R1, R2, R3). This defines the U matrix.. We will try and use the same numbering for the symmetry coordinates as the experimental paper, so S1 should be the symmetric stretch.
  4. The symmetric stretch should be an equal mixture of the two bond stretches, so S1 = R1+R2. The coefficients (both 1) are entered in the grid in the top right, in the top row for S1.
    1. Enter 1 in the top left cell. When you do this the default values for all the other coefficients are automatically entered, corresponding to an identity matrix.
    2. Enter 1 in the second cell on the top row, under "R2"
    3. Click on "Operate" and select "Check" to check and update the plot if necessary. Provided the selected cell is in the top row, the bottom plot should show the linear combination of the two stretches. (You may want to use "Apply" instead, which will update other objects as well.)
  5. S2 should be the same as the internal bending coordinate, i.e. S2 = R3. The second row of the grid should therefore be set to 0 0 1. Blanks can be used instead of zeros if wanted.
  6. The asymmetric stretch requires two S1 = R1-R2, so the third row should contain 1 -1 0.
  7. Two settings that should probably be set in the "Symmetry Coords" object are:
    1. Set PreserveS to true. This tries to reorder the normal modes so that the numbering is the same as the symmetry coordinates. This relies on the L matrix, which relates the normal modes to symmetry coordinates, S = LQ, having a dominant coefficient in each column.
    2. Less important: Set Normalize to true, which normalizes the symmetry coordinates. in this case the two stretching modes are divided by sqrt(2).
The symmetry coordinates window should look something like the picture below; the file is available as H2Osf4.pgo. Fitting could be done with this file (with a slightly adjusted input file) though we don't do this here as the addition of the symmetry coordinates has made no difference to the final calculated values.

Notes on the symmetry coordinates window:
  1. Error messages concerning the symmetry coordinates will appear at the top of the plot. Messages about dpotrf imply that the symmetry coordinates have not been chosen to be independent; two identical rows will give this message, for example.
  2. The force constants can be given in terms of symmetry coordinates here in the top right grid. When this is left blank, as here, the force constants are taken from the internal coordinates.


Worked Example - Setting up a combined force field analysis for H2O and D2O

In this example the basic file set up for the force field of H2O is extended to allow data from D2O to be included. This demonstrates how to combine multiple isotopologues in one file, and use the same force constants and geometry for each. The D2O experimental data is taken from the same source as the H2O data.

Converting to global variables

The first step is to move the variables describing the geometry and force constants to a global Variables object. We start with H2Osf4.pgo from the simple force field analysis.
  1. Create the variables object by right clicking on the topmost object in the constants window (the file name) and selecting "Add New ..., Variables".
  2. Click on the "Variables" object that has just been created, and set "Global" to True. This makes the parameters created in the variables object easier to use, as the names can be used without qualification.
  3. Create the variables required - for H2O we required rOH, HOH, kstretch, kbend, kstrstr and kstrbend. Right click on Variables, select "Add Parameter..." and enter the list of names as above.
  4. The variables will all be created with zero initial values. Copy and paste the values found previously from the "z Matrix" and "Internal Coords" objects. (This can be done with a few mouse clicks: click and drag in the source object to select the values, right click and select copy, click in the first cell in the destination Variables object and right click and select paste.)
  5. The original variables are now redundant, and must be deleted. Click on "z Matrix", right click on any of the parameters and select "Remove All Parameters". Repeat the process for "Internal Coords".
If everything has been done correctly, all the previous calculations should still work - try clicking on "Operate" and select "Check" in one of the windows. The file is available as H2Ocf1.pgo.

Setting up the calculation for D2O

To set up the calculation for D2O as well as H2O the simplest way is to duplicate the H2O objects, and modify then as required:
  1. To make things clearer some renaming will help. Right click on "Species", select "Rename" and enter "Water". All the isotopologues will be under this.
  2. Right click on "VibratingMolecule", select "Rename" and enter "H2O". This node, and everything under it, is specific to H2O.
  3. Duplicate the "H2O" object by right clicking on it, and selecting copy. The right click on "Water" and select paste.
  4. Rename the new object: right click on "Copy of H2O", select "Rename" and enter "D2O".
  5. The D2O object now needs adjusting; in this case the only thing that needs changing are the nuclear masses. Right click on the "z Matrix" object under "D2O" and select "View".
  6. The isotope can be specified as a leading number for the atom name in the first column. To specify deuterium, change "H1" and "H2" in the first column to "2H1" and "2H2".
This completes the set up for D2O. The file is available as H2Ocf2.pgo, which has the following structure:

We can now calculate the rotational constants and vibrational frequencies for D2O; right click on "X" under "D2O" and select "Print Information". Key values include:
Rotational Constants / cm-1 1..3
    15.49461654     7.21393246     4.92224832

L Matrix
/cm-1      2646.0063      1162.6458      2752.8384
L       v1             v2             v3
  S1    0.7363239075   0.0191938829   0.0000000000
  S2   -0.1498032118   1.1095331612   0.0000000000
  S3    0.0000000000   0.0000000000   0.7586150835

Fitting to H2O and D2O

The results above are reasonable, but we can refine the geometry and force constants to give a better combined fit. We need to put the observations in a separate file as before, with a little extra information to specify the isotopologue. The values for H2O need to look like this:

Parameter H2O X Bx = 27.8778
Parameter H2O X By = 14.5092
Parameter H2O X Bz = 9.2869

Parameter H2O.X.v1.Omega = 3656.65
Parameter H2O.X.v2.Omega = 1594.59
Parameter H2O.X.v3.Omega = 3755.79
(Note that the modes have been renumbered to take account of the introduction of symmetry coordinates.) Adding the D2O values is straightforward:
Parameter D2O.X.Bx = 15.3846
Parameter D2O.X.By =  7.2716
Parameter D2O.X.Bz =  4.8458

Parameter D2O.X.v1.Omega = 2671.80
Parameter D2O.X.v2.Omega = 1178.33
Parameter D2O.X.v3.Omega = 2788.05

This is available in H2Ocf1.obs. Fitting can now proceed as before:

  1. Open the log window ("View, Log...") if it is not open already.
  2. The text box at the top needs to contain the file name; drag and drop the file onto the window, or use the browse button to the right of the text box to bring up a file browsing dialog.
  3. Make sure the fit type at the top left is set to "Line".
  4. Given the significant change made to the observations file, it is probably best to do a fit cycle with no parameters floated to check that the file has been set up correctly. To fix all the parameters click on "Fix All" in the constants window. Pressing the "Fit" button will give
    Residuals before fit
        J'S' #'    J"S" #"     Observed    Calculated      Obs-Calc StdDev
    H2O X.Bx                    27.8778       27.8531        0.0247 1        :   4:H2Ocf1.obs
    H2O X.By                    14.5092       14.4168        0.0924 1        :   5:H2Ocf1.obs
    H2O X.Bz                     9.2869        9.4997       -0.2128 1        :   6:H2Ocf1.obs
    H2O v1.Omega              3656.6500     3656.6500       -0.0000 1        :   8:H2Ocf1.obs
    H2O v2.Omega              1594.5900     1594.5900       -0.0000 1        :   9:H2Ocf1.obs
    H2O v3.Omega              3755.7900     3755.7900       -0.0000 1        :  10:H2Ocf1.obs
    D2O X.Bx                    15.3846       15.4946       -0.1100 1        :  12:H2Ocf1.obs
    D2O X.By                     7.2716        7.2139        0.0577 1        :  13:H2Ocf1.obs
    D2O X.Bz                     4.8458        4.9222       -0.0764 1        :  14:H2Ocf1.obs
    D2O v1.Omega              2671.8000     2646.0063       25.7937 1        :  16:H2Ocf1.obs
    D2O v2.Omega              1178.3300     1162.6458       15.6842 1        :  17:H2Ocf1.obs
    D2O v3.Omega              2788.0500     2752.8384       35.2116 1        :  18:H2Ocf1.obs

    12 Observations,  0 Parameters
    Average Error: 13.3891789207862
    suggesting the file is correct.
  5. The obvious first step is to try floating the two geometrical parameters (rOH and HOH) and the diagonal force constants kstretch and kbend. To do this, click on "Variables" in the constants window and change the "no" by each of the parameters to "yes" by clicking on the "no".
  6. Pressing the "Fit" button will now carry out one cycle of least squares fitting. As before a few cycles are required for convergence, which gives:
    Residuals before fit
        J'S' #'    J"S" #"     Observed    Calculated      Obs-Calc StdDev
    H2O X.Bx                    27.8778       28.1371       -0.2593 1        :   4:H2Ocf1.obs
    H2O X.By                    14.5092       13.8615        0.6477 1        :   5:H2Ocf1.obs
    H2O X.Bz                     9.2869        9.2866        0.0003 1        :   6:H2Ocf1.obs
    H2O v1.Omega              3656.6500     3668.6222      -11.9722 1        :   8:H2Ocf1.obs
    H2O v2.Omega              1594.5900     1601.7479       -7.1579 1        :   9:H2Ocf1.obs
    H2O v3.Omega              3755.7900     3772.8698      -17.0798 1        :  10:H2Ocf1.obs
    D2O X.Bx                    15.3846       15.6526       -0.2680 1        :  12:H2Ocf1.obs
    D2O X.By                     7.2716        6.9361        0.3355 1        :  13:H2Ocf1.obs
    D2O X.Bz                     4.8458        4.8063        0.0395 1        :  14:H2Ocf1.obs
    D2O v1.Omega              2671.8000     2652.9815       18.8185 1        :  16:H2Ocf1.obs
    D2O v2.Omega              1178.3300     1168.6079        9.7221 1        :  17:H2Ocf1.obs
    D2O v3.Omega              2788.0500     2766.9424       21.1076 1        :  18:H2Ocf1.obs

    12 Observations,  4 Parameters
    Initial Average Error: 13.1393954167445
    Predicted New Error:   13.1393954167445
    Parameters:
      # Old                 New                 Std Dev   Change/Std Sens    Summary              Name
      1 .968526948276958    .968526956897577    .17225937    0.0000  .000557 0.969(172)           Variables rOH
      2 106.642664066447    106.642663838532    2.9141525    0.0000  .240594 106.6(29)            Variables HOH
      3 7.73033457831899    7.73033457816424    .03123699    0.0000  .002705 7.730(31)            Variables kstretch
      4 .663596548317366    .663596560444018    .23589257    0.0000  .000763 0.664(236)           Variables kbend

    Correlation Matrix
           1       2       3       4
      1   1.000
      2   0.124   1.000
      3   0.000   0.004   1.000
      4   0.999   0.114   0.000   1.000
  7. An important check is that the assignment has not changed - check using the l matrix window that the vibrational assignment is correct for both H2O and D2O.
  8. It is also possible to float the kstrstr parameter as in the simple fit. While the fit is stable, the kstrstr parameter is not determined - the fitted value is -0.053(97) and the fit is not significantly improved. This suggests at the level of accuracy possible with this harmonic model it might be better to fix this at zero.


Worked Example - Refining an ab intio force field for H2O

Worked Example - Refining an ab initio force field for H2O

This example presents an alternative approach to setting up a force field calculation - using an ab initio calculation to generate the geometry and force field, and then adjusting these to improve the agreement with observed values. The ab initio calculations used here is from the worked example Predicting the Photoelectron Spectrum of H2O using ab initio Calculations. See also the worked example Setting up a simple force field analysis for H2O, which sets up a similar file, though without using ab initio calculations.

Importing the ab initio file and setting up the geometry

The first step is to import the ab initio output file. The Molpro output file used here is H2OCAS.out.
  1. Click on File, Import, l Matrix... and select the ab initio output file H2OCAS.out.
  2. Select View, Constants. You will note that two states have been generated (S0 and S1), corresponding to the HF and CASSCF stages of the calculation respectively. Only one of these is required; to use the CASSCF calculation right click on the first S0 and select "Delete". Click on "Yes to all" when prompted. To avoid "No Initial States Set" messages later, make sure that Initial is set to True in the manifold object (here the upper S1).
  3. For clarity, rename some of the items to more meaningful names. Right click on the item and select "Rename" to do this. The manifold and state, currently "S1" should both be something like "X", the top "LmatrixImport" item should be "Water" and the other "LmatrixImport" item "H2O".
  4. Right click on the second "X" and select "Add New ..., z Matrix". This creates a z matrix object, that allows the more flexible handling of the geometry.
  5. Right click on "z Matrix" and select "View ..." to bring up the z Matrix window.
  6. Click on "Operate" and select "Load from State" to set up the z matrix from the coordinates read in from the ab initio program. For the data file given you will need to click on "yz" to give the best plot of the molecule.

Setting up the internal coordinates

The next step is to set up the internal valence coordinates using an Internal Coordinates object. Much of this is the same as in Setting up a simple force field analysis for H2O, except for the force constants.

  1. To create the object, right click on the second "X" and select "Add New ..., Internal Coords".
  2. Right click on "Internal Coords" and select "View ..." to bring up the Internal Coordinates Window.
  3. We now need to enter three Valence Coordinates; for each we need to enter a type of motion, and specify 2-4 atoms involved in the motion in the top left grid.
  4. The order is not critical, so lets start with an O-H stretch:
    1. In the first row, click on the first column (under "Mode") and select "Stretch" from the drop down box.
    2. Two atoms must be specified in the next two columns - enter "O" under "Atom k" and "H1" under "Atom l".
    3. Click on "Operate" and select "Check" to check and update the plot if necessary. (Moving to a different row using the arrow keys also triggers a this process.) Note that error messages will appear in the plot title; you may have noticed, for example, "1:3:Missing Atom 2" appear after you entered "O", which indicates an error (missing atom) associated with row 1 column 3. If the mode is set up correctly, the plot should show the stretch when the cursor is on the top row.
  5. Enter the second OH stretch in the next row of both grids: in the left grid add "Stretch", "O" and "H2"
  6. The final mode is the bend in the next row, for which 3 atoms must be specified: in the left grid add "Bend", "H1", "O" and "H2". Note that the second atom ("Atom l") is the central atom.

Setting up the force constants

The next step is to calculate the force constants in valence coordinates from the l matrix and frequencies read in.
  1. Click on "Operate" and select "Calculate f matrix from l" to print the force constant matrix in the log window with some details of the calculation from the l matrix and frequencies.
  2. If the force constant matrix is OK, click on "Operate" and select "Set f matrix from l" to populate the grid in the top right with the force constants.
  3. The calculation may generate several very small values that you may want to set to zero. The easiest way of doing this is click on "Operate" and select "Sort f matrix by Value". This puts the smallest values at the bottom of the grid, where they can be deleted as a group. (For the sample file given here all the values look significant). To revert to the original sort order click on "Operate" and select "Sort f matrix by Mode".
  4. For refining the force field, it is convenient to express the force constants as variables. There are various ways to do this; here we start by using the same variables as in Setting up a simple force field analysis for H2O. To set the variables up, right click on "Internal Coords" and select "Add Parameter...". Enter kstretch kbend kstrstr kstrbend when prompted. (The names are arbitrary - use whatever names are most convenient.)
  5. The variables will now be visible in the constants window, set to the default values of zero. Copy and paste the values from the top right grid in internal coordinates window - kstretch will be the 11 and 2 2 value, for example.
  6. The numerical values in the top right window should then be replaced by the variable. The simplest approach would be to replace the value with the variable, so replace the 1 1 and 2 2 values by kstretch. However, to allow for a uniform scaling of the force constants we input it as ks*kstretch. The will create a variable, ks, that should be initialized to 1. After setting the cell, click on "Operate" and "Check" to force the generation of the variable. This will create the ks variable; set the value to 1.
  7. Repeat the process for the other force constants.
The result should be a force constant matrix that looks like this:

The file is available as H2Oabf1.pgo. If required a similar process can be followed for the z matrix, but this requires a little more work as the atom positions are imported in Cartesian coordinates. Conversion to the more convenient bond length/bond angle format must be done manually. For the current case the z Matrix given in used in the related worked example Setting up a simple force field analysis for H2O can be used, and the necessary bond length and bond angle can be picked out of the ab intio output.

Refining the force field

We can now fit the force constants to the observed vibrational frequencies, for which we use the values of ν1 = 3656.65, ν2 = 1594.59, and ν3 = 3755.79 given in Table XI of "Rotation-Vibration Spectra of Deuterated Water Vapor", W. S. Benedict, N. Gailar, and Earle K. Plyler, J. Chem. Phys. 24, 1139 (1956) http://dx.doi.org/10.1063/1.1742731. The first step is assigning the vibrational modes; the observations are sorted by symmetry, symmetric modes first, and then frequency but the calculated modes are only sorted by frequency. The current calculation does not make any use of symmetry, so a manual step is required to assign the observed and calculated frequencies. The calculated normal modes are best visualised in the l Matrix Window; right click on the lower "X" and select "l matrix..." to bring it up. Click on "yz" to select the best plot for showing vibrations. Clicking in a particular column in the top grid plots the selected mode; clicking on the "v1" column for example gives the following:

which clearly shows that v1 is the asymmetric stretch, ν3 in the experimental paper. Similarly v2 is the symmetric stretch, ν1in the experimental paper and v3 is the bend. This information can be presented to PGOPHER by adding the following lines to an observation file:

Parameter X.v1.Omega = 3755.79
Parameter X.v2.Omega = 3656.65
Parameter X.v3.Omega = 1594.59

This is available in H2Oab1.obs. To use this file:

  1. Open the log window ("View, Log...") if it is not open already.
  2. The text box at the top needs to contain the file name; drag and drop the file onto the window, or use the browse button to the right of the text box to bring up a file browsing dialog.
  3. Make sure the fit type at the top left is set to "Line".
  4. At this stage no parameters have been floated, so pressing the "Fit" button will simply print out a set of observed and calculated values, that can be used to check that the file has been set up correctly. In this case we have:
    Residuals before fit
        J'S' #'    J"S" #"     Observed    Calculated      Obs-Calc StdDev
    v1.Omega                  3755.7900     3833.4000      -77.6100 1        :   4:H2Oab1.obs
    v2.Omega                  3656.6500     3721.3600      -64.7100 1        :   5:H2Oab1.obs
    v3.Omega                  1594.5900     1715.2800     -120.6900 1        :   6:H2Oab1.obs

    3 Observations,  0 Parameters
    Average Error: 90.8786230550515
    indicating that the vibrations are assigned correctly.
  5. The obvious parameter to float is the scaling variable ks. To allow this to float, click on "Internal Coords" in the constants window and change the "no" by ks to "yes" by clicking on the "no".
  6. Pressing the "Fit" button will now carry out one cycle of least squares fitting. The initial observed and calculated values are printed out, followed by an estimate of better values for the floated parameters. As this is a non-linear fit several cycles will be required for convergence - keep pressing the fit button until the values converge. In this case only 1 or 2 cycles are required for convergence. (If the values diverge use the undo fit button to step back through the fit cycles, and float less parameters or make some manual changes to the floated parameters.) The final fit cycle gives a reasonable fit:. In this case we have:
    Residuals before fit
        J'S' #'    J"S" #"     Observed    Calculated      Obs-Calc StdDev
    v1.Omega                  3755.7900     3742.6547       13.1353 1        :   4:H2Oab1.obs
    v2.Omega                  3656.6500     3633.2669       23.3831 1        :   5:H2Oab1.obs
    v3.Omega                  1594.5900     1674.6754      -80.0854 1        :   6:H2Oab1.obs

    3 Observations,  1 Parameters
    Initial Average Error: 59.7200825208321
    Predicted New Error:   59.720082520669
    Parameters:
      # Old                 New                 Std Dev   Change/Std Sens    Summary              Name
      1 .9532157999599624   .9532158686557101   .02078263    0.0000  .0036   0.953(21)            Internal Coords ks
  7. The fit could be improved in various ways; the obvious one is to float the kbend force constant as well. More experimental information, from other isotopes for example, could also be added; see Setting up a combined force field analysis for H2O and D2O for how to do this.


z Matrix Window

z Matrix

The z matrix object is used to specify the the geometry of the molecule using the z matrix format commonly used by ab initio programs or standard Cartesian coordinates (or a mixture of the two). The units used are atomic mass units, Angstroms and degrees, independent of the units setting in the simulation object. The z matrix window, shown below for C2H4, allows the display and editing of this geometry. Provided the z matrix object is set active, changes in this window will be reflected in the Nuclear co-ordinates objects. To create a z matrix object, right click on the Electronic State object object and select "Add New..., z Matrix". To bring up the window right click on the z matrix object and select "View...".

The Controls

The grid at the top allows the z matrix to be edited; the example shown below shows a different molecule (HOD) using the alternate format where Cartesian coordinates are specified. Note that the grid will expand automatically as atoms are added.
Grid

PlotPlaneGroup
The "Plot Plane" control allows the selection of the plane in which to plot the molecule.
OperateButton
The operate button brings up a menu of possible operations:
Check | Check the contents of the z matrix grid, and update the plot to match. Note that the Nucleus objects for the state are not updated immediately by this - Apply to State (below) will force this, or running a full calculation if the z matrix is active.
Print | Check the z matrix, and display information on the geometry, moments of inertia and principal axes in the Log Window.
Apply to State | Update the Nucleus objects for the state to reflect the current z matrix. This is only required if the Active property of the z matrix is false.
Load from State | Clear the z matrix, and set from the Nucleus objects for the state. This will use Cartesian format.

G
The plot shows the geometry of the molecule, with the principal inertial axes displayed as for HOD above. The plot updates semi-automatically; use "Operate, Check" to force an update. The atom of currently selected row of the grid is highlighted in red.
StatusBar
The status bar shows the latest mouse position; draw a box with the mouse to measure distance and angles.

z Matrix Settings

Active | Set true to use this z matrix for geometry, in which case the Nuclear co-ordinates objects are updated from the z matyix. There must be no more than one active z matrix at a time.
AverageMass | If true, use the average mass of a nucleus if the isotope is not specified. If false, the exact mass of the most abundant isotope is used.

z Matrix Format

The format required for the z matrix is as used by many ab initio programs, and elsewhere, and it should be possible to copy the z matrix to and from other programs with minimal or no editing.

Atoms

The atoms (in the first column) can be specified in several formats:
  • The standard is [Isotope]<Element Symbol>[Number] (such as 13C2), with the isotope and number optional. The number is arbitrary, and is used to distinguish different atoms of the same element. If the isotope is omitted, either the most abundant isotope, or the average mass is used, depending on the AverageMass setting. Dummy atoms (with zero mass) can be specified with Q or X for the element symbol. The masses are taken from http://physics.nist.gov/PhysRefData/Compositions/index.html.
  • An integer is interpreted as an atomic number
  • A number with a decimal point is interpreted as an exact mass.

Linked Atoms

The even numbered columns allow up to three connected atoms to be specified; the name used should appear in the first column of one of the rows above. If these are all blank, As a special case, on the first line where no linked atom can be specified, the second column (if not blank) is taken as specifying the plane to place the first three atoms in. The first letter specifies the axis on which the first two atoms lie, and the second character (if present) completes the specification of the plane.

Specifying Bond Lengths and angles Angles

The odd numbered columns specify a distance (in Angstroms) and up to two angles (in degrees). The first angle (in column 5) is required after the second atom specifies the angle between the first three atoms on the line. For atoms after the third a dihedral angle must also be specified, which gives the angle between the planes containing the first three and last three atoms

The bond lengths and angles can be given as simple numerical values, but can also be given as general expressions involving symbolic values. This is typically more useful, as it allows symmetry constraints to be added naturally. For the C2H4 example above, note the use of two bond length variables (rCC and rCH) and a bond length variable (HCC). These can be used in expressions if required - an expression such as 180-HCC/2 might be needed in other contexts. When scanning the z matrix, unknown variables are automatically created as parameters to the current z matrix object, and they can then be edited in the Constants Window. If dealing with more than one isotopologue, these variables are better placed in a variables object, (with Global set to true) so the same value can be used in all species.

Specifying Cartesian Coordinates

If all the linked atoms in a row are blank, then Cartesian format is assumed, and x, y and z should be given in the odd numbered columns. Cartesian coordinates can be mixed with


Internal Coordinates

The internal coordinates object allows 3N-6 (or more) internal valence coordinates, R, to be set up which will be used to construct the matrix, B, that transforms between the 3N Cartesian displacements, Δx and R:

R = B Δx

Redundant valence coordinates can be specified (i.e. more than 3N-6), though this imposes some constraints on the possible calculations. The internal coordinates window, shown below for NH3 in a planar configuration, allows the display and editing of the valence coordinates and (optionally) the force field in terms of valence coordinates. To create an internal coordinates object, right click on the Electronic State object object and select "Add New..., Internal Coords". To bring up the window right click on the internal coordinates object and select "View...".

The Controls

The plot at the bottom shows the current internal coordinate, i.e. the selected row in the top left grid. The arrows indicate how far each atom moves, and the atoms involved are linked by thick gray lines. The plot updates semi-automatically; use "Operate, Check" to force an update.

G

PlotPlaneGroup The "Plot Plane" control allows the selection of the plane in which to plot the molecule.
MagnificationSpin The magnification selects the scale factor to use for the arrows.
StatusBar The status bar shows the latest mouse position; draw a box with the mouse to measure distance and angles.
OperateButton
The operate button brings up a menu of possible operations:
Check
         Check the contents of the top grids, and update the plot to match
Print
         Check the contents of the top grids, and display the details of the vibrational mode calculation in the Log Window.
Show VIBCA file
         Writes a data file for the VIBCA program to the Log Window. See http://www.ifpan.edu.pl/~kisiel/vibr/vibr.htm; note that not all PGOPHER files can be converted.
Calculate f Matrix from l Print the f matrix in the Log Window calculated from the l matrix elements and frequencies given in the vibrational mode objects. This is only possible if there are no redundant internal co-ordinates. If this is not the case, the calculation must be done via symmetry coordinates and the F matrix.
Set f Matrix from l | Clear the f matrix grid (top right) and set it from the l matrix elements and frequencies given in the vibrational mode objects. This is only possible if there are no redundant internal co-ordinates. If this is not the case, the calculation must be done via symmetry coordinates and the F matrix.
Calculate f matrix from F matrix Print the f matrix calculated from the F matrix using the following equation:
f = UT F U
Set f matrix from F matrix Clear the f matrix grid (top right) and set it by calculation from the F matrix using the following equation:
f = UT F U
Sort f Matrix by Value | Sort the f matrix grid (top right) in descending order of the first column.
Sort f Matrix by Mode | Sort the f matrix grid (top right) by mode numbers, with diagonal elements first.

The Force Constant Matrix

FGrid
The grid at the top right allows the force field to be given in terms of valence coordinates:

V = ½ RT f R = ½ Σij fijRiRj

The non zero elements of the f matrix, fij are specified in the grid, with the force constant in the first column, and i and j in the next two columns. (The fourth column is to allow future expansion to cubic and higher terms.). The units of (stretching) force constants are force constants (for stretches) in millidyne/Å = aJ/Å2 (1 millidyne/Å = 1 aJ/Å2 = 100 J/m2 = 100 N/m).

The force constants can be given as simple numerical values, but can also be given as general expressions involving symbolic values. This is typically more useful, as it allows symmetry constraints to be added naturally. For the NH3 example shown here, note the use of three different force constants, kstretch, kbend and kumb for each of the three different types of internal coordinate. The force constants can be given as general expressions if required; the common usage of scaling ab initio force constants could be done by expressing the constants as kscale*kstretch, and so on, with kscale initialized to 1.When reading the force constant matrix, unknown variables are automatically created as parameters to the current internal coordinates object, and they can then be edited in the Constants Window. If dealing with more than one isotopologue, these variables are better placed in a variables object, (with Global set to true) so the same value can be used in all species.

Note that the force constant grid will expand automatically as atoms are added. The grid can be left blank if the potential energy is to be expressed in terms of symmetry coordinates.

Internal Valence Coordinates

Grid
The grid at the top right allows a set of valence internal coordinates, R, to be specified. The first column dictates the valence coordinate type; a drop down box shows the available types and allows the type to be changed. See Valence Coordinates for more detail on the available types. Each coordinate requires the specification of 2-4 atoms, here labeled k - m, depending on the type of the coordinate.

Internal Coordinates Settings

Active | Set true to use this internal coordinates object; there must be no more than one active internal coordinates object at a time.
InPrincipalAxis | Toggles selected calculations between the principal axis system and the axis system used in the z matrix specification.


Valence Coordinates

The valence coordinates are closely based on those described in L. Hedberg, I. M. Mills, J. Molec. Spectrosc. 160, 117 (1993), and this should be referred to for precise definitions and units. Any differences are noted below.

Stretch

Bond length between atom k and l:

Bend

The angle klm:

Note the coordinate is the change in the bond angle in radians so the stretching and bending coordinates have different units.

Linear Bend

For atoms in a line an additional constraint is required, and four atoms must be specified rather than three. (The name is still bend in the internal coordinates object.) In contrast to the Hedberg and Mills paper the coordinate is taken to be the angle klm in plane of atom n, rather than specifying a separate vector. The extra atom, n, will typically be a dummy atom.

BondPlane

This is type 2 out of plane bending in the nomenclature of Hedberg and Mills. It is the angle between bond kl and plane mkn. The plane is indicated by a triangle in the plot:

and the side projection shows the motion:

Plane

This is type 1 out of plane bending in the nomenclature of Hedberg and Mills. Given centre (or apex) atom k and three other atoms in the same plane (lmn) the coordinate is the vector triple product of unit vectors along bonds:
ekl ● ekm × ekm.
All the atoms are shown joined to the central atom:

and again a different projection is needed to show the motion

Torsion

Given atoms klmn in a chain, the coordinate is the angle between the planes klm and lmn. (The atoms klm and lmn must not be collinear.) The chain is shown in the plot window:

and a different projection shows the displacements:

Torsion (Generalised)

In an extension to the torsion as defined by Hedberg and Mills above, a generalised torsion can be given by only specifying two (bonded) atoms, kl for a torsion. The valence coordinate is then an average of all possible 4 atom torsions defined as above, identifying the bonded atoms from the z matrix. (This requires the z matrix to not use Cartesian coordinates for the affected atoms.) The plot window joins all the affected atoms:

and again a different projection shows the displacements:


Cartesisan Coordinates

Cartesian Coordinates

The Cartesian displacements object allows the display or input of the matrix, B, that transforms between the 3N Cartesian displacements, Δx and the 3N-6 (or more) internal coordinates, R:

R = B Δx

Redundant coordinates can be specified (i.e. more than 3N-6), though this imposes some constraints on the possible calculations. If the internal coordinates have already been specified as valence coordinates using an Internal Coordinates object, then the Cartesian displacements window can be used to display the valence coordinates in terms of Cartesian displacements. Alternatively the required internal coordinates can be directly specified in terms of Cartesian displacements by editing the values in this window. An example of this is shown below, for NH3 in a planar configuration. To create an internal coordinates object, right click on the Electronic State object object and select "Add New..., Cartesian Displacements". To bring up the window right click on the Cartesian displacements object and select "View...".

The Controls

The plot at the bottom shows the current internal coordinate, i.e. the selected row in the top grid. The arrows indicate how far each atom moves. The plot updates semi-automatically; use "Operate, Check" to force an update.

G

PlotPlaneGroup The "Plot Plane" control allows the selection of the plane in which to plot the molecule.
MagnificationSpin The magnification selects the scale factor to use for the arrows.
StatusBar The status bar shows the latest mouse position; draw a box with the mouse to measure distance and angles.
OperateButton
The operate button brings up a menu of possible operations:
Check
         Check the contents of the top grid, and update the plot to match
Remove R, T
         Force the coordinates to be orthogonal to rotational and translational coordinates by subtracting the projection onto these coordinates. The details of the calculation are displayed in the Log Window.
Calculate from l matrix Set the B matrix by calculating it from the l matrix assuming the internal Cartesian coordinates are the same as the normal coordinates. The equation used is:
B = lT M1/2

Cartesian Displacement Coordinates

Grid
The grid at the top allows individual elements of the B, to be entered. The elements can be given as simple numerical values, but can also be given as general expressions involving symbolic values. When reading the matrix, unknown variables are automatically created as parameters to the current Cartesian displacememts object, and they can then be edited in the Constants Window. If dealing with more than one isotopologue, these variables are better placed in a variables object, (with Global set to true) so the same value can be used in all species. Note that the grid will expand automatically as rows are added. The grid should be cleared if the B matrix is to be given using an Internal Coordinates object.

Cartesian Displacement Settings

Active | Set true to use this internal coordinates object; there must be no more than one active internal coordinates object at a time.
InPrincipalAxis | Specifies the axis system used in specifying the Cartesian displacements; either the principal axis system or the axis system used in the z matrix specification.
Normalize | If true, the rows of the matrix given are normalized before use in further calculations


Symmetry Coordinates

Symmetry coordinates, S, are specified by giving the transformation matrix, U, between S and the internal coordinates, R:

S = U R = U B Δx

The symmetry coordinates window, shown below for C2H4, allows the display and editing of the U matrix and (optionally) the force field in terms of symmetry coordinates, F. To create a symmetry coordinates object, right click on the Electronic State object object and select "Add New..., Symmetry Coords". To bring up the window right click on the symmetry coordinates object and select "View...". If a symmetry coordinates object is not present, or the U matrix is left blank, an identity matrix is assumed for the U matrix. Note that the current version of the program ignores the point group set for the molecule as a whole, and the symmetry set for the individual vibrational modes when doing the force field calculation. This may be changed in future versions of the program.

The Controls

The plot at the bottom shows the current symmetry coordinate, i.e. the selected row in the top left grid. The arrows indicate how far each atom moves. The plot updates semi-automatically; use "Operate, Check" to force an update.

G
+
PlotPlaneGroup The "Plot Plane" control allows the selection of the plane in which to plot the molecule.
MagnificationSpin The magnification selects the scale factor to use for the arrows.
StatusBar The status bar shows the latest mouse position; draw a box with the mouse to measure distance and angles.
OperateButton
The operate button brings up a menu of possible operations:
Check
         Check the contents of the top grids, and update the plot to match
Apply
         Check the contents of the top grids, and display the details of the vibrational mode calculation in the Log Window. This also forces other objects to update.
Show F Matrix Print the F matrix in the Log Window calculated from the l matrix elements and frequencies given in the vibrational mode objects. The transformation is done by calculating the matrix L, which relates the symmetry coordinates, S, and normal coordinates, Q:
S = L Q
The L matrix is available from:
L = U B M-½ l
providing the internal coordinates are fully specified and the F matrix can then be calculated from:
F = (L-1)T λ L-1
Note that the U matrix is not necessarily required, but if there are redundant internal coordinates L-1 can't be calculated. In this case an alternative relationship can be used:
F = L λ LT
provided that L LT= 1.
Set F Matrix | Clear the f matrix grid (top right) and set it from the l matrix elements and frequencies given in the vibrational mode objects. See the entry above for details of the calculation.
Sort F Matrix by Value | Sort the F matrix grid (top right) in descending order of the first column.
Sort F Matrix by Mode | Sort the F matrix grid (top right) by mode numbers, with diagonal elements first.

The Force Constant Matrix

FGrid
The grid at the top right allows the force field to be given in terms of valence coordinates:

V = ½ ST F S = ½ Σij FijSiSj

The non zero elements of the F matrix, Fij are specified in the grid, with the force constant in the first column, and i and j in the next two columns. (The fourth column is to allow future expansion to cubic and higher terms.) The force constants can be given as simple numerical values, but can also be given as general expressions involving symbolic values. This is typically more useful as it allows, for example, relationships between isotopologues to be added naturally. For the example shown here the constants are expressed as the product of two factors, such as k2*F2. The intent is that k2 is a scaling factor, as commonly used in interpreting ab initio calculations; here a different scaling factor is used for each mode, but an obvious change would allow the same scaling factor to be used for each mode. When reading the force constant matrix, unknown variables are automatically created as parameters to the current internal coordinates object, and they can then be edited in the Constants Window. If dealing with more than one isotopologue, these variables are better placed in a variables object, (with Global set to true) so the same value can be used in all species.

Note that the force constant grid will expand automatically as atoms are added. The grid can be left blank if the potential energy is to be expressed in terms of internal coordinates.

Symmetry Coordinates

Grid
The grid at the top right allows the U matrix to be specified; each row corresponds to a specific symmetry coordinate, and the column the contribution from each internal valence (R) or Cartesian (B) coordinate. As for the other matrices, either a simple numerical value or a symbolic expression can be entered.

Internal Coordinates Settings

Active | Set true to use this symmetry coordinates object; there must be no more than one active symmetry coordinates object at a time.
Normalize | If true, the rows of the matrix given are normalized before use in further calculations
PreserveS | If true, the normal modes are in the same order as the symmetry coordinates, using the largest coefficients in the L matrix to align the two. This is not guaranteed to work, particularly if there is significant mixing between the symmetry coordinates. If false, the normal modes are sorted by energy. Note that the current version of the program ignores the point group set for the molecule as a whole, and the symmetry set for the individual vibrational modes when doing the force field calculation. This may be changed in future versions of the program.


Force Field Analysis Sample Data Files

This shows some examples of data files for force field analysis in various molecules. See also the worked examples.

The files listed below reproduce the fits given in L. Hedberg and I. M. Mills, J. Molec. Spectrosc. 203, 82 (2000). This paper describes both purely empirical fits, and scaling of ab initio force constants to match experiment.

  • C2H2
  • C2H4


Force Field Analysis for Acetylene

The files listed below reproduce the fits given in Table 1a and Table 1b of L. Hedberg and I. M. Mills, J. Molec. Spectrosc. 203, 82 (2000). The files are:

  • C2H2ff.obs - the observed quantities for the fit for use with either of the files below. Points to note:
    • Several different (equivalent) ways are used to specify the parameters.
    • The 13C vibrational frequencies are fitted as isotope shifts, as these are typically more accurate than absolute values.
    • Different weights (estimated errors ) are used for the observed values for C2D2, in line with the original paper.
  • C2H2emp.pgo - a fit to purely empirical symmetry force constants.
  • C2H2scaled.pgo - a fit scaling ab initio force constants to match experiment.

Notes on the data files:

  • The force constants are expressed in symmetry co-ordinates, rather than internal valence coordinates.
  • The two degenerate bending modes are repeated with the same force constant, so F4 and F6 appear twice in the force constant list.
  • The z matrix, shown below, uses Cartesian coordinates to specify the atomic positions, and has two dummy atoms to allow the bending modes to be uniquely specified.


Force Field Analysis for Ethene

The files listed below reproduce the fits given in Table 2a and Table 2b of L. Hedberg and I. M. Mills, J. Molec. Spectrosc. 203, 82 (2000). The files are:

  • C2H4ff.obs - the observed quantities for the fit for use with either of the files below. Points to note:
    • Several different (equivalent) ways are used to specify the parameters.
    • The 13C vibrational frequencies are fitted as isotope shifts, as these are typically more accurate than absolute values.
    • Different weights (estimated errors ) are used for the observed values in line with the original paper.
    • Coriolis coupling constants for the most abundant isotope are included in the fit.
  • C2H4emp.pgo - a fit to purely empirical symmetry force constants.
  • C2H4scaled.pgo - a fit scaling ab initio force constants to match experiment.

Notes on the data files:

  • The force constants are expressed in symmetry co-ordinates, rather than internal valence coordinates.
  • The definition of the out of plane modes, 7 and 8, seem to be different from the ones used in the paper.


Windows

This section gives a description of the various windows used in PGOPHER. The following can all be accessed from the view menu:
  • Constants
  • Linelist
  • Log
  • Log
  • Overlay
  • States
  • Levels
  • Transitions
  • Additional plot windows can be created by selecting "Another" from the plot menu.
  • Calibration
The rename dialog box appears on right-clicking on a transition moment or perturbation in the tree view of the constants window and selecting "Rename".

The pick channels dialog box is shown if you try to load a data file with more than two channels of data.


Main Window

This is the main PGOPHER window in which simulations are displayed. The toolbar at the top enables the simulation display to be altered, and also provides a means of changing parameters such as the spectral temperature and linewidth. Click on an item in the picture below for more information:

OpenButton | Open a parameter or data file
LeftButton | Shift plot range to left
RightButton | Shift plot range to right
CompressButton | Compress horizontal plot range
ExpandButton | Expand horizontal plot range
XZoomButton | Change horizontal plot range to a range selected with mouse.
AllButton | Plot entire spectrum
SimulateButton | Simulate spectrum
PlotStyleButton | Cycle through plot styles. This allows simulations for individual molecules, manifolds or states to be shown separately, and allows simulations to be plotted "upside down".
ShowPartsButton | Show constituent parts of spectrum in different colours. For this to work, colours should be set for the states or other objects.
ShowSumButton | Toggle display of total spectrum.
ShowFortratButton | Toggle display of Fortrat Diagram
 | Magnify distance from bottom
 | Magnify distance from top
 | Toggle auto vertical scale
PasteOverlayButton | Paste a spectrum to overlay the simulation from the clipboard

Offset | Useful for lining up experimental spectrum and simulation. Moves the spectrum by the required number of units (cm-1, MHz, Kelvin or eV, dependent on which units are selected). This can also be done by clicking and dragging the simulation with the Alt key held down.
T | Alters the spectral temperature.
Gau | Alters the Gaussian contribution to linewidth.
Lor | Alters the Lorentzian contribution to linewidth.

Fortrat Diagram

This is a plot of J against transition frequency. This can be displayed or hidden using the Show Fortrat [image] button. Different symmetries are labelled with different symbols - see the key at the top of the diagram. The J plotted can be upper or lower state, as set in the plot menu.

Status Bar

The first two numbers show the horizontal and vertical position of the mouse. The next two numbers are the horizontal and vertical width of any box drawn with the mouse.


Constants Window

This window allows setting of individual parameters and other options, and is used to control which parameters are floated during the fitting process. To display this window select View, Constants... from the main window. Values can be entered by typing, or adjusted with the mouse.

Click on an item for more information:

Top Panel Items

ActiveObject | Object selector, allowing you to select the object to be edited. The format is <type of object>:<name of object>
FixAllButton | Fix all parameters, i.e. set float = "no" for all parameters for all objects in this window.
ConvertUnitsButton | Cycle through available units (cm-1, nm, MHz, Kelvin and eV), converting parameter values in all the objects as appropriate each time. To convert the interpretation of the parameters without changing the actual values set Units in the Mixture object (Settings) instead.
CommentPanel | This shows and allows you to add a comment on current item. The comment is not used elsewhere and there is no limit on the comment length

Tree View

This shows the objects being edited; click on an object to select it TreeView for editing. Right clicking (or Shift+F10) on an object brings up a pop-up menu which allows you to copy, paste delete, move and add objects. To add objects either:
  1. Right-click on the object above where you want to are add to in the tree view and select "Add new...", and then select the object required. Only objects that can be inserted at that point in the tree will be displayed.
  2. Right click on a similar entry and select "copy", then right click where you want the new object to be and select "paste". This is often easier than adding a completely new object as the values of the parameters and settings will be copied to the new object. Note that it is possible to copy and paste between independent copies of PGOPHER should you want to use an object from a completely different file as a starting point

Parameter Grid

ParGrid This allows you to edit individual parameter values. To edit a value, click on the cell or use the F2 key. For help on the current cell hit F1. The "Increment" column is the increment used for calculating numerical derivatives while fitting. If left blank (the default) or 0.0001 of the initial value is used. A value of the order of the standard deviation in the parameter is often helpful in stabilizing an otherwise problematic fit. The StdDev is the standard deviation of the parameter from the most recent fit.

Right clicking on the grid gives a menu with the following items (other items show for selected objects):
Clear | Reset selected cells to their default value
Turn on Mouse Adjust | Toggle adjustment of values with mouse wheel - see below
Abort Mouse Adjust | Revert to value before mouse adjustment
Convert to Perturbation | Convert selected parameters to the equivalent perturbation within the state.
Matrix Elements | Show symbolic matrix elements for given parameter in the log window, if available.
Show Full Name | Show full parameter name (useful for specifying constraints while fitting)

Adjusting Parameters with the Mouse

As well as typing values in the parameter grid interactive adjustment of parameters with the mouse wheel is also possible. To do this, right click on the Parameter and select "Turn on Mouse Adjust" (or press F3). The mouse wheel will then scale the current parameter (shown in bold to indicate the wheel adjustment is active) up or down for each click of the wheel. The default is a scaling factor of 1.01, though if the "Increment" field is set for a parameter, this value is added or subtracted instead. To turn off the mouse adjustment right click on the parameter and select "Turn off Mouse Adjust" (or press F3). Also available is "Abort Mouse Adjust" (or the escape key) which turns off adjustment, and reverts the current parameter to the value it had before starting mouse adjustment.

Settings

OptGrid This allows you to edit individual settings. To edit a value click on the cell or use the F2 key. For help on the current (highlighted) cell hit F1.


Line List Window

This window displays the position, assignment and intensity of lines in the simulated spectrum. It appears when right-clicking on a peak in a simulated spectrum, and on each click all the lines close to the clicked position are added to this window, with the most intense first. You can adjust the number of lines added from the Line List Options Window. Simple line position fits can also be done directly from this window, though for anything other than the simplest of fits more the line lists are best placed in a text file as only limited editing is possible in the this window. (An initial text file can be created by copying and pasting from the line list window.) The contents of this window are normally (for version 5.2 and above) saved to and loaded from the .pgo file.

Click on an item in the picture below for more information:

Buttons

Set frequency of selected lines from clipboard, assuming a number is available as text on the clipboard. The standard deviation is also set to 1. Measuring a peak by right clicking and dragging over a peak in an experimental or simulated spectrum in PGOPHER puts the peak position on the clipboard for this purpose. If the neighboring "Auto" item is checked (the default) this assignment is done automatically each time a peak in an experimental spectrum is measured. A blue line in the experimental spectrum will appear, indicating the measured peak position.
If on, assign measured peak to selected transitions automatically (if off, this can be done manually using Assign).
Show difference between first and last line selected.
Select all lines in the line list window.
Select no lines.
Copy selected lines to clipboard and delete them.
Copy selected lines to clipboard.
Delete selected lines.
Delete all lines.
Delete unassigned lines, i.e. those with the standard deviation column empty.
Menu for more actions:
  • Save to File... - Save current lines to file, and set the resulting file as the current file in the Log Window. If the file already exists you are offered the option to append to the file rather than overwriting it.
  • Sort On... - Sort lines by frequency, branch, upper or lower state quantum numbers, strength, width or standard deviation
  • Copy Branch Table - Copy the lines in branch format to the clipboard.
  • Copy Simple Format - Copy the lines as simple format linelist to the clipboard. This uses the comment field at the end of the line, so will not produce useful results in all cases.
  • Upper State CD Fit - Perform an upper state combination difference fit. Lines not part of a common difference are ignored.
  • Lower State CD Fit - Perform a lower state combination difference fit. Lines not part of a common difference are ignored.
  • Options - Bring up the Line List Options Window to change the options controlling the addition of lines to the line list.
Plot assignments and display residuals
Fit observations in this window
Reset parameters to the value before the last fit cycle. This button is disabled until a fit has been done.

Column contents
Molecule | The molecule responsible for this transition.
M' | Manifold for the upper state of the transition
J' Upper state total angular momentum or M'. (M' in the presence of static field, otherwise J' in the absence of hyperfine structure, otherwise F').
S' Symmetry of the upper state.
#' Eigenvalue number for upper state. This gives the index (starting from 1) of the upper energy level with respect to other levels of the same total angular momentum and symmetry.
M'' | Manifold for the lower state of the transition
J'' | Lower state total angular momentum or M". (M" in the presence of static field, otherwise J' in the absence of hyperfine structure, otherwise F').
S'' | Symmetry of the lower state.
#'' Eigenvalue number for lower state. This gives the index (starting from 1) of the upper energy level with respect to other levels of the same total angular momentum and symmetry.
Position The position of the transition; the units for this are the units used in the main simulation window. For line position fitting, alter this number to the position of the observed peak, either manually or (more usually) with the assignment process described under line position fits.
Std Dev
 The (relative) standard deviation of this transition, used to calculate the weight of the observation in a line position fit. If this is negative, zero or blank this transition will not be included in the fit. Entries will initially have this blank or negative, and the automatic assignment process will set this to 1. Less certain measurements can be given larger values. Note that the parameters produced by a fit only depend on the relative values of the weights. If ShowEstUnc is set at the top level, then this column is set to the negative of the estimated uncertainty of the transition, based on the errors in the most recent fit, if available.
Strength | The intensity of the rotational transition.
Width The width of the transition. (Note that this does not include the Gaussian or Lorentzian width set on the plot window.)
deltaJ(J'') The transition label in branch notation, such as P(1). The display will depend on the molecule type and the electronic and nuclear angular momenta included in the calculation.
Name Details of the transition, including other quantum numbers where appropriate. The assignment process will also add the source of the measurement (typically a filename) where possible.


Line Selection Options Window

This is accessed from "More, Options..." on the Line List Window. It allows adjustment of the choice of lines displayed when right clicking on the main spectrum window. It is often the case that weak unrelated lines are close to strong lines in a given simulation, and the options made here control to what extent these are displayed or used in peak measurement.

Upper limit on the number of lines displayed
Discard lines that are weaker than the indicated fraction of the strongest lines.
Lines calculated with exactly zero intensity (which may well be forbidden in the absence of specific interactions) are not displayed in the line list unless this is unchecked.
When measuring and assigning lines with the mouse, only assign lines stronger than the given fraction of the strongest.


Log

Log Window

This window is used to display the results of line position, line intensity, energy level or contour fits and will also display details of calculations if the PrintLevel is positive. For line position and intensity fits, a line list giving details of each fitted rotational line, with an observed and calculated frequency or intensity and obs-calc for each line, is also given. For a graph of the residuals, see the Residuals Window. Note that the information displayed applies to one fit cycle; as a non-linear fitting process is used expect to fit several times until convergence is obtained. Click on an item in the picture below for more information:

Fit Details

Observations | nobs = The number of lines fitted or the number of experimental points for a contour fit
Parameters | npar = The number of parameters floated
Initial Average Error | This is [Σ[(obsi-calci)/wi]2/(nobs-npar)]½ with the calculated values, calci, obtained using the parameters at their initial values. wi are the estimated (relative) standard deviations of the observations.
Predicted New Error | This is [Σ[(obsi-calci)/wi]2/(nobs-npar)]½ with the calculated values, calci, obtained from the non-linear least squares fit. They are typically close to the values that would be obtained from the new parameters, but are only exact if the calculated values are linear (or nearly linear) in the parameters. This is should be the case near to convergence, but often not when starting the fitting process. Fit again to find the true new error.
Old | The parameter value at the start of the fit.
New | The parameter value after the fit cycle.
Std Dev | The estimated standard deviation of the parameter, based on the quality of the fit.
Sens | Watson's sensitivity parameter (J. K. G. Watson, J. Mol. Spectrosc. 66, 500 (1977)) for the parameter. This is the change in the parameter that would make the average error of the fit increase by a factor of 0.1/npar, and provides a useful guide as to how many figures should be quoted for the parameter to ensure that the calculation can be reproduced. Where parameter correlation is high, this can be many more figures than suggested by the standard deviation of the parameter. See also R. J. Le Roy, J. Mol. Spectrosc. 191, 223 (1998) for discussion of this issue, and alternative approaches.
Summary | The new parameter, with the one standard deviation in units of the last figure in brackets. The sensitivity is used to determine how many figures are displayed for the standard deviation.
Correlation Matrix | The correlation between the parameters.

Buttons

Do fit of indicated type. For fits other than a Contour fit, the experimental information is taken from the file set at the top of the window. Alternatively, you can take the information from the clipboard by right clicking on the fit button. (This works well if you prefer to use Excel or another spreadsheet program to manage the experimental line list; before each fit select the required area of the spreadsheet and copy it to the clipboard.)
Line | line position fit
Contour | contour fit to current overlays
Intensity | line intensity fit to line list in file shown
ELower | Fit to the lower state energy
EUpper | Fit to the lower state energy
Calibration | Calibration Fit
CDLower | Lower state combination difference fit
CDUpper | Upper state combination difference fit
Step constants back one fit cycle for each press
Step constants forward one fit cycle
Click to browse for experimental file name
Edit given file; this button will normally start the Slave Editor
Clear log window
Copy log to clipboard.
Save log to file.


Residuals Window

This window is used to plot the observed - calculated values from a fit (or related quantities). Bring this up with View, Residuals if required.

The status bar displays the x, y co-ordinates of the mouse and, if the mouse is over an experimental point, the source of the data point. Note that you can often go directly to the source of the data by right clicking on a given point and selecting "Edit Point". This requires the Slave Editor to be set up.Note that the average error displayed at the top is slightly different to the value given in fits - it is simply [Σ[(obsi-calci)/wi]2/nobs]½, and does not take account of the number of parameters floated. (This allows a value to be calculated without doing a fit.)
Reload observations and recalculate residuals (equivalent to doing a fit with no parameters floated).
Select the Y axis of the plot. Possible choices are:
  • Weighted Obs-Calc
  • Unweighted Obs-Calc
  • Weighted (Obs-Calc)/Obs = Relative weighted error
  • Unweighted (Obs-Calc)/Obs = Relative unweighted error
  • Observed
  • Calculated
  • Observed and Calculated
  • Weight
The last 4 are not residuals, but can be useful for indicating the data included in the fit
Select the X axis of the plot. Possible choices are:
  • Observation Number
  • Frequency
  • State Energy (Use the "Upper" check box to select the lower or upper state)
  • Calculated value
  • Observed Value
  • Weight
  • Population
  • J
  • N
  • F
  • A: Ω for linear molecules, |K| for symmetric tops, Ka for asymmetric tops
  • B: F1, F2...for linear molecules, Kl for symmetric tops, Kc for asymmetric tops
  • F1 Hyperfine quantum numbers (if appropriate)
  • F2
  • ...
  • F9
Check to use upper (rather than lower) state quantum numbers or state energy.
Plot data with zero weight (which would otherwise not be plotted).
Zoom into region selected with mouse.
Zoom plot out.
Reset plot to fill window.


Overlays Window

This window is accessible through "Properties" in the overlays menu, and allows you to load one or more overlay files, and to adjust and/or float various overlay parameters. One or more overlays may be in use at once. To select the overlay required, click on its number in the "Overlays" box on the left hand side of the window, or select from the list at the top. The appearance of the overlay window will vary, depending on whether the overlaid spectrum is an experimental spectrum or a bitmap (follow these links for more information).

Load overlay file. Note that the upper button loads a single overlay file, clearing the current overlay. The lower button adds to the current overlay.
Save all overlays
Save all overlays to a different file. Note that the upper button saves all overlays, the lower just the current one.
Copy current overlay to clipboard
Add another overlay from the clipboard
Fix all parameters, i.e. set Float = "no" for all parameters.
Cycle through units (cm-1, nm, MHz, Kelvin and eV), converting parameter values as appropriate each time. For overlays this is not normally required, as the the position units will be converted automatically to those selected for the main plot. Note also that in the overlays window the convert operation is applied to the currently selected object, not the entire tree of objects.
Add overlay from file. Note that the upper button loads a single overlay file, clearing the current overlay.
Export current overlay to file. Note that the upper button saves all overlays, the lower just the current one.
Copy peaks to clipboard
Delete peaks from this overlay


Experimental Overlays

This is a typical display shown when an experimental overlay is chosen from the tree view in the overlay window. For more information, click on the picture below:

Explanation of the parameters and settings in this window are given here.

Load overlay file. Note that the upper button loads a single overlay file, clearing the current overlay. The lower button adds to the current overlay.
Save all overlays
Save all overlays to a different file. Note that the upper button saves all overlays, the lower just the current one.
Copy current overlay to clipboard
Add another overlay from the clipboard
Fix all parameters, i.e. set Float = "no" for all parameters.
Cycle through units (cm-1, nm, MHz, Kelvin and eV), converting parameter values as appropriate each time. For overlays this is not normally required, as the the position units will be converted automatically to those selected for the main plot. Note also that in the overlays window the convert operation is applied to the currently selected object, not the entire tree of objects.
Add overlay from file. Note that the upper button loads a single overlay file, clearing the current overlay.
Export current overlay to file. Note that the upper button saves all overlays, the lower just the current one.
Copy peaks to clipboard
Delete peaks from this overlay
PlotOperateButton Perform various operations on the spectrum; many of these can also be performed by right clicking on the overlay on the main window, if it is plotted separately from other traces.
Invert Each the intensity at each point, I, becomes Imax + Imin - I
Crop Discard points outside selected range, as specified as FirstPoint to LastPoint. These can be set to the current visible region by right clicking on the overlay in the main window and selecting "Select Visible".
Find Zero Uses a heuristic to attempt to set baseline to the probable zero level of the spectrum.
Join To... Add selected spectrum to the current spectrum; if done from the main window the join point is at the mouse position, otherwise any overlap region is divided equally between the two spectra.
Join All,Unscaled | Join all spectra of this type together, ignoring the vertical scaling
Join All,Scaled | Join all spectra of this type together, using the vertical scaling
Smooth... Smooth (and differentiate if required) the spectrum. The method used is Savitzky-Golay smoothing as originally described in A Savitzky and MJE Golay, Anal Chem, 36, 1627 (1964).
Compress... Compress the spectrum by either:
  • averaging every n points together
  • averaging all points within a specified interval, to give points on a regular grid. (This can expand the spectrum if the interval is less than the starting interval.)
A dialog box allows the choice to be made.
Discard Frequency | Replace frequency with point number
Discard Intensity | Set Intensity to 1, and convert to linelist
Separate | Produce two independent intensity channels from frequency and intensity
Swap x and y | Swap frequency and intensity channels

This allows an overlay to be selected from the overlays currently loaded. Overlays can also be selected using the tree view in the overlays window.

This shows and allows you to edit a comment on current item. The comment is not used elsewhere and there is no limit on the comment length


Bitmap Overlay

This is the overlays window as shown when a bitmap overlay is selected. This is for use when the data to be overlaid is not available in numerical form, but only as an image, such as an illustration in a journal. Many of the buttons in the bitmap overlay window are the same as for the standard experimental overlay window, as described here. However, unlike an experimental spectrum, a bitmap spectrum does not intrinsically contain a frequency scale. It is therefore necessary to set the frequency scale manually by identifying two points on the spectrum with known frequency:
  1. For the first point, click the Xpixel 1 button, and then click on the point in the bitmap spectrum. Enter the corresponding frequency at Frequency1 in the grid.
  2. For the second point, click the X pixel 2 button, and then click on the point in the bitmap spectrum. Enter the corresponding frequency at Frequency2 in the grid.
  3. The Units may need changing; the default will be cm-1 but other units, including wavelength, can also be set in the settings grid to the right or bottom.
If you want to set the vertical scale:
  1. Click the baseline button and then click on a point on the baseline in the spectrum.
  2. Click the maximum button, and then click on a point on the highest point of the spectrum.
  3. If you need to change the vertical range produced (the default is 0 to 1) change the BaselineIntensity and MaximumIntensity values in the grid.

The status bar shows the position of the mouse in units of pixels. If a frequency scale has been set up as described above, it will also show the frequency.
OpenButton | Load overlay file
SaveButton | Save all overlays
SaveAsButton | Save all overlays to different file
CopyButton | Copy current overlay to clipboard
PasteOverlayButton | Add another overlay from the clipboard
ActiveObject | Select the active overlay
FixAllButton | Fix all parameters
ConvertUnitsButton | Cycle through units, converting parameter values. For overlays this is not normally required, as the the position units will be converted automatically to those selected for the main plot. Note also that in the overlays window the convert operation is applied to the currently selected object, not the entire tree of objects.
TreeView | Displays all the loaded overlays; select the top item for settings that apply to all; right click on an item for additional item.
CommentPanel | Display and edit a comment on the current overlay..

ParGrid | This is where the start and end frequencies, baseline and maximum intensities are set manually. See the top of the page for how to use these. A frequency offset can also be applied, if necessary.
OptGrid | This sets the units for the horizontal and vertical scales, and allows the overlay to be optionally hidden on the main plot. (The colour is ignored for bitmap overlays.) The pixels corresponding to the calibration points in the grid above can be set manually here, though this is normally done with the mouse following the procedure at the top of the page. A red highlight indicates that the next click of the mouse in the plot window below will set that value.
AddOpenButton | Add overlay from file
ExportCurrentButton | Export current overlay to file
ZoomButton | Show selected region only
ZoomOutButton | Shrink plot
OneToOneButton | Toggle display between fit to window and actual size
ResetZoomButton | Reset plot zoom to fill window
Xpixel1Button | Set point for Frequency 1 with the mouse
Xpixel2Button | Set point for Frequency 2 with the mouse
BaselineButton | Set baseline point with the mouse
MaximumButton | Set maximum intensity point with the mouse
CancelButton | Cancel setting points by mouse
TopLeftButton | Set top left of region to trace
TopRightButton | Set top right of region to trace
BottomLeftButton | Set bottom left of region to trace
BottomRightButton | Set bottom right of region to trace
AllCornersButton | Set all four corners of region to trace
OperateButton | Displays the additional options below.
Compact | Compact bitmap by reducing to a single colour
Clear Peaks | Delete peaks from this overlay
Crop | Discard bitmap outside selected area
Plate | Convert photographic plate spectrum to a conventional overlay, as shown in the example below. See Tracing Plate Spectra for more details
Plate Angle | Measure angle of selected line on plate


State Details Window

This window shows the Hamiltonian matrix and the eigenvalues for a particular state (upper or lower), J and symmetry.

Selecting the State

 | Selects a state or manifold, (for a particular isotope, if applicable).
 | Required total angular momentum, (or M if a static field is present).
 | Required symmetry - valid values depend on molecular point group.
Perturbations | Uncheck this box to exclude perturbations from the calculation.
 | Set how many nuclear and electron spins to exclude from the calculation.

The Hamiltonian Matrix

This shows the Hamiltonian Matrix before diagonalisation.Note the basis states in the row and column headings, and the key to the basis state quantum numbers on the right.

HamPanel

The Energy Levels and Eigenvectors

This shows the energy levels (second white column), the quantum numbers for the levels (first column, with the key to the quantum numbers on the top right) and the corresponding coefficients (subsequent columns). The columns are labeled by basis state, as in the Hamiltonian matrix.

EigPanel
If this is set to a number, n, then it shows the n largest coefficients in the eigenvector.

Eigenvectors Popup Menu

Right clicking on an eigenvector brings up a menu with the following entries:
Add to population selection | Add currently highlighted state(s) to the manifold parameter area for manual population entry.
Remove from population selection | Remove currently highlighted state(s) from the manifold parameter area.
Copy | Copy selected eigenvectors to clipboard.
See Non-Boltzmann Populations for use of the population selection items.


Transition Selection and Details Window

This window allows transitions of particular values of total angular momentum and rovibronic (rotational x vibrational x electronic) symmetry (for either or both upper and lower states) to be selected. This is especially useful for finding ground or excited state common differences, where a set of transitions either start or end with the same rotational level. To do this, select a particular J and possibly rovibronic symmetry or eigenvalue number for the upper or lower state, and set the values for the other state to "all" (clear the box, or use the lowest value on the spin boxes). Then press the Simulate button (if necessary) to simulate the selected transitions. To revert to the original simulation, press the Simulate button in the main window. Matrices of the transition moment operator are also displayed in this window if the selection is restricted to a single upper and lower state J and symmetry. If External Fields are present, the "J" is replaced by M and the symmetry is ignored.

Click on the picture below for more information.

Split Panel
SimulateButton | Simulate selected transitions
AllButton | Plot entire (selected) spectrum
 | Select the transition moment(s)
 | Select the upper manifold or state. Note that if you select a state here, the unselected states are excluded from the basis, which can significantly change the calculation.
 | Upper state J, Change in J, rovibronic symmetry and eigenvalue number. Use blank or 'all' to leave a particular setting unrestricted.
LowerObject | Lower manifold or state
 | Lower state J, rovibronic symmetry and eigenvalue number. Use blank or 'all' to leave a particular setting unrestricted.
 | Add selected lines to line list window
Replace | Replace contents of line list window with selected lines
Skip | Leave line list window unchanged
PlotLines | Plot selected lines
Perturbations | Include Perturbations in calculating transitions
 | For double resonance transitions, rank of excitation step
ExcitationType | For double resonance transitions, change in J in excitation step.
OriginalCaption |
OrgPanel | Key to quantum numbers for basis states
OrgGrid | When a transition of a particular upper and lower J, and symmetry, is selected, and the transition is allowed, transition moments in the undiagonalized basis are shown in this matrix, with the ground state basis shown down the left-hand side and the upper state basis shown across the top of the matrix.
Label8 |
TranPanel | Key to quantum numbers for states
Square | Check to display the squares of the values in the matrix.
TranGrid | This contains the transition moments in the diagonalized basis


Energy Level Plot Window

This window can be used to display a wide variety of energy level plots. The plot below is a typical linear molecule plot, showing the rotational levels of the ground X 3Σ -state of SO. Plotted as a function of J, in shows the F1 F2 and F3 components as a function of J. Note that BJ(J+1) has been subtracted from the vertical scale, so that the deviations from the simple BJ(J+1) pattern are clear. The actions of the various controls are listed below.

  • The status bar at the bottom will show the co-ordinates of the mouse at a minimum, and will also normally show information about calculated and observed points.
  • To print the plot right click on the plot and select "Copy to clipboard" and then paste it into a suitable application. For Microsoft word, and many other applications it is important to use "paste special" rather than a simple paste (otherwise the numbers producing the plot will be pasted, rather than the plot itself).

 | Select which states to plot.
AnotherButton | Open another level Window
ListButton | Write the plotted energy levels to the Log window

Plot Type

PlotTypeGroup | The options in this group control the overall appearance of the plot.
ExternalField | Plot against external field, rather than quantum number. See Electric or Magnetic Field Plots for more details.
CalcPoints | Plot a symbol for each level. The key to the symbols will normally be shown at the top of the plot, and different symbols indicate different symmetries.
CalcLine | Join associated levels with lines. The levels joined are controlled by the three options below.
CalcBoth | Plot both points and lines.
JoinHighest | Choose between starting join process from the highest energy or lowest energy point
TrackQuanta | Try to join points with related values of quantum numbers
TrackState | Try to join points arising from same state

Energy Scale

EScaleGroup | The options in this group control the vertical scale of the plot
 | Maximum energy in plot
 | Minimum energy in plot
RefreshPlot | Refresh Plot (only needed if AutoReplot turned off in mixture)
AllButton | Adjust plot range to include all levels
ZoomButton | Zoom to selected vertical range
ZoomOutButton | Compress vertical scale
 | Subtract number × J(J+1) from all energies plotted

Level Selection

SelectGroup | This group allows levels to be selected by symmetry or some other quantum numbers. The picture is for a linear molecule; alternate quantum numbers are selected for other molecule types.
 | Select (or not) symmetry to plot
 | Select Ω (linear molecules), Ka (asymmetric tops) |K| (symmetric tops) or v1 (Vibrating molecule).
 | Select Fn (linear molecules), Kc (asymmetric tops) or Kl (symmetric tops).

x Axis

QuantumNumberGroup | For normal plots, this controls the x axis.
 | Select quantum number for x axis
 | Minimum J to include in plot
 | Maximum J to include in plot

Observed Level Overlay

It is possible to compare calculated and observed energy levels, with the "observed" energy levels calculated from measured line positions and the simulated energy levels for the other state. This requires an experimental line list (a .lin file), made as described in line position fitting. To include experimental information:

  1. Make sure the line list file is set in the Log window.
  2. Select ObsUpper to plot upper state energy levels or ObsLowerButton to plot lower state energy levels.
  3. Press Reload Button to display the observed energy levels.
  4. The display is normally clearer if CalcLineButton is selected for the calculated energy levels.
  5. If the mouse is over an experimental point it's source is displayed in the status bar; right click offers the following options:
    • Edit Point: Open point under cursor in editor if possible.
    • Show Line: Centre main plot on transtion
ObservedGroup |
ObsUpper | Plot Upper State Observed Levels
ObsLower | Plot Lower State Observed Levels
JoinObs | Join observed point to calculated point
ReloadButton | (Re)load observations
 | When plotting observed energy levels, scale the distance from the calculated position by this.

Calculation Adjustment

ExcludeGroup | This group allows the selected items to be excluded from calculations
ExcludePerturbations | Exclude perturbations in plotted levels
 | Set how many nuclear and electron spins to exclude from the calculation

Line Labels

Where to place labels on calculated lines. Possible choices are:

LabelsGroup
  • None
  • LeftOut: At left edge of plot, right justified
  • LeftIn: At left edge of plot, left justified
  • RightIn: At right edge of plot, right justified
  • RightOut: At right edge of plot, left justified
  • Start: At start of the line
  • End: At the end of the line


Electric or Magnetic Field Plot

If the ExternalField box is selected, the energy level plot window will plot the energy levels as a function of electric or magnetic field, rather than as a function of quantum number. Additional controls become visible at the bottom of the control panel to control this plot. Most of the other controls operate the same in both modes, so see the energy level plot window documentation for details.

Field Range

 | Select the field to scan. (If B is selected, the units change to Tesla = 104 Gauss)
MinField | Minimum value of field for plot
 | Maximum value of field for plot
 | Number of fields to calculate the energy levels at
 | Scale field shifts by this factor
 | Write tuning coefficients to the Log window

M Range

QuantumNumberGroup | The quantum number range selects the range of the projection of the total angular momentum along the field direction, M, that is calculated and plotted.
 | Minimum M to include in plot
 | Maximum M to include in plot


Calibration Window

This window displays the measured and expected peak positions while calibrating an overlay. See Calibrating Spectra for how to use this. The combination box on top selects the overlay that is being worked on.

The grid contains the following items:
Measured | The peak position, normally entered by click and drag on the experimental spectrum
Actual | The true peak position, typically entered by click and drag on the calibration spectrum after pressing the assign button
Residual | Observed-Calculated from last fit
Std Dev | Estimated relative standard deviation of the peak position. This is used to derive the weights in the least squares fit. Only the relative values matter, so typical usage might be to use 1 for most measurements and larger values, say 3 or 10, for less accurate measurements. A negative or zero standard deviation is used to flag a point to be excluded from the fit.

Controls
Select the spectrum to calibrate
Assign current peak; the "Actual" cell of the current row will turn red, and will be filled in by the position of the next peak you measure.
Fit to given order of polynomial
Undo last fit
Copy selected lines to clipboard
Delete selected lines
Open custom fit dialog - allows the use of any function, not just a polynomial
Delete unassigned lines
Other operations - shows an additional menu, described below.
Select order of polynomial for calibration fit
Displays root mean square error of current fit

Other... Operations

Copy Frequency To... | Copy Frequency scale to another overlay; this process assumes that the two overlays have exactly the same x axis (i.e. the ith point on each overlay corresponds to the same frequency). Any x axis on the target overlay is thus discarded. (Contrast with "Apply Calibration To" below.) This is intended for use on spectra recorded simultaneously.
Apply Calibration To... | Apply calibration curve to other overlay. This applies the calibration function of the current overlay to the x axis of the target overlay, so there is no requirement for the frequency scales to match. (c.f. "Copy Frequency to" above.) This is intended to transfer a calibration curve of, for example, voltage to frequency, from one spectrum to another.
Clear | Delete all lines
Set Range | Set approximate range
Reset | Reset calibration to default, i.e. FrequencyScale=1, FrequencyOffset=0
Etalon | Given two approximately spaced peaks, find all the other
Spline... | Generate cubic spline though calibration points. See Using Etalons for some comments on usage.


Rename Dialog Box

This window appears on right-clicking on a transition moment or transition moments in the tree view in the constants window and selecting "Rename". This allows you to select the states (for a transition moment) or manifold (for transition moments) connected by the transition. Use the "Bra" and "Ket" drop down boxes to select the required states or manifolds.

This is also displayed on right-clicking on a perturbation and selecting "Rename", which allows you to choose the states that are interacting.


Pick Channels Dialog

This dialog is shown if you try and load a data file with more than two channels of data, or if the Prompt on Import item on the overlays menu is checked.

Each channel has an entry in the grid, with the minimum and maximum values displayed. To use each channel select one of:
Frequency | The frequency channel (there must be only one of these).
Intensity | An Intensity channel (there can be one or more of these).
Std Dev | A channel containing relative standard deviations, used to provide a weight for the least squares process when contour fitting. There must either be none of these, or one for each intensity channel.
Discard | The channel is discarded.
The All button sets all unused channels to "Intensity".
The NoneButton turns off all selections.


Menus

This section provides a summary of the various menus in PGOPHER.
  • File Menu
  • Edit Menu
  • Plot Menu
  • Overlays Menu
  • View Menu
  • Help Menu


File Menu

New
Empty Mixture Create a new mixture with no content. See here for an example of working this way.
New
         Linear Molecule Create a mixture set up for a single 1Σ+ - 1Σ+ transition, with a band origin at 1000 cm-1 and upper and lower rotational constants of 1 cm-1. See Making a Linear Molecule data file for more details.
New Asymmetric Top Create a simple asymmetric top data file. See Making an Asymmetric Top Data File for more details.
New | Symmetric Top | Create a simple symmetric top data file. See Making a Symmetric Top Data File for more details.
New Vibrational Spectrum Set up a basic data file for simulating vibrational structure. See Making a basic data file for simulating vibrational structure for more details.
New
 Calibration, I2 Add overlay of the visible absorption spectrum of I2
New
 Calibration, Ne Add overlay of transitions of atomic Ne
New
Calibration, Optogalvanic Ne
 Add overlay of transitions from an Optogalvanic Ne spectrum
New
 Calibration, Fe Add overlay of transitions of atomic Fe
Open...
Open any file, including parameter (.pgo) files and experimental data files for overlay (.dat, .ovr)
Save
Save simulation parameters in a .pgo file. If a file name has not been specified then you will be prompted to browse for a suitable name.
Save As...
As for Save, but the standard save file dialog will appear to allow you to browse to a suitable file name.
Import | Old Pgopher... | Load old (version 4 and below) PGOPHER data files. (The older PGOPHER program only handled linear molecules, and had a very different interface.)
Import
 Old D3h... Load old D3h data file. (The D3h program handled symmetric tops only.)
Import CALPGM file... Import molecular parameter (.par) data files for Herb Pickett's CALPGM/SPCAT/SPFIT spectroscopy program suite (http://spec.jpl.nasa.gov/). Note that not all files can be handled; you will see an error message if this is the case. Some files may also require manual adjustment after import
Import | HITRAN File... | Import HITRAN file as external line list.
Import | Binary File... | Import binary overlay file
Import l matrix... Import normal modes from ab initio program output. See Importing l matrices for more details.
Export | Line List... | Export current simulation as a line list to a file.
Export
         Main Plot... Export lower or only plot to a file. Possible formats include:
  • a text file (.txt, .dat) which contains a list of points plotted in a simple x, y format.
  • A .svg file, which can be read and edited by various graphics programs, including Firefox for reading and Inkscape for editing.
  • xfig format, associated with TEX.
See Exporting Plots for more information.
Export Top Plot...
 Export top plot to a file - see above for possible formats
Merge
Set for subsequent file loads (.pgo files and overlays) to merge rather than overwrite
File Options Save Positions If checked (not the default) save window positions to the .pgo file when writing it.
File Options | Save Settings | If checked (the default) save plot settings not recorded in the mixture to the .pgo file when writing it.
File Options | Load Positions | If checked (the default) load window positions from a .pgo file when reading.
File Options | Load Settings | If checked (the default) load plot settings from a .pgo file when reading.
Load Overlay...
Load overlay from file
Save Overlay
Save overlay(s) to file
Save Overlay As ...
Save overlay(s) to new file
Print...
Print current plot
Print Setup...
Setup printer
Recently Used Files
The last few files opened will appear here; select one to reload the file.
Exit
Leave program


Edit Menu

Copy | Copies the selection and puts it on the Clipboard
Paste | Insert item from clipboard.
Copy Main Plot | Copy current plot to clipboard. See Exporting Plots for more information. Important Note: On MS Windows you will almost certainly want to use Edit, Paste Special in the destination program, (rather than Edit,Paste) so you can select what you see. The program makes the plot available both as the raw data (i.e. lists of numbers in text format) and as the plot you see on the screen. Applications such as word processors will typically take the text rather than the picture by default.
Copy Top Plot | Copy current top plot to clipboard.
Paste Overlay | Paste a spectrum to overlay on the simulation from the clipboard


Overlays Menu

Paste | Paste spectrum (bitmap or experimental) overlay from clipboard
Paste Another | Add a spectrum to the current overlays from the clipboard
Select Region | Select a region of the overlayed spectrum for action (this can temporarily remove unwanted parts of the overlay from the main window).
Clear Selection | Clear selection of overlayed spectrum (this cancels the action of "Select Region").
Invert | Invert all overlayed spectra
Clear Overlays | Remove all overlayed spectra
Properties... | Show details of overlayed spectra. See the section on the overlay window for more information.
Calibrate... | Show calibration Dialog. See Calibrating Spectra for how to use this.
Prompt on Import | If checked, then any data import will force the display of the Pick Channels Dialog, allowing the type of the data in the input file to be selected. If this is not checked, the file format is auto detected.
Delete Last Peak | Delete last measured peak. (Measuring peaks is generally done when carrying out line position fitting, when assigning overlayed peaks to the simulation)
Clear All Peaks | Delete all measured peaks


View Menu

Constants... |  | Show molecular constants window. See the constants window for general information, and the objects section for more information on individual constants.
LineList... |  | Show line list window. See the section on line fitting for more about using this window.
Log... |  | Show log window. The contents of this window is described in the section on the log window, and more about using this window is given in the sections on line fitting and contour fitting.
Residuals... |  | Bring up the Residuals Window that plots the observed-calculated (or other values) from the most recent fit.
Overlays... |  | Show overlay details
States |  | Show states of a particular J and symmetry. See the states window for more information.
Transitions |  | Show selected transitions. More about this window is explained in the transition window section.
Levels |  | Show an energy level plot.
Another Plot |  | Open another spectrum window
Arrange Windows |  | Try and arrange PGOPHER windows around main window
Window Style | Standard | Secondary windows not on taskbar and can hide behind main window
Window Style | On Top | Secondary windows always on top of main window and not on taskbar
Window Style | Independent | Secondary windows independent of main window
Timing |  | View time spent in various routines
Memory |  | Show memory usage
Threads |  | Set the number of independent threads of calculation. For simple (quick) calculations and single CPU systems leave this set to "single process" as there is some overhead associated with parallelizing the calculations. For systems with 2 or more CPU's setting the number of threads to twice the number of CPU's can result in significant speed up. It may be worth adjusting the multiple, depending on the nature of the calculation.
Clear Log |  | Clear log window
Clear Cache |  | Clear any saved calculations. This can be useful to prevent PGOPHER using too much memory, and may be required if a calculation fails.
Clear Observed |  | Clear observed line marks from plot.


Help Menu

Note that on Linux and Mac machines most of these menu entries are not currently connected.

Index | Show available help on PGOPHER.
Search | Search available help on PGOPHER.
Procedures | Help on how to do things within PGOPHER
What Is... | Press Shift + F1 and then click on something to find out about it
Using Help | Show help on using the help system
About... | Show version number of PGOPHER and other information
Dump | Dump current form as help file skeleton.


 Tree Popup Menu
Menus <Prev Next>

Tree Popup Menu

This window appears on right-clicking on an object in the tree view, in either the constants or the overlays window. Additional items may appear, depending on the type of the object.

Rename

Rename Object.

Copy

Copy object and children to clipboard.

Copy With Linked Items

Copy selected node and items linked to it (i.e. items lower down in the hierachy).

Paste

Insert object from clipboard here.

Delete

Delete selected object.

Move Up

Move selected object up one place in the tree view.

Move Down

Move selected object down one place in the tree view.

Extra Items for Constants Window

Add new ...

Insert new object here

Convert to Perturbations

Convert parameters to perturbations

Matrix Elements

Show all matrix elements for the current state in the log

Symmetry Table

Show symmetry table in the log.

Add All Levels

Add all levels to custom populations - see Non-Boltzmann Populations

Extra Items for Overlays Window

Invert

Invert current spectrum.

Hide

Hide this overlay

Hide Others

Hide all other overlays

Show All

Show all overlays

Undo

Undo last operation


Alphabetical Index

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

A

  • A
    • Asymmetric Top
    • Linear Molecule
    • Vibrating Molecule
  • a
  • Abundance
    • Asymmetric Top
    • Linear Molecule
    • Symmetric Top
    • Vibrating Molecule
  • Active
    • Vibrating Molecule
  • AD
  • aeff
  • aF
  • aJ
  • AllowComplex
  • alpha
    • Asymmetric Top
    • Symmetric Top
  • AlternateBasis
  • aPower
  • AsNext
    • Asymmetric Top
    • Linear Molecule
    • Symmetric Top
    • Vibrating Molecule
  • AsymmetricMolecule
  • AsymmetricTop
  • AsymmetricTopNucleus
  • AsymmetricTopOrbitalTransitionMoment
  • AsymmetricTopPerturbation
  • AsymmetricTopRotationalTransitionMoment
  • AsymWt
  • AutoMax
    • Plot
  • AutoMin
    • Plot
  • AutoQConverge
  • AutoReplot
  • AutoZero
  • AverageMass
  • Axis
    • Asymmetric Top
    • Symmetric Top

B

  • B
    • Asymmetric Top
    • Linear Molecule
    • Symmetric Top
  • b
  • Baseline
  • BasisOrder
  • BBar
  • BDelta
  • beta
    • Asymmetric Top
    • Symmetric Top
  • bJ
  • BlockMatrix
    • Asymmetric Top
    • Linear Molecule
    • Symmetric Top
    • Vibrating Molecule
  • bPower

C

  • C
    • Asymmetric Top
    • Symmetric Top
  • c
  • C2xAxis
  • C2zAxis
  • Caa
  • Calculate
  • CartesianDisplacements
  • CartesianTransitionMoment
    • Asymmetric Top
    • Symmetric Top
  • Cbb
  • Ccc
  • CHIab
  • CHIac
  • CHIbc
  • CHIxxmyy
  • CHIzz
  • cI
  • cJ
  • Colour
    • Manifold
    • Molecule
    • Plot
    • Species
    • State
    • Transition Moments
    • Asymmetric Top
    • Linear Molecule
    • Symmetric Top
    • Vibrating Molecule
  • Component
    • Asymmetric Top
    • Linear Molecule
    • Symmetric Top
  • ComponentType
  • Concentration
  • ContourFile
  • Convolute
  • Cperp
  • cPower
  • Czz

D

  • D
  • d
  • deltaJ
  • deltaK
  • Direction
  • Displacement
  • DJ
    • Asymmetric Top
    • Symmetric Top
  • dJ
  • DJK
    • Asymmetric Top
    • Symmetric Top
  • DK
    • Asymmetric Top
    • Symmetric Top
  • DqJ
  • DqK
  • DrJ
  • DrK
  • ds1
  • ds2
  • DsK
    • Asymmetric Top
    • Symmetric Top
  • DsKN
    • Asymmetric Top
    • Symmetric Top
  • DsN
    • Asymmetric Top
    • Symmetric Top
  • DsNK
    • Asymmetric Top
    • Symmetric Top

E

  • eaa
  • eabbar
  • eacbar
  • ebb
    • Asymmetric Top
    • Symmetric Top
  • ebcbar
  • ecc
    • Asymmetric Top
    • Symmetric Top
  • eeWt
  • EffectiveQno
  • EigenSearch
  • ElectronicState
  • Emax
  • eoWt
  • epsOmega
  • eQq
  • eQq0
  • eQq0J
  • eQq2
    • Linear Molecule
    • Symmetric Top
  • eQq2J
  • eta
  • etaJ
  • etaK
  • ExperimentalPlot
  • Exponent

F

  • FakeSym
  • FirstPoint
  • FitCycles
  • FitDetails
  • FixCentre
    • Plot
  • Fractional
  • FrequencyOffset
    • Plot
  • FrequencyScale
    • Plot

G

  • gamma
  • gammaD
  • gammaH
  • gammaL
  • gammaS
  • gerade
  • gll
  • gN
    • Asymmetric Top
    • Linear Molecule
  • graa
  • grabbar
  • gracbar
  • gramb
  • gramc
  • grbb
  • grbcbar
  • grbmc
  • grcc
  • gsaa
  • gsabbar
  • gsacbar
  • gsamb
  • gsamc
  • gsbb
  • gsbcbar
  • gsbmc
  • gscc

H

  • H
  • Hide
    • Plot
  • HJ
    • Asymmetric Top
    • Symmetric Top
  • HJK
    • Asymmetric Top
    • Symmetric Top
  • HK
    • Asymmetric Top
    • Symmetric Top
  • HKJ
    • Asymmetric Top
    • Symmetric Top

I

  • Initial
  • InPrincipalAxis
  • IntensityUnits
    • Overlays
    • Plot
  • InternalCoords
  • InterpolatedPartitionFunction
  • IsLineList

J

  • JAdjustSym
    • Asymmetric Top
    • Linear Molecule
    • Symmetric Top
    • Vibrating Molecule
  • Jmax
    • Molecule
    • Species
    • Asymmetric Top
    • Linear Molecule
    • Symmetric Top
    • Vibrating Molecule
  • Jmin
    • Molecule
    • Species
    • Asymmetric Top
    • Linear Molecule
    • Symmetric Top
    • Vibrating Molecule
  • JPower
    • Asymmetric Top
    • Symmetric Top

K

  • Kmax
    • Asymmetric Top
    • Symmetric Top
  • Kmin
    • Asymmetric Top
    • Symmetric Top
  • KSelect
    • Asymmetric Top
    • Symmetric Top

L

  • L
  • Lambda
  • LambdaD
  • LambdaH
  • LambdaSS
    • Linear Molecule
    • Vibrating Molecule
  • LastPoint
  • lChange
  • LimitSearch
  • Linear
  • LinearMolecule
  • LinearNucleus
  • LinearPerturbation
  • LJ
    • Asymmetric Top
    • Symmetric Top
  • LJJK
    • Asymmetric Top
    • Symmetric Top
  • LJK
    • Asymmetric Top
    • Symmetric Top
  • LK
    • Asymmetric Top
    • Symmetric Top
  • LKKJ
    • Asymmetric Top
    • Symmetric Top
  • llJ
  • llJK
  • llK
  • llKJ
  • lPower
  • lx0
  • lx1
  • ly0
  • ly1
  • lz0
  • lz1

M

  • M
  • Manifold
  • Mass
  • Mixture
  • MolecularNucleus
  • Molecule
  • MultidimensionalFCF

N

  • n
  • nComponents
  • nModes
  • nNuclei
    • Asymmetric Top
    • Linear Molecule
    • Symmetric Top
    • Vibrating Molecule
  • NoLineList
  • Normalize
  • Npower
  • NSPower
    • Asymmetric Top
    • Symmetric Top
  • NuclearMagneticMoment
    • Asymmetric Top
    • Linear Molecule
  • Nucleus
    • Perturbation
    • Asymmetric Top
    • Linear Molecule
    • Symmetric Top
    • Vibrating Molecule

O

  • o
    • Linear Molecule
    • Vibrating Molecule
  • oD
  • oeWt
  • oH
  • oL
  • Omega
  • OmegaSelect
  • ooWt
  • Op
    • Linear Molecule
    • Vibrating Molecule
  • OrbitalTransitionMoment
  • Order
  • Origin
    • Asymmetric Top
    • Linear Molecule
    • Symmetric Top
    • Vibrating Molecule
  • Overlays

P

  • p
  • pD
  • PeakThreshold
  • Perturbation
  • pH
  • PhaseAdjust
  • phiJ
  • phiJK
  • phiK
  • pL
  • Plot
  • PointGroup
    • Asymmetric Top
    • Symmetric Top
    • Vibrating Molecule
  • Polarization
  • PP
  • pPower
    • Asymmetric Top
    • Symmetric Top
  • Precision
  • PreserveS
  • PrintLevel
  • PseudoC2v

Q

  • q
  • qD
  • qH
  • qL
  • qminus
  • qplus
  • QuantumNumberFormat

R

  • r
  • Rank
    • Asymmetric Top
    • Linear Molecule
    • Symmetric Top
  • Representation
  • RotationalTransitionMoment
  • RSquaredH
  • RveSelect
    • Asymmetric Top
    • Linear Molecule
    • Symmetric Top
    • Vibrating Molecule

S

  • S
    • Asymmetric Top
    • Linear Molecule
    • Symmetric Top
    • Vibrating Molecule
  • SaPower
  • SbPower
  • Scale
    • Interpolated Partition Function
  • ScaleChanges
  • ScalePrev
    • Asymmetric Top
    • Linear Molecule
    • Symmetric Top
    • Vibrating Molecule
  • Scomp
  • ScPower
  • ShowAllQnos
  • ShowDerivatives
  • Showef
  • ShowEstUnc
  • ShowFNumber
  • ShowJ
  • ShowN
  • ShowOmega
  • Species
  • SphericalTransitionMoment
    • Asymmetric Top
    • Linear Molecule
    • Symmetric Top
  • Spin
    • Asymmetric Top
    • Linear Molecule
    • Symmetric Top
    • Vibrating Molecule
  • SpinTransitionMoment
  • SPower
    • Asymmetric Top
    • Symmetric Top
  • SpPower
    • Asymmetric Top
    • Symmetric Top
  • Srank
  • SReduction
  • State
  • Strength
    • Asymmetric Top
    • Linear Molecule
    • Symmetric Top
    • Vibrating Molecule
  • SVDlimit
  • SVDThresh
  • Symmetric
  • SymmetricMolecule
  • SymmetricTop
  • symmetricTopNucleus
  • SymmetricTopPerturbation
  • Symmetry
    • Asymmetric Top
    • Symmetric Top
    • Vibrating Molecule
  • SymmetryCoords
  • SymSelect
    • Asymmetric Top
    • Linear Molecule
    • Symmetric Top
    • Vibrating Molecule
  • SymWt
  • SzPower

T

  • Tab
  • Tac
  • Tbc
  • theta
  • TransitionMoment
  • TransitionMoments
  • Txxmyy
  • Tzz

U

  • Units
    • Mixture
    • Overlays
    • Plot
  • UsePopParams

V

  • Value
    • Asymmetric Top
    • Linear Molecule
    • Symmetric Top
    • Vibrating Molecule
  • VibratingMolecule
  • VibrationalMode
  • VibrationalModeChange
  • VibrationalPerturbation
  • vMax
  • vMin

W

  • wBar
  • wDelta
  • Width
    • Asymmetric Top
    • Linear Molecule
    • Symmetric Top
    • Vibrating Molecule
  • wJ
  • wK
  • wKa
  • wKb
  • wKc
  • wt(A1,A2)
  • wt(E)

X

  • x
  • xOmega

Y

  • y
  • Ymax
    • Plot
  • Ymin
    • Plot
  • yOmega

Z

  • z
  • Zero
  • ZeroValid
    • Plot
  • zeta
  • zMatrix
  • zOmega
  • zPower


PGOPHER - Table of Contents

  • PGOPHER
    • License
    • Citing Pgopher
    • Acknowledgements
    • Installation - Windows
    • Installation - Linux
    • Installation - Mac
    • Command Line Version
    • The Slave Editor
    • Help and Support
    • Release Notes
    • Log of older changes
    • Common Error Messages
    • Compiling From Source
  • Procedures
    • Creating a data file
    • Simulating a Spectrum
    • Overlaying an Experimental Spectrum
    • Exporting Plots
    • Calibrating Spectra
      • Using Etalons
    • Line Position Fitting
    • Contour Fitting
    • Combination Difference Fitting
    • Other Fits
    • Non-Boltzmann Populations
    • External Fields - The Zeeman and Stark Effects
    • Details
      • Line List Input File Format
      • Widths and Lifetime Effects
      • Determining Colours and J ranges
      • How PGOPHER works
      • Transition Moments and Line Strengths
      • Intensity Formulae
      • Emission Spectra
      • Raman Spectra
      • J ranges and Partition Functions
      • Tracing Plate Spectra
      • Binary Line List Format
      • Using HTITRAN Files
      • Using ExoMol Files
  • Objects
    • Mixture
      • Simulation Parameters
        • Polarization
      • Variables
      • Species
        • Molecule
          • Interpolated Partition Functions
          • Manifold
            • State
              • Nucleus
            • Perturbation
            • Custom Population Functions
          • Transition Moments
            • Transition Moment
              • Custom Transition Moment Functions
        • Correlations
    • Overlays
      • Plots
      • Experimental Plot
      • Bitmap Plot
  • Molecule Types
    • Linear Molecules
      • Making a Linear Molecule Data File
      • Worked Example - The Schumann-Runge Bands of O2
      • Fitting example - the A-X transition in C3
      • Multiple State Fitting example - the A-X transition in C3
      • The Hamiltonian
      • Molecule Settings
      • State Settings
      • Nucleus Settings
      • Perturbations
      • Transition Moments
        • Spherical Tensor Transition Moment
        • Spin Magnetic Moment
        • Orbital Magnetic Moment
        • Rotational Magnetic Moment
        • Nuclear Magnetic Moment
      • Forbidden Transitions
      • Samples
        • O2 Microwave Spectrum
        • C2 Swan Bands
        • Hyperfine structure in the B-X transition in I2
        • Electronic Spectrum of CrO
        • Zeeman and Stark Effects in SO
    • Symmetric Tops
      • Making a data file for a Symmetric Top
      • Molecule Settings
      • State Settings
      • Symmetric Top Perturbations
      • Symmetric Top Nucleus
      • Transition Moments
        • Spherical Tensor Transition Moment
        • Cartesian Transition Moment
      • Samples
        • Multiphoton Ionization in NH3
        • NH3/ND3 pure rotation and the Stark effect
    • Asymmetric Tops
      • Making a data file for an Asymmetric Top
      • The Hamiltonian
      • Symmetry and Axis Systems
      • Pseudo C2v Symmetry
      • Molecule Settings
      • State Settings
      • Nuclear Hyperfine Structure
      • Perturbations
      • Transition Moments
        • Cartesian Transition Moment
        • Spherical Tensor Transition Moment
        • Spin Transition Moment
        • Rotational Transition Moment
        • Nuclear Magnetic Moment
      • Axis Switching
      • Samples
        • CFBr
        • Stark effect in (NO)<sub>2</sub>
        • The 2+1 MPI spectrum of the C-X electronic transition in H2O
    • Vibrational Structure
      • Vibrational Energy Levels and Franck-Condon Factors
        • Making a basic data file for simulating vibrational structure
        • Worked Example - The Photoelectron Spectrum of H2O
        • Worked Example - Predicting the Photoelectron Spectrum of H2O using ab initio Calculations
        • Importing l matrices
        • Manual entry of the l matrix
        • l Matrix Window
        • Dushinsky Transformation Window
        • Molecule Settings
        • Electronic State Settings
        • Vibrational Modes
        • Nuclear co-ordinates
        • Perturbations
        • Franck-Condon factors
        • Mode Displacements
        • Samples
          • CFBr Dispersed Fluorescence
          • The Renner-Teller effect in C3
      • Force Field Analysis
        • Setting up a simple force field analysis for H2O
        • Setting up a combined force field analysis for H2O and D2O
        • Refining an ab inito force field for H2O
        • z Matrix
        • Internal Coordinates
        • Valence Coordinates
        • Cartesian Coordinates
        • Symmetry Coordinates
        • Samples
          • Force Field Analysis for Acetylene
          • Force Field Analysis for Ethene
  • Windows
    • Main Window
    • Constants Window
    • Line List Window
    • Line Selection Options Window
    • Log Window
    • Residuals Window
    • Overlays Window
      • Experimental Overlay
      • Bitmap Overlay
    • State Details Window
    • Transition Selection and Details Window
    • Energy Level Plot Window
    • Electric or Magnetic Field Plot
    • Calibration Window
    • Rename Dialog Box
    • Pick Channels Dialog
  • Menus
    • File Menu
    • Edit Menu
    • Adjusting the Simulation
    • Overlays Menu
    • View Menu
    • Help Menu
    • Tree Popup Menu
  • Alphabetical Index


 Using accessibility shortcut keys in the Help Viewer

The following keyboard shortcuts can be used for navigation in the HTML Help Viewer. The help author who builds a compiled help (.chm) file can specify which buttons appear on the Help Viewer toolbar, so some of these options may not be available in your version of the viewer.

For more information about accessibility features and services, visit the Microsoft Accessibility and Disabilities Web site.

For the Help Viewer:

To | Press
Close the Help Viewer. | ALT+F4
Switch between the Help Viewer and other open windows. | ALT+TAB
Display the Options menu. | ALT+O
Change Microsoft Internet Explorer settings. The Internet Options dialog box contains accessibility settings. To change these settings click the General tab, and then click Accessibility. | ALT+O, and then press I
Hide or show the Navigation pane. | ALT+O, and then press T
Print a topic. | ALT+O, and then press P, or right-click in the
Move back to the previous topic. | ALT+LEFT ARROW, or ALT+O, and then press B
Move forward to the next topic (provided you have viewed it just previously). | ALT+RIGHT ARROW, or ALT+O, and then press F
Turn on or off search highlighting. | ALT+O, and then press O
Refresh the topic that appears in the Topic pane (this is useful if you have linked to a Web page). | F5, or ALT+O, and then press R
Return to the home page (help authors can specify a home page for a help system). | ALT+O, and then press H
Stop the viewer from opening a page (this is also useful if you are linking to the Web and want to stop a page from downloading). | ALT+O, and then press S
Jump to a predetermined topic or Web page. The help author who builds a compiled help (.chm) file can add two links, on the Options menu, to important topics or Web pages. When you select a Jump command you go to one of those topics or Web pages. | ALT+O, and then press 1 or 2
Switch between the Navigation pane and the Topic pane. | F6
Scroll through a topic. | UP ARROW and DOWN ARROW, or PAGE UP and PAGE DOWN
Scroll through all the links in a topic or through all the options on a Navigation pane tab. | TAB

For the Contents tab:

To | Press
Display the Contents tab. | ALT+C
Open and close a book or folder. | PLUS SIGN and MINUS SIGN, or LEFT ARROW and RIGHT ARROW
Select a topic. | DOWN ARROW and UP ARROW
Display the selected topic. | ENTER

For the Index tab:

To | Press
Display the Index tab. | ALT+N
Type a keyword to search for. | ALT+W, and then type the word
Select a keyword in the list. | UP ARROW and DOWN ARROW
Display the associated topic. | ALT+D

For the Search tab:

To | Press
Display the Search tab. | ALT+S
Type a keyword to search for. | ALT+W, and then type the word
Start a search. | ALT+L
Select a topic in the results list. | ALT+T, and then UP ARROW and DOWN ARROW
Display the selected topic. | ALT+D
The following options are only available if full-text search is enabled.
Search for a keyword in the result list of a prior search. | ALT+U
Search for words similar to the keyword. For example, to find words like "running" and "runs" for the keyword "run." | ALT+M
Only search through topic titles. | ALT+R

For the Favorites tab:

To | Press
Display the Favorites tab. | ALT+I
Add the currently displayed topic to the Favorites list. | ALT+A
Select a topic in the Favorites list. | ALT+P, and then UP ARROW and DOWN ARROW
Display the selected topic. | ALT+D
Remove the selected topic from the list. | ALT+R

Notes

  • There are also shortcut menu commands that can be accessed through the keyboard.
  • Shortcut keys also work in secondary and pop-up windows.
  • Every time you use a shortcut key in the Navigation pane, you lose focus in the Topic pane. To return to the Topic pane, press F6.
  • The Match similar words check box, on the Search tab, will be selected if you used it for your last search.


 About advanced full-text search

Advanced full-text search allows a user to search using boolean, wildcard, and nested expressions. A user can also limit the search to previous results, match similar words, or search topic titles only. When advanced full-text search is enabled, the Search tab in the Help Viewer is enhanced.

This help file does not have advanced full-text search enabled because the help topics included in this file are relatively uncomplicated. To see an example of advanced full-text search in a more complex help file, open the the help for HTML Help Workshop, and then click the Search tab.


Searching for help topics

A basic search consists of the word or phrase you want to find. You can use wildcard expressions, nested expressions, boolean operators, similar word matches, a previous results list, or topic titles to further define your search.

The basic rules for formulating queries are as follows:

  • Searches are not case-sensitive, so you can type your search in uppercase or lowercase characters.
  • You may search for any combination of letters (a-z) and numbers (0-9).
  • Punctuation marks such as the period, colon, semicolon, comma, and hyphen are ignored during a search.
  • Group the elements of your search using double quotes or parentheses to set apart each element. You cannot search for quotation marks.
Note
  • If you are searching for a file name with an extension, you should group the entire string in double quotes, ("filename.ext"). Otherwise, the period will break the file name into two separate terms. The default operation between terms is AND, so you will create the logical equivalent to "filename AND ext."


Defining search terms

The AND, OR, NOT, and NEAR operators enable you to precisely define your search by creating a relationship between search terms. The following table shows how you can use each of these operators. If no operator is specified, AND is used. For example, the query "spacing border printing" is equivalent to "spacing AND border AND printing."

Search for | Example | Results
Both terms in the same topic. | dib AND palette | Topics containing both the words "dib" and "palette."
Either term in a topic. | raster OR vector | Topics containing either the word "raster" or the word "vector" or both.
The first term without the second term. | ole NOT dde | Topics containing the word "OLE," but not the word "DDE."
Both terms in the same topic, close together. | user NEAR kernel | Topics containing the word "user" within eight words of the word "kernel."

Note
  • The |, &, and ! characters don't work as boolean operators (you must use OR, AND, and NOT).


 About changing the Help Viewer

Users can make a variety of changes to the Help Viewer. These related topics describe settings the user can specify.


To change colors in the Topic pane of the Help Viewer

  1. In Microsoft Internet Explorer 4.0, on the View menu, click Internet Options.
  2. On the General tab, click Colors.
  3. In the Colors dialog box, select the options you want, and then click OK.
  4. To apply the new color settings, in the Internet Options dialog box, click OK.
Notes
  • These changes do not apply to the Navigation pane or toolbar of the Help Viewer.
  • This will also change your color settings for Internet Explorer 4.0.


To copy a help topic

  1. In the Topic pane, right-click the topic you want to copy, and then click Select All.
  2. Right-click again, and then click Copy. This copies the topic to the Clipboard.
  3. Open the document you want to copy the topic to.
  4. Position your cursor where you want the information to appear.
  5. On the Edit menu, click Paste.
Note
  • If you want to copy only part of a topic, select the text you want to copy, right-click, and then click Copy.


To view help topics grouped by information type

You can customize your help system so that it includes only those help topics that are relevant to you.

Suppose for example, that you have a help system for an educational software program that includes topics aimed at administrators, teachers, and students. You can customize your help so that it includes only the topics that are important to teachers and students.

On the toolbar, click Options, and then click Customize.


To get help in a dialog box

Click the question mark image: question mark button in the upper-right corner of the dialog box, and then click an item in the dialog box.

Notes

  • To close the pop-up window, click anywhere on the screen.
  • If the dialog box does not have the image: question mark button, click Help, or press F1.
  • You can also get help on an item by right-clicking it.
  • Not all dialog boxes include dialog box help.


To change formatting or styles for accessibility

  1. On the Options menu, click Internet Options, and then click Accessibility.
  2. In the Accessibility dialog box, select the options you want, and then click OK.
Notes
  • These changes do not apply to the Navigation pane or toolbar of the Help Viewer.
  • This will also change your accessibility settings for Internet Explorer 4.0.


To create a list of favorite help topics
  1. Locate the help topic you want to make a favorite topic.
  2. Click the Favorites tab, and then click Add.
Notes
  • To return to a favorite topic, click the Favorites tab, select the topic, and then click Display.
  • If you want to rename a topic, select the topic, and then type a new name in the Current topic box.
  • To remove a favorite topic, select the topic and then click Remove.


To change the font size of a topic

On the Options menu, click Internet Options, and then click Fonts.

Notes
  • These changes do not apply to the Navigation pane or toolbar of the Help Viewer.
  • This will also change your font settings for Internet Explorer.


To find information with advanced full-text search
  1. Click the Search tab, and then type the word or phrase you want to find.
  2. Click [image] to add boolean operators to your search.
  3. Click List Topics, select the topic you want, and then click Display.
  4. To sort the topic list, click the Title, Location, or Rank column heading.
Notes
  • You can precisely define a search by using wildcard expressions, nested expressions, and boolean operators.
  • You can request similar word matches, search only the topic titles, or search the results of a previous search.
  • You can set the Help Viewer to highlight all instances of search terms that are found in topic files. Click the Options button, and then click Search Highlight On. This feature only works with Internet Explorer 4.0 or later.


To use full-text search
  1. Click the Search tab, and then type the word or phrase you want to find.
  2. Click List Topics, select the topic you want, and then click Display.


 About the Search tab

These topics describe the features available if you include a Search tab in your help design.

A compiled help file can include a Search tab that allows a user to search through every word in a help file to find a match. For example, if a user does a full-text search on the word "index," every topic that contains the word "index" will be listed.

Depending on how complex your help system is, the Search tab can contain either basic or advanced full-text search functionality. Advanced full-text search allows a user to search using boolean, wildcard, and nested expressions.

Note
  • To see an example of a basic search, click the Search tab in this file.To see an example of Advanced full-text search, click the Search tab in the help file for HTML Help Workshop.


 About the Help Viewer

These related topics describe most of the general features available in the Help Viewer.


To hide or show the Navigation pane

On the toolbar, click Hide or Show to close or display the Navigation pane, which contains the Contents, Index, Search, and Favorites tabs.

Note
  • If you close the Help Viewer with the Navigation pane hidden, it will appear that way when you open the Help Viewer again.


To highlight words in searched topics

When searching for words in help topics, you can have each occurrence of the word or phrase highlighted in the topics that are found.

To highlight all instances of a search word or phrase, click Options on the toolbar, and then click Search Highlight On.

Notes

  • To turn off this option, click Options on the toolbar, and then click Search Highlight Off.
  • If you are viewing a long topic, only the first 500 instances of a search word or phrase will be highlighted.


Getting more out of help

Here are some tips on how to find more information when using the HTML Help Viewer:

  • To link to another topic, a Web page, a list of other topics, or a program, click the colored, underlined words.
  • To view topics that contain related information, click the words, "Related Topics," which may appear at the end of a topic, and then click the title of the topic you want.
  • To see if a word or phrase contained in a topic is in the index, select the word, and then press F1.
  • If you are viewing content from the Web in the Topic pane, you can click Stop or Refresh on the toolbar to interrupt a download or refresh a Web page.
  • If you use a particular help topic often, you can add it to your favorites list.
  • Right-click the Contents tab or Topic pane for shortcut menu commands.


 To turn on MouseKeys
  1. to open the Accessibility Properties dialog box.
  2. Click the Mouse tab.
  3. Select the Use MouseKeys check box.

Note

  • You can also open the Accessibility Properties dialog box by clicking Start, pointing to Settings, clicking Control Panel, and then double-clicking Accessibility Options.


To find topics using the toolbar buttons

There are five navigational buttons that can be located on the toolbar in the Help Viewer. You can click these buttons to find help topics:

  • Back displays the last topic you viewed.
  • Forward displays the next topic in a previously displayed sequence of topics.
  • Next displays the next topic listed in the table of contents.
  • Previous displays the previous topic listed in the table of contents.
  • Home displays the Home page topic for the help file you are viewing.
  • Refresh updates Web content that is currently displayed in the Topic pane.
  • Stop stops downloading file information. Click this button to stop a Web page from downloading.
Note
  • The toolbar in your Help Viewer may not contain all of these navigational buttons.


Using nested expressions when searching

Nested expressions allow you to create complex searches for information. For example, "control AND ((active OR dde) NEAR window)" finds topics containing the word "control" along with the words "active" and "window" close together, or containing "control" along with the words "dde" and "window" close together.

The basic rules for searching help topics using nested expressions are as follows:

  • You can use parentheses to nest expressions within a query. The expressions in parentheses are evaluated before the rest of the query.
  • If a query does not contain a nested expression, it is evaluated from left to right. For example: "Control NOT active OR dde" finds topics containing the word "control" without the word "active," or topics containing the word "dde." On the other hand, "control NOT (active OR dde)" finds topics containing the word "control" without either of the words "active" or "dde."
  • You cannot nest expressions more than five levels deep.


Using the HTML Help Viewer

 Using HTML Help Viewer

By default,the help will appear in a window with three panes:

  • On the left side of the window is the Navigation pane. It contains three navigational tabs: the Contents tab, the Index tab, and the Search tab.
  • On the right side of the window is the Topic pane. It displays the selected help topic, or the default help topic.
  • The third pane is the toolbar, which is located below the help window title bar.
Display a screen shot of the HTML Help Viewer


To search only the last group of topics you searched

This feature enables you to narrow a search that results in too many topics found. You can search through your results list from previous search by using this option.

  1. On the Search tab, select the Search previous results check box.
  2. Click List Topics, select the topic you want, and then click Display.
Notes
  • If you want to search through all of the files in a help system, this check box must be cleared.
  • The Search tab will open with this check box selected if you previously used this feature.


To print the current help topic

Right-click a topic, and then click Print.

Note
  • If you print from the Contents tab (by right-clicking an entry, and then clicking Print) you will see options to print only the current topic, or the current topic and all subtopics.


 Using the shortcut menu commands

There are several commands on the shortcut menu that you can use to display and customize information.

Command | Description
Right-click in the table of contents, and then click Open All. | Opens all books or folders in the table of contents. This command only works if the Contents tab is displayed.
Right-click in the table of contents, and then click Close All. | Closes all books or folders. This command only works if the Contents tab is displayed.
Right-click, and then click Print. | Prints the topic.
Right-click in the table of contents, and then click Customize | Opens the Customize Information Wizard, which allows you to customize the documentation. If the help file was built with information types, you can use this wizard to select a subset of topics to view. For example, you could choose to see only overview topics.

Note

  • These commands can be accessed through the keyboard. You can click SHIFT+F10 to display the shortcut menu, and then click the appropriate shortcut keys. Or, you can enable Mousekeys. Use a Mousekey combination to display the shortcut menu, and then click the appropriate shortcut keys.


To find words similar to your search term

This feature enables you to include minor grammatical variations for the phrase you search. For example, a search on the word "add" will find "add," "adds," and "added."

  1. Click the Search tab, type the word or phrase you want to find, and then select the Match similar words check box.
  2. Click List Topics, select the topic you want, and then click Display.
Note
  • This feature only locates variations of the word with common suffixes. For example, a search on the word "add" will find "added," but it will not find "additive."


To search for words in the titles of HTML files
  1. Click the Search tab, type the word or phrase you want to find, and then select the Search titles only check box.
  2. Click List Topics, select the topic you want, and then click Display.
Note
  • If you use this option, all HTML topic files will be searched, including any that are not listed in the table of contents.


 To find a help topic

In the Navigation pane, click one of the following tabs:

  • To browse through a table of contents, click the Contents tab. The table of contents is an expandable list of important topics.
  • To see a list of index entries, click the Index tab, and then type a word or scroll through the list. Topics are often indexed under more than one entry.
  • To locate every occurrence of a word or phrase that may be contained in a help file, click the Search tab, and then type the word.
Note
  • Click the contents entry, index entry, or search results entry to display the corresponding topic.


 The HTML Help Viewer

This is a help file as it appears in the HTML Help Viewer.

Return to Using the HTML Help Viewer


Searching for words or phrases

You can search for words or phrases and use wildcard expressions. Wildcard expressions allow you to search for one or more characters using a question mark or asterisk. The table below describes the results of these different kinds of searches.

Search for

Example

Results

A single word

select

Topics that contain the word "select." (You will also find its grammatical variations, such as "selector" and "selection.")

A phrase

"new operator"
or
new operator

Topics that contain the literal phrase "new operator" and all its grammatical variations.

Without the quotation marks, the query is equivalent to specifying "new AND operator," which will find topics containing both of the individual words, instead of the phrase.

Wildcard expressions

esc*
or
80?86

Topics that contain the terms "ESC," "escape," "escalation," and so on. The asterisk cannot be the only character in the term.

Topics that contain the terms "80186," "80286," "80386," and so on. The question mark cannot be the only character in the term.

Note
  • Select the Match similar words check box to include minor grammatical variations for the phrase you search.


 To customize the Help Viewer

There are a few ways to easily change the size and position of the Help Viewer and the panes in the viewer:

  • To resize the Navigation or Topic pane, point to the divider between the two panes. When the pointer changes to a double-headed arrow, drag the divider right or left.
  • To proportionately shrink or enlarge the whole Help Viewer, point to any corner of the Help Viewer. When the pointer changes to a double-headed arrow, drag the corner.
  • To change the height or width of the Help Viewer, point to the top, bottom, left, or right edge of the Help Viewer. When the pointer changes to a double-headed arrow, drag the edge.
  • To reposition the Help Viewer on your screen, click the title bar and drag the Viewer to a new position.
Note
  • The Help Viewer will appear with the last size and position settings you specified when it is opened again.