/*! \mainpage EXTREMA: coordinate manipulations in PSI 3.0

\author Joseph P. Kenny, Rollin King

including code from <b>OPTKING</b>, Rollin King

<b>EXTREMA</b> provides stable optimization code for stand-alone use of the <b>PSI 3.0</b> quantum chemistry package.

<b>Current State</b>

z-matrix optimizations appear stable.
Delocalized internal coordinate capability has been added.
This code appears stable for systems which do not include linear or near-linear valence angles.  

Directions for future development:
<ul>
<li> starting from a calculated Hessian
<li> a trust radius method
<li> gdiis convergence acceleration
<li> capability for transition state searches
<li> libpsio-based checkpointing of optimization info
</ul> 

<b>References:</b>
<ul>
<li>Practical Methods of Optimization, R. Fletcher
<li>The Generation and Use of Delocalized Internal Coordinates in Geometry
Optimization, J. Baker, A. Kessi, and B. Delley, J. Chem. Phys. <b>105</b>,
192 (1996).
</ul>

<b>Linear Fragments:</b>

z-matrix coordinates using dummy atoms to avoid 180.0 degree valence angles should be 
used for any molecule with linear or near linear fragments.
Delocalized coordinate code will abort if near linear angles are detected.  
Both coordinate types will fail if angles near 180 are optimized.

<b>Notes</b>

<ul>
<li>Matrix naming convention

While Fletcher's book uses G for the Hessian matrix and H for its inverse, 
G is also frequently used as B.u.B^t, the following convention will be used 
throughout this code:
<ul>
<li>G = B.u.B^t
<li>H = hessian matrix
<li>Hi = inverse hessian matrix
</ul>

<li>Atomic units are used internally for all data.

</ul>
*/
