Elsevier Science Home
Computer Physics Communications Program Library
Full text online from Science Direct
Programs in Physics & Physical Chemistry
CPC Home

[Licence| Download | New Version Template] aehz_v1_0.tar.gz(124 Kbytes)
Manuscript Title: A Uniform Object-Oriented Solution to the Eigenvalue Problem for Real Symmetric and Hermitian Matrices
Authors: Marìa Eugenia Castro, Javier Díaz, Camelia Muñoz-Caro, Alfonso Niño
Program title: SHMatrix
Catalogue identifier: AEHZ_v1_0
Distribution format: tar.gz
Journal reference: Comput. Phys. Commun. 182(2011)2059
Programming language: Standard ANSI C++.
Computer: PCs and workstations.
Operating system: Linux, Windows.
Keywords: Eigenvalues, Eigenvectors, Object-Orientation, Real symmetric matrix, Hermitian matrix.
PACS: 02.10.Ud, 02.10.Yn, 02.60.Dc.
Classification: 4.8.

Nature of problem:
The treatment of problems involving eigensystems is a central topic in the quantum mechanical field. Here, the use of the variational approach leads to the computation of eigenvalues and eigenvectors of real symmetric and Hermitian Hamiltonian matrices. Realistic models with several degrees of freedom leads to large (sometimes very large) matrices. Different techniques, such as divide and conquer, can be used to factorize the matrices in order to apply a parallel computing approach. However, it is still interesting to have a core procedure able to tackle the computation of eigenvalues and eigenvectors once the matrix has been factorized to pieces of enough small size. Several available software packages, such as LAPACK, tackled this problem under the traditional imperative programming paradigm. In order to ease the modelling of complex quantum mechanical models it could be interesting to apply an object-oriented approach to the treatment of the eigenproblem. This approach offers the advantage of a single, uniform treatment for the real symmetric and Hermitian cases.

Solution method:
To reach the above goals, we have developed a system of classes: SHMatrix. SHMatrix is composed by an abstract base class and two descendant classes, one for real symmetric matrices and the other for the Hermitian case. The object-oriented characteristics of inheritance and polymorphism allows handling both cases using a single reference of the base class. The basic computing strategy applied in SHMatrix allows computing subsets of eigenvalues and (optionally) eigenvectors. The tests performed show that SHMatrix is competitive, and more efficient for large matrices, than the equivalent routines of the LAPACK package.

Running time:
The examples included in the distribution take only a couple of seconds to run.