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] aefq_v4_0.tar.gz(11 Kbytes)
Manuscript Title: HOTB: High precision parallel code for calculation of four-particle harmonic oscillator transformation brackets
Authors: A. Stepsys, S. Mickevicius, D. Germanas, R.K. Kalinauskas
Program title: HOTB_MPI
Catalogue identifier: AEFQ_v4_0
Distribution format: tar.gz
Journal reference: Comput. Phys. Commun. 185(2014)3062
Programming language: FORTRAN 90 with MPI extensions for parallelism.
Computer: Any computer with FORTRAN 90 compiler.
Operating system: Windows, Linux, FreeBSD, True64 Unix.
Has the code been vectorised or parallelized?: Yes, parallelism using MPI extensions.
RAM: Depending on allocated binomial and trinomial matrices and use of precision; at least 500 MB per CPU core.
Supplementary material: Tables showing timing statistics for 3HOB and 4HOB are available.
Keywords: Mathematical methods in physics, Algebraic methods, Nuclear shell model.
PACS: 03.65.Fd, 21.60.Cs.
Classification: 17.17.

Does the new version supersede the previous version?: Yes

Nature of problem:
Calculation of matrices of three-particle harmonic oscillator brackets (3HOB) and four-particle harmonic oscillator brackets (4HOB) in a more effective way, which allows us to calculate a matrix of the brackets up to a few hundred times more rapidly and more accurately than in a previous version.

Solution method:
Using external parallelization libraries and mutable precision we created a pack of numerical codes based on the methods of compact expressions of the three and four-particle harmonics oscillator brackets 3HOB, 4HOB, presented in [3].

Reasons for new version:
The new program version expands the limits of harmonic oscillator energy quanta and gives shorter calculation time.

Summary of revisions:

1. Additional features of the new code HOTB_MPI:
(a) Extend the limits of calculation of HOB The first version was able to produce harmonic oscillator transformation brackets for three and four particles if E≤HO energy quanta. With this version of our program, if quadruple or arbitrary precision functions are being used, it is possible to calculate three and four particle harmonic oscillator transformation brackets for greater values of energy and momenta, while sustaining tolerable margin of error.
(b) Calculation time As the code of the previous version of the program was rewritten using parallelism paradigma, it is now possible to reduce the calculation time of the transformation matrices significantly, depending on the size of the computing cluster, as the dimensions of matrices are growing very rapidly according to the energy and momenta values.

2. Modifications or corrections to HOTB.
The program HOTB_MPI is written in the FORTRAN 90 language, according to formulas described in [3]. In total there are six files:
HOTB_mpi.f90, data_module.f90 , matrix_tools.f90, dp_module.f90, qd_module.f90, and fm_module.f90.
File HOTB_mpi.f90 contains the main program for executing calculations. File data_module.f90 contains a different kind of precision matrices for storage of binomial and trinomial values and also additional parameters.
Detailed descriptions of the parameters used by functions and subroutines are located in file README.txt.
File matrix_tools.f90 contains functions needed to determine the dimensions of the matrix, creation of the state array and parallel calculation of the desired matrix.
(a) matrix_tools.f90
i. subroutine matrix_4HOB_dimension
Calculates the dimension of 4HOB matrix.
ii. subroutine matrix_3HOB_dimension
Calculates the dimension of 3HOB matrix.
iii. subroutine matrix_3HOB
Calculates the global state array array which is used in parallel calculation of 3HOB matrix.
iv. subroutine matrix_4HOB
Calculates the global state array which is used in parallel calculation of 4HOB matrix.
v. subroutine state_array_3HOB
Creates state array for 3HOB matrix output.
vi. subroutine state_array_4HOB
Creates state array for 4HOB matrix output.
vii. subroutine calculate_3HOB
Performs parallel calculations of 3HOB matrix.
viii. subroutine calculate_4HOB
Performs parallel calculations of 4HOB matrix.

*_module.f90 files contain modules for calculations respectively to the precision that is going to be used. We describe only functions of module dp_module.f90 as other modules are created replicating the structure of dp_module, except arbitrary precision module, which has several functions which will be described below.
The naming convention for qd_module and fm_module is the same except that respectively qd_ and fm_ prefix is added to function names.
(a) dp_module.f90
i. double precision function dp_4HOB
Calculates matrix element for 4HOB.
ii. subroutine dp_binom
Fills the array of binomial coefficients.
iii. subroutine dp_trinom
Fills the array of trinomial coefficients.
iv. integer function tri
Function for triangle condition testing.
v. double precision function dp_c6j
Function for 6-j coefficient calculation.
vi. double precision function dp_c9j
Function for 9-j coefficient calculation.
vii. double precision function dp_kl0
Function for Clebsch-Gordan coefficient with zero projection calculation.
viii. double precision function dp_g
Function for gamma element calculation.
ix. double precision function dp_3HOB
Calculates three particle harmonic oscillator transformation bracket.

Additional functions located in fm_module.f90, which are required for arbitrary precision calculation:
(a) fm_module.f90
i. type(fm) function binomas
Function for calculation of binomial value using FMLIB function Binomial.
ii. type(fm) function access_binom
Function for accessing triangular binomial matrix fm_bin.
iii. type(fm) function check_bin
Function for checking if required binomial value is located in matrix fm_bin. If not, the value is calculated using FMLIB function Binomial.
iv. subroutine write_binom
Function for writing calculated binomial value to triangular matrix fm_bin.

Table 1. Calculation Time for 3HOB matrices. Here E means HO energy; L is angular momentum; DP, QD and FM are precisions of calculation in cases of double, quadrupole and arbitrary precision correspondingly. Calculations were performed with supercomputer Triolith [4], using 2 nodes (32 cores of Intel Xeon E5-2660 'Sandy Bridge' processors at 2.2GHz) and 10 GB RAM per node for DP and QD programs and 20 GB of RAM for FM. We used 35 decimal digits of mantissa for arbitrary precision (FM) program. The mantissa of quadruple precision is approximately 34 decimal digits.

Table 2. Calculation time for 4HOB matrices. Here E means HO energy quanta; L is angular momentum value; DP, QD and FM are precisions of calculation in cases of double, quadrupole and arbitrary precision correspondingly. Calculations were performed with supercomputer Triolith [4], using 2 nodes (32 cores of Intel Xeon E5-2660 'Sandy Bridge?' processors at 2.2GHz) and 10 GB RAM per node for HO energy quanta in range [2,10). For HO energy quanta in range [10,14] we used 8 nodes and 10 GB RAM per node. We used 50 decimal digits of mantissa for arbitrary precision (FM) program. The mantissa of quadruple precision is approximately 34 decimal digits.

For the double precision version the calculations can be done up to harmonic oscillator (HO) energy quanta e=28. For quadruple precision mantissa is equal to approximately 34 decimal digits, therefore calculations can be done up to HO energy quanta to e=52.

Running time:
The running time depends on the harmonic oscillator energy quanta, the cluster size and the precision of intermediate calculations. For more information see Table. 1 for 3HOB and Table. 2 for 4HOB. These tables can be downloaded from the "Supplementary material" section above.

[1] D. Germanas, R.K. Kalinauskas, S. Mickevičius,Calculation of four- particle harmonic-oscillator transformation brackets, Computer Physics Communications 181,Issue 2 420-425 (2010).
[2] http://myweb.lmu.edu/dmsmith/fmlib.html
[3] G.P Kamuntavicius, R.K. Kalinauskas, B.R. Barrett, S. Mickevičius, D. Germanas, The general harmonic-oscillator brackets: compact expression, symmetries, sums and Fortran code, Nucl. Phys. A 695, 191-201 (2001).
[4] https://www.nsc.liu.se/systems/triolith/