The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

ESPT Programming Conventions

============================

Atoms:

All atoms are stored as atomic symbols. If the atomic number is required use the atomconvert method at that time.

Energies:

In fchk files, always use Total energy as the EELEC.

File contents:

Each ESS file is assumed to contain the results from only one calculation unless the calculation was an Opt Freq run.

Pragmas:

All ESPT objects must conform to the use strict and use warnings pragmas.

Loops & counters:

Use scalar(@array) or $#array rather than counters when at all possible. If a counter must be employed use the generic $counter rather than creating a new variable.

MO Occupations

All MO occupations are stored as 0, 1, 2, or a real number for fractional values. Conversion to more chemical values such as "Occ." or "Virt." should be done elsewhere.

Object data:

Each ESPT object is a Hash. Each Hash key should contain either a scalar value or a tensor of scalar values. Hashes of Hashes should be avoided as this requires significant modification to the get routine.

Units:

All values are stored internally in atomic units with the exception of coordinates, which are stored in angstroms. Unit conversion should be done in the program employing ESPT modules.