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] adio_v1_0.gz(84 Kbytes)
Manuscript Title: ZEBEC: a mathematical software package for computing simple zeros of Bessel functions of real order and complex argument.
Authors: P. Kravanja, O. Ragos, M.N. Vrahatis, F.A. Zafiropoulos
Program title: ZEBEC
Catalogue identifier: ADIO_v1_0
Distribution format: gz
Journal reference: Comput. Phys. Commun. 113(1998)220
Programming language: Fortran.
Computer: DEC DS5000/7012.
Operating system: ULTRIX V4.4, HPUX10.20, AIX3.2.5, SunOS5.5.1, MS-DOS.
RAM: 500K words
Word size: 32
Keywords: General purpose, Bessel functions, Simple complex zeros, Cauchy's theorem, Logarithmic residue, Integral, Method quadrature, Isolation of zeros, Computation of zeros, Generalized bisection, Method.
Classification: 4.7.

Nature of problem:
Bessel functions and their zeros or turning points are encountered in many porblems of mathematical physics, e.g. cyclic membrane vibrations, the temperature distribution in a solid cylinder or in a solid sphere, the diffraction of a plane electromagnetic wave by a conducting cylinder, quantum billiards, etc.

Solution method:
The number of zeros inside a given box is calculated by evaluating a logarithmic residue integral along the edges of this box. The longest edges of the box are then cut in half and the box is split into two equal boxes. This process is repeated until a set of boxes is obtained, each of which contains precisely one zero. The zeros are then calculated via a generalized method of bisection. The CPC Library subroutine BESSCC [2] is used.

The functions considered here are Bessel functions of the first, the second or the third kind, or their derivatives. They are of real order and complex argument. The package calculates all the simple zeros that lie inside a given box in the complex plane cut along the non-positive real axiz. The edges of this box are to be parallel to the coordinate axes. In general, we have not found any restrictions in the applicability of the package. The only restriction we have found is that, for real values of the argument greater than 25, some of the Bessel functions are not evaluated correctly through BESSCC. To overcome this problem one should use the specialized package RFSFNS [1], when looking for real zeros greater than 25, while, for computing complex zeros with real part greater than 25, BESSCC performs fine as long as the considered box used by ZEBEC does not cross the real axis.

Running time:
The running times (in seconds) for the four test runs of Section 5, are given in the following table:
                      DEC         HP           IBM         SUN          
     Test run 1     1.8 (1.3)  0.55 (0.43)     2.0 (1.0)  0.61 (0.53)    
     Test run 2   93.1 (62.8)  28.0 (22.0)   91.0 (52.0)  28.0 (24.0)    
     Test run 3  102.2 (67.3)  28.0 (22.0)   98.0 (57.0)  29.0 (24.0)    
     Test run 4   38.2 (25.6)   11.0 (8.9)   40.0 (23.0)   12.0 (9.8)    
The subroutine DTIME was used for timing on the UNIX machines. The parenthesized times have been obtained by optimizing the code using the option +O1 during compilation.

[1] Vrahatis, M.N., Ragos, O., Skiniotis, T., Zafiropoulos, F.A., and Grapsa, T.N., Comput. Phys. Commun. 92 (1995) 252.
[2] Thompson, I.J. and Barnett, A.R., Comput. Phys. Commun. 47 (1987) 245.