
List of developers
Author 
Project 
Trygve Helgaker

McMurchieDavisson gaussian orbital integrals

Augie Diz

SCF and state projection for diatomic

Hugh Taylor

vibration analysis for diatomic

Benny Mogensen

complex gaussian orbital integrals

Jorge Morales

differential cross sections with
semiclassical corrections (Airy and uniform
approximation)

Mauricio Coutinho

general state projection

Anatol Blass

general rotationvibration analysis

Remigio Trujillo

differential cross sections with
semiclassical corrections (Schiff approcimation);
make movies with sphere representation of the Mulliken
population.

Denis Jacquemin

Semiempirical integrals (AM1) and
ObaraSaika (PRISM) integrals.

Oliver Quinet

Python scripts for managing differential crosssection
computations; make movies with true electron densities.

Ben Hall

Semiclassical nuclear wave function.

Feaures under development for version 5
 Multi configuration wave functions for electrons and nuclei
 Frozen electron cores
 Semiempirical integrals
 Density Functional implementation
 Python programming interface
 Source in Fortran 95, ANSI C and python.
 MPI massively parallel
 POSIX threads shared memory parallel
 Use of QTIP integrals
New features in version 5
Python interface 
The program evolve no longer exists in version
5. It is replaced by Python. Python is an
Opensource project featuring a rapid prototying
laguage that is both a simple scripting language and a
fully featured object oriented language.
ENDyne is defined as an extension of Python, which
means that you can start the python interpreter and
load ENDyne to make the ENDyne commands and data
available in the interactive session or Python
script. A session looks like:
edsparc% python
Python 2.0 (#3, Sep 3 2001, 11:50:37) [C] on sunos5
Type "copyright", "credits" or "license" for more information.
>>> import endyne
>>> endyne.version()
(5, 'A', 3, 1, 6, 'generic', 'Tue Jul 30 12:52:28 EDT 2002')
>>>
Python is also embedded in the endyne executable, so
that you can run endyne with a .inp file as argument
to make a calculation as in version 2:
edsparc% endyne test.inp
ENDyne version 5.A.3.1 test.inp
*****************
* E N D y n e *
*****************
Executable version 5 alpha development phase 3
Restart file format 6
Or you can run endyne with a .rsl file as argument
to get the functionality of evolve:
edsparc% endyne test.rsl
ENDyne version 5.A.3.1 test.rsl
RSL file test.rsl opened with the command:
rslfile = RSLopen('test.rsl','r')
Recorded state log (RSL) file
name: test.rsl
mode: r
format: 6
version: 5.0603
begin: 0.0E+0 1
end: 0.1 29
current: 0.0E+0 1
records: 11
flags: ownself T
seekdone T
readonly T
flushbuf F
isopen T
rstisopen F
endyne>>>
All the functionality of ENDyne can be accessed from
Python and many of the new features are only available
through the Python interface. Documentation of any
command is available with the standard Python method:
endyne>>> print thing.__doc__

Schiff Approximation 
When a bundle of trajectories as a function of
orientation angles of projectile and target and of
impact parameters has been calculated, it is possible
to get the differential cross section with the Python
script dcs.py, which use the Python library
dcslib.py. The semiclassical Schiff
Approximation correction can be obtained with the
Python function schiff.

Electronic subspace projection 
The Mulliken population analysis provides away to
estimate the probability of charge transfer. A more
detailed way involves constructing the projection of
the evolved state on the space of all determinants
with given charge and spin distribution.
This is done with the project method of
RSLdata objects.

Thouless ordering 
By setting LORDV2=T, the algorithm that
determines the best reference for Thouless
representation now takes into account the charge of
each nucleus and builds a reference state that has a
number of electrons on each nucleus in agreement with
chemical intuition.
To allow application to negative
ions, the algorithm allows putting too many elecrons
on a center, after all centers are chemically neutral.

Backstep recovery 
Version 2 propagation relies on the RSL (recorded
state log) file to recover from a problem where
further integration is not possible. This happens
because the integrator has propagated into a region of
phase space where various operations to determine the
forces on nuclei and electrons become numerically
illconditioned. Continuing would lead to inaccurate
and incorrect results. If the RSL step RDT is
too large, the backstep may not yield a numerically
more stable reference and then integration is
aborted. This is known as a broken trajectory.
Version 5 uses an internal mechanism to store the last
known good state in RAM. This method is more flexible
and requires little or no user intervention. It works
effectively with the HindmarshGear LUSEHG=T
and ShampineGordon LUSESG=T methods. Because
the BulirschStoer LUSEBS=T method does not
step forward uniformly, the RAM backstep method is
really equivalent to the old RSL method.
The use of the parameter RCNDLM is much more
sensitive in the new algorithm. Therefore users who
have set this parameter, should remove it from their
input files to ensure the use of the default. A new
parameter RCNDAC has been introduced, giving
the relative accuracy of the condition number
returned by LAPACK routines. The version 2 algorithm
considered a new state bad if
new_condition_number > RCNDLM * NDIM *
old_condition_number
independent of how close in time the previous
condition number was obtained. The version 5
algorithm uses the inequality
d/dt ln condition_number > RCNDLM * NDIM
within the accuracy RCNDAC. Setting
RCNDAC=1. and RCNDLM large ensures that
the test is never satisfied. The resulting
trajectory may then inaccurate and eventually wrong.

Project and target orientation 
To compute differential cross sections for reactions
involving nonspherical systems, it is necessary to
compute sets of collision trajectories as a function
of impact parameter for a set of orientations of the
projectile and the target. The Python script
prep.py will set up a directory tree and
populate it with .inp files for ENDyne and .job
files for LoadLeveler by editing tenplates
provided by the user. The routines to average cross
sections accurately over all orientations are provided
in orientlib.py. These routines are used by
dcs.py and dcslib.py.
When both target and projectile are atoms, there are
three relative coordinates:
1) b: the impact parameter along the b axis,
2) z: the initial projectile distance along the
beam axis,
3) phi: the angle defining the baxis beamaxis
plane around the beam axis.
For the most general case of two molecules, there are
nine relative coordinates: b, z, phi as in the
atomatom case, plus:
4) alpha: azimuth for the projectile axis,
5) beta: azimuth for the target axis,
6) gamma: dihedral angle between the projectile
axis and target axis,
7) chi: dihedral angle between the baxis and
beamaxis plane, and the projectile axis,
8) delta: projectile spin angle around the
projectile axis,
9) epsilon: target spin angle around the target
axis.
There are 6 distinct types with increasing number of
relative coordinates.
39 The case of an atom and an atom
has just three:
b, z, phi.
59 The case of an atom and a diatomic
molecule has five:
b, z, phi, beta, chi.
69 The case of an atom and a polyatomic has six:
b, z, phi, beta, chi, epsilon.
79 The case of two diatomic molecules has seven:
b, z, phi, alpha, beta, gamma, chi.
89 The case of a diatomic molecule and a polyatomic has eight:
b, z, phi, alpha, beta, gamma, chi, epsilon.
99 The case of two polyatomics has all nine:
b, z, phi, alpha, beta, gamma, chi, delta, epsilon.
The program does not care whether the first cluster
is the projectile or the target, hence to scatter a
polyatomic on an atom, designate the atom as fragment
1 and target and the polyatomic as
fragment 2 and projectile and use type
69.

