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] admp_v1_0.tar.gz(85 Kbytes)
Manuscript Title: An adaptive contour code for the numerical evaluation of the oscillatory cuspoid canonical integrals and their derivatives.
Authors: N.P. Kirk, J.N.L. Connor, C.A. Hobbs
Program title: cuspint
Catalogue identifier: ADMP_v1_0
Distribution format: tar.gz
Journal reference: Comput. Phys. Commun. 132(2000)142
Programming language: Fortran.
Computer: Sun Sparc, SGI Indy, SGI Challenge.
Operating system: UNIX.
Keywords: General purpose, Cuspoid oscillatory integrals, Pearcey canonical integral, Swallowtail canonical integral, Adaptive contour numerical quadrature, Function.
Classification: 4.7.

Nature of problem:
The theoretical treatment of short wavelength scattering phenomena often involves the uniform asymptotic evaluation of oscillating integrals with several coalescing saddle points. An important practical problem then is the numerical evaluation of the cuspoid canonical integrals and their first order partial derivatives.

Solution method:
A robust Fortran 90 code has been developed in which the integration path along the real axis is replaced by a contour in the complex plane, one which is more suitable for a numerical quadrature [1]. Results for the cusp and swallowtail canonical integrals are presented.

Unusual features:
The code has the novel feature that the algorithm implements an adaptive contour procedure, which chooses contours that avoid the violent oscillatory and exponential natures of the integrand. Modifications to the coutour are made by exploiting the powerful error reporting facilities of subroutine D01AKF in the NAG Program Library [2] or subroutine DQAG and dependencies in the QUADPACK Program Library [3].

Running time:
The code takes a few seconds on a Sun Sparc Ultra 2 Workstation to compute the cusp (Pearcey) canonical integral, P(x,y), and its derivatives, deltaP(x,y)/deltax and deltaP(x,y)/deltay, on the grid x = -8.0 (2.0) 8.0 and y = 0.0 (2.0) 8.0; see Section 5 (Long Write-up).

[1] J.N.L. Connor, P.R. Curtis, A method for the numerical evaluation of the oscillatory integrals associated with the cuspoid catastrophes: application to Pearcey's integral and its derivatives, J. Phys. A, 15 (1982) 1179-1190.
[2] Numerical Algorithms Group, Fortran Library Manual, Mark 16, Vol. 1, subroutine D01AKF, (NAG, Oxford, 1993).
[3] R. Piessens, E. de Doncker-Kapenga, C.W. Uberhuber, D.K. Kahaner, QUADPACK, A Subroutine Package for Automatic Integration, (Springer, Berlin, 1983).