Introduction

Installation

Installation from source code.

Prerequisites

For Cygwin see Installing on Cygwin for the prerequisites.

Compulsory Prerequisites

On openSUSE these requirements can be satisfied with:

zypper in gcc-c++ libxml2 libxml2-devel blas-devel lapack-devel

Optional Prerequisites

Configuration

Run

./configure

The choice of C++ compiler and flags can be modified in the normal autoconf way, eg.:

./configure CXX=g++ CXXFLAGS=-Ofast

One can specify non-default location of libraries etc. via the command line in the usual autoconf way, eg. for using MKL:

export LD_LIBRARY_PATH="/opt/intel/mkl/lib/intel64:${LD_LIBRARY_PATH}"
./configure CXX=icpc LDFLAGS="-L/opt/intel/mkl/lib/intel64" \
            LIBS="-lmkl_intel_lp64 -lmkl_core -lmkl_sequential -lpthread"

Building

Run

make [-j n]

Testing the build

To test the build simply run:

make [-j n] check

or to run only a given set of tests the TESTS variable can be set, eg:

make [-j n] check TESTS="he2_s.xml h2o_zmat.xml"

Note: for cross-compilation systems you will need to execute this on the target architecture.

Installing on Cygwin

When installing Cygwin the following packages need to be installed in addition to those installed by default:

PackagePackage GroupReason
gcc-core Develcompiling C files
gcc-g++ Develcompiling C++ files
make Develbuilding packages
libxml2 Libs libxml2 library
libxml2-devel Libs libxml2 headers
liblapack-develLibs BLAS/LAPACK library
ncurses Utilstput for pretty make check

and the libcint library should also be built and installed. QMay can then be configured and built in the normal way.

Notes about input files

QMay input files are well formerd XML files which are read and processed sequentially, thus the order in which things appear matters. eg. geometry declaration should come before basis declaration.

Why XML?

XML files are easy to verify which makes it easy to detect some common input mistakes. There are also standard tools for reading XML files.

Case sensitivity

XML is case sensitive, so case does matter for the XML parts of the file. For convenience we made the decision that all XML node and attribute names in QMay input files are lowercase. Additionally, most attribute strings should be lowercase except where it makes no sense, eg. in the case of giving a filename. The text data for nodes is case insensitive, so don't worry, you can copy a geometry or basis section from your favourite other program.

Geometry

A geometry block should simply contain the geometry in Z-matrix format. Example:

<geometry>
He
He,He,1.0
</geometry>

or in XYZ format. Example:

<geometry type="xyz">
2
Helium dimer
He   0.0  0.0  0.0
He1  0.0  0.0  1.0
</geometry>

By default the units are assumed to be angstrom, but this can be changed to bohr with the units attribute if required:

<geometry units="bohr">
...
</geometry>

Options

Basis

The available basis sets in the library can be printed with:

qmay --print-basis-library

Explicit basis specification

Rather than create yet another basis specification, the QMay basis block accepts a subset of the Molpro basis specifications. All specifications start with ang,label, where ang is the angular momentum, eg. s or df, and label must match a corresponding entry in the geometry block.

Options

Restricted Hartree-Fock Program

The Restricted Hartree-Fock program. The eigenvectors of the core Hamiltonian (h0) are used for the initial starting guess.

Options

CODATA

The codata directive can be used to specify the CODATA values. Since QMay files are processed sequentially it is generally a good idea that this directive, if required, should be one of the first directives, unless it is intended to modify the CODATA values during the job. With no options specified the codata directive will simply print the current values.

Options

Orient

The orient directive can be used to reorientate the system.

Options

Mass

The mass directive can be used to change the masses of the current geometry.

Options

Conditions for running a job

This top level attribute allows one to specify whether a job should run. It is primarily implemented for test inputs to be skipped when a feature is missing, but it might be used to see earlier whether a job will definitely fail. The syntax is a comma separated list, eg.:

<qmay conditions="octave"> <!-- require octave to be found in PATH -->
The current list of conditions is:

Bibliography

[1] S. Obara and A. Saika. Efficient recursive computation of molecular integrals over cartesian gaussian functions. J. Chem. Phys., 84(7):3963–3974, 1986.

[2] E. R. Cohen and B. N. Taylor. The 1973 least‐squares adjustment of the fundamental constants. J. Phys. Chem. Ref. Data, 2(4):663–734, 1973.

[3] E. R. Cohen and B. N. Taylor. The 1986 adjustment of the fundamental physical constants. Rev. Mod. Phys., 59(4):1121–1148, 1986.

[4] P. J. Mohr and B. N. Taylor. Codata recommended values of the fundamental physical constants: 1998. Rev. Mod. Phys., 72(2):351–495, 2000.

[5] P. J. Mohr and B. N. Taylor. Codata recommended values of the fundamental physical constants: 2002. Rev. Mod. Phys., 77(1):1–107, 2005.

[6] P. J. Mohr, B. N. Taylor, and D. B. Newell. Codata recommended values of the fundamental physical constants: 2006. Rev. Mod. Phys., 80(2):633–730, 2008.

[7] P. J. Mohr, B. N. Taylor, and D. B. Newell. Codata recommended values of the fundamental physical constants: 2006. J. Phys. Chem. Ref. Data, 37(3):1187–1284, 2012.

[8] P. J. Mohr, B. N. Taylor, and D. B. Newell. Codata recommended values of the fundamental physical constants: 2010. Rev. Mod. Phys., 84(4):1527–1605, 2012.

[9] P. J. Mohr, B. N. Taylor, and D. B. Newell. Codata recommended values of the fundamental physical constants: 2010. J. Phys. Chem. Ref. Data, 41(4):043109, 2012.

[10] B. N. Taylor, W. H. Parker, and D. N. Langenberg. Determination of e/h, using macroscopic quantum phase coherence in superconductors: Implications for quantum electrodynamics and the fundamental physical constants. Rev. Mod. Phys., 41(3):375–496, 1969.