Performance Monitor 
The program has been instrumented with calls to
performance monitoring code. On all platform on which
PAPI is supported, a package hpm.c provides a simple
interface. This interface is the same as the one
developed for IBM POWER3 and POWER4 processors by Luis
DeRose called HPM Toolkit. On these platforms, ENDyne
uses the HPM Toolkit. Monitoring is turned on with
the flags LTRACE and LTRPRF.

Free electrons 
It is possible to construct a single determinant wave
function with complex orbitals using basis functions
with electron translation factors (ETF) placed on
centers that can be atomic nuclei or freely moving
dynamical centers. We refer to such wave functions as
wave functions with free
electrons. The dynamical equations with
dictate the motion of the free centers and of the
occupation of the basis functions on them.
Wave function with free electrons can be used to
describe such processes as electron scattering on
atoms and molecules;ionization of atoms and
molecules during colissions and reactive processes;
and recombination of
ions with free electrons.
The use of the much more stringent backstep
algorithm implemented in version 5 is essential for
wave functions with free electrons, as the numerical
integrator can produce nonsense much more easily
than for wave functions with only atomic centers.
The use of coordinates for the center of free moving
centers of basis functions introduces a duplication
with the basis functions exapansion coefficients. To
obtain a singularity free coordinate system for the
phase space it is essential to perform a
transformation. A new way to solve the dynamical
equations has been implemented which constructs the
complete symplectic form. The TDVP equations were
solved by substitution in version 2, to save the
space for the full symplectic form. However, the
transformation is only meaningful on the entire
symplectic form. The solution method with the full
symplectic form is used when LUSPFM=T, and
the singularity removing transformation is applied
when LUSPTR=T. The Hamiltonian equation is
solved with a general linear eqaution solver by
default; with LUSPVD=T the equation is solved
by singular value decomposition.
By turning on tracing LTRACE=T and
LTRSPD=T detailed information about the
solution of the equations is printed to the log file
and, with LUSPVD=T, the singular values and
right singular vectors are written to the RSL file
in TRVEC1 and TRMAT1, respectively.
The components of the singular vectors are in the
order of the internal representation of the
symplectic equation: real part of the Thouless
coefficients, center positions, imaginary part of
the Thouless coefficients, center momenta.
TRVEC2 and TRVEC3 contain the
velocities as computed by the substitution method
(version 2) and by solving the symplectic form
(version 5, LUSPFM=T). TRVEC4 holds
the solution with the symplectic transformation
LUSPTR=T. The velocity components are in the
following order: Thouless coefficients, center
positions, center momenta. TRVEC5 contains
the force of the TDVP equation. The force components
are in the same order as the velocities.
There is an extra singularity that can develop: the
free center can get zero coefficients for all its
basis functions. The algorithm to avoid this
singularity in the nuclear metric uses an expanded
state phase space. This feature can be turned on by
setting LUSEXS=T.
Rules for choosing and constructing the basis set
for free centers are still being developed. So far
the only guideline is that there should be only
basis functions of even angular momentum:
s,d,g,j,... and not p,f,h,....

Optimization 
The strength of ENDyne has always been in the time
propagation. The capability to optimize electronic
parameters at a fixed geometry, or to optimize
electronic parameters and geometry simultaneously has
always existed but did not perform very well. For that
reason a conventional SCF code based on DIIS has been
implemented to allow constructing initial SCF wave
functions.
The optimization capability has now been
completely disentangled from the propagation
capability, thus increasing the stability and
maintainability of the software system. The
optimization functionality appears to be much
improved.

Phase
normalization 
Routines that diagonalize matrices, do not produce
thesame vectors, they are determined only up to a
complex phase. Now all Fock eigenvectors are
normalized so that the largest component is real and
positive.
Reordering can produce different looking Thouless
coefficientcs. Now the Thouless coefficients printed
in the output at the end of a run are normalized so
that the largest component is equal to 1. The speed
vectors are similarly normalized, which makes no sense!

TDA
and RPA spectra and modes 
New flags LCIEIG and LCIVEC control that
the configuration interaction singles or TammDancoff
approximation energies and vectors will be computed
with the current state as reference, which need not be
an SCF state. Similarly, LIPEIG and
LIPVEC control that the interaction picture or
Random Phase approximation energies and vectors will
be computed. These properties require the
LMKPRP is set.

Interaction picture coordinates for
propagation 
The flag LUSEIP turns on the use of a
transformation of the electronic variables to
interaction picture variables, i.e. RPA modes, and
propagation in these variables. This has the potential
to significantly speed up propagation of electronic
variables. The variables are monitored and when the
forces get too big, indicating they are no longer
optimal, evolution is stopped and a new transformation
is forced before evolution is resumed.

New computational kernel 
The computational kernel has been rewritten
completely. The old HFFRC routine with its
complicated spin block structure has been broken up
into smaller pieces with a simpler spin orbital
structure more close in design to the structure
required to support multiconfiguration wave
functions. The logic to determine a new mapping of
basis functions to occupied/unoccupied spaces needed
to transform to Thouless coefficients has been
modified to be closer to the fully general design
needed for MC. A new input switch LMKTHC has
been introduced to allow turning off generation of a
new Thouless map, thus keeping the existing map,
e.g. from the RSL file when LRSTRT=T.

Vector Hartree Fock 
The Complete Active Space (CAS) multiconfiguration
(MC) or multi reference (MR) (spin)unrestricted
vector coherent state wave function is being
implemented and tested. It is more a generalization of
HartreeFock than the conventional CASMC wave
function. For that reason we call it the Vector
HartreeFock wave function.

Semiclassical nuclear wave function 
The nuclear de Broglie phase factor is integrated
numerically alongthe trajectories and multiple
trajectories are allowed to interfere. This is an
implementation of the semiclassical nuclear wave
function to generalize the Schiff approximation to the
classical cross sections.

Semi empirical integrals 
The integral generation module has been completely
restructured and now delivers semi empirical integrals
and ab initio integrals in a consistent way. The code
to compute contractions of integral patches with
densities has been restructured as well. The new
algorithm for evaluating the contractions is the same
for MD modelforces, MNDO methods and ab initio methods.

Software versions
Version 
Release 
Update 
Date 
Feature 
2 
7 
6 
Jan 1, 1998 
Production; general molecules; electron
translation factors 
Version 
Release 
Update 
Date 
Feature 
2 
8 
1 
Jan 1, 2000 
Fortran 77; use QTIP integrals 
2 
8 
1 
Nov 1, 2000 
Fortran 90 rewrite 
Version 
Release 
Phase 
Date 
Feature 
5 
Alpha 
2 
Mar 10, 2002 
python integration; state projection;
schiff approximation; use QTIP 1.A.4 
5 
Alpha 
3 
Jul 31, 2002 
port to MIPS, Alpha, x86; use QTIP 1.A.4 
5 
Alpha 
4 
Dec 31, 2003 
new spin loops; TDA and RPA; use
QTIP 1.A.4 
5 
Alpha 
6 
Q3, 2008 
Vector HartreeFock; semiclassical
nuclear wave function; use
QTIP 1.A.4 
5 
Alpha 
5 
Q1, 2009 
semi empirical integrals; use QTIP 1.A.5 
Version 
Release 
Update 
Date 
Feature 
5 
1 
0 
TBA 
vector HartreeFock wave
function; use QTIP 1.1 
Hardware and software platforms tested
ENDyne version 2
Hardware 
OS 
Fortran 90 
SUN SPARC 
Solaris 7 
Forte 6.2 
IBM PowerPC 
AIX 4.3.3 
XLF 7.1 
SGI MIPS 
IRIX 6.5 
Compilers 7.3 

Linux RH ES 4.5 
Intel Fortran 9.1 
ENDyne version 5
Hardware 
OS 
C 
Fortran 90 
Python 
SUN SPARC 
Solaris 7/8/9 
Forte 6.2 
Forte 6.2 
2.1 

AIX 5L 5.1 
VAC 6.0 
XLF 8.1 
2.1 

Linux RH ES 4.5 
gcc 3.3 
Intel Fortran 9.1 
2.1 
Theoretical reference papers
 E. Deumens, Y. Öhrn, and
B. Weiner,
Coherent state formulation of multiconfiguration states
J. Math. Phys. 32, 11661175 (1991).
 E. Deumens, A. Diz, R. Longo and Y.
Öhrn,
Timedependent theoretical treatments of the dynamics of electrons
and nuclei in molecular systems,
Rev. of Mod. Phys., 66, 917983 (1994).

E. Deumens and Y. Öhrn,
Wave function phase space: An
approach to the dynamics of molecular systems
J. Chem. Soc. Faraday Trans., 93, 919 (1997).

Y. Öhrn and E. Deumens,
Towards an ab initio treatment of
the timedependent Schrödinger equation of molecular
systems,
J. Phys. Chem., A103, 9545 (1999).
