Bloss Eigensolver

Jun. 2012

What is it?

The Bloss package provides a parallel execution context of the block Sakurai-Sugiura eigensolver [1,2]. The block Sakurai-Sugiura method calculates interior eigenvalues of generalized eigenvalue problems, (λB - A)q = 0, for those λ in the specific region G. The region G is defined as the inside of a closed Jordan curve on the complex plane, Γ.

TOC

Eigenproblem to be solved

What you need

To use the Bloss package, you need to prepare the following routines:

  1. linear solver (ω B - A) Y = V
    (ω is a complex number located on the periphery of G; V is real/complex and multicolumn; Y is complex multicolumn)
  2. matrix multiplier Y = A.V and Y = B.V
    (V and Y are real/complex and multicolumn)
In the Sakurai-Sugiura method, a set of linear equations (and matmuls) have to be solved, though they are independent and can be processed concurrently. The Bloss package is designed to hide the cumbersome task management of the concurrent computing as much as possible. What you should do is simply to solve a linear equation for given ω and V. You can use parallel linear solvers, by using an MPI communicator provided by the package. (Actually, those communicators are generated by splitting a base communicator passed to the package.) Task handlings and pre-/post-processes are done by the package.

TOC

What can be done

Basically, three types of eigenproblems are supported:

  1. A, B are real symmetric, and B is positive definite
    → both λ and q are double
  2. A, B are real
    λ is double complex, q is double
    if cimag(z[i]) == 0, v[i] is the corresponding eigenvector.
    if cimag(z[i]) > 0, z[i+1] = z[i]* and v[i] ± I*v[i+1] are the eigenvectors.
  3. A, B are complex
    → both λ and q are double complex
In the cases (1) and (2), you can tell the package to use real V vectors to reduce the computation cost. At the step (a), the real V is anyway given in a complex array, while at the step (b), V is given as a real array.

The package is also capable to solve lambda-matrix eigenvalue problem [3], M(z) v = 0, where the matrix elements of M(z) are polynomial functions of λ. (Probably, they can be regular functions of λ.) In this case, you should solve M(ω) Y = V linear equation at the linear solve requests at the step (a). Matmul requests at the step (b) is not issued (unless you request residual calculation).

Detailed API descriptions are given in the document below.

TOC

Downloads

Package: Bloss_1.0.tar.gz (includes Bloss.pdf)
Document: Bloss.pdf

TOC

License

The Bloss package is free software: you can redistribute it and/or modify it under the terms of the Apache License, Version 2.0.

TOC

Author

T. Ikegami <t-ikegami@aist.go.jp>

TOC

References

  1. Ikegami, T., Sakurai, T. and Nagashima, U.: "A filter diagonalization for generalized eigenvalue problems based on the Sakurai-Sugiura projection method", J. Comp. Appl. Math. 233, 1927-1936 (2010).
  2. Ikegami, T. and Sakurai, T.: "Contour integral eigensolver for non-Hermitian systems: a Rayleigh-Ritz-type approach", Taiwanese J. Math. 14, 825-837 (2010).
  3. Ikegami, T., Sakurai, T. and Tadano, H.: "Parallel eigensolver for large scale non-linear systems", Proceedings of ICNAAM 2010, Rhodes, 2010/09/20.

TOC