The corresponding DIRQFAM v1.0.0
paper [1]
is located in doc directory.
The corresponding DIRQFAM v2.0.0
paper [2]
is located in doc directory.
The corresponding DIRHB
paper [3]
is located in doc directory.
Tested versions of the DIRQFAM code are located at
releases page.
The DIRQFAM code is built upon the DIRHB program package [3] for
the solution of the stationary relativistic Hartree-Bogoliubov equations for even-even open-shell
nuclei with axially symmetric quadrupole deformation. DIRQFAM complements
DIRHBZ code with the QFAM solver to calculate the multipole response for systems with
axially symmetric quadrupole deformation.
The input data are provided via the dirqfam.dat file, and are separated
into two parts: first part is the same as in Ref. [3] and determines the input parameters
for the ground state calculation, while the second part serves as an interface for QFAM parameters.
Ground state parameters (same as in Ref. [3])
-
n0f,n0b:
Number of oscillator shells used in expanding the large component of Dirac spinor (small component is expanded inn0f+1shells) and wave functions of meson fields respectively. Bothn0fandn0bmust be even numbers. Recommended value ofn0fdepends on the nucleus and one should in principle rerun the calculation with largern0fand compare the difference in output to establish whether the convergence is satisfying. Recommended value ofn0bis at least2(n0f+1). Since one very rarely uses more thann0f=24shells, we recommend fixing the value ofn0b=50, in which case one doesn't have to worry about then0bparameter. -
beta0,betai:
Deformation parameter of the oscillator basisbeta0and of the initial Woods-Saxon potentialsbetairespectively. In order to improve accuracy, these parameters should be close to the self-consistent ground state quadrupole deformation. For example, when dealing with a nucleus having deformation parameter β=+0.550, one should usebeta0=+0.550andbetai=+0.550. -
inin:
The starting parameters for the initial potentials and initial pairing field respectively. If set to1, the code starts with Woods-Saxon model as initial guess for the self-consistent potentials and with diagonal pairing field respectively. Otherwise, if set to0, the code uses the data from previous run stored indirhb.weland/ordirhb.delas starting potentials and pairing field respectively. For casual users, we recommend using the value of1. -
Even-even nuclide to be computed. Element name, followed by the mass number. If the element name has only one character, it should begin with an underscore, eg.
_C 12,_O 16and_U 238. Otherwise, for two character elements simply type e.g.Zr 100. -
Init.Gap:
Initial pairing gap (in MeV) of diagonal pairing field for protons and neutrons, relevant ifininfor pairing field is set to1. We recommend the generic value of 1 MeV. -
Force:
Acronym of the parameter set of the selected energy density functional. In current version of the code,DD-PC1andDD-ME2are available. -
icstr,betac,cquad:
The quadrupole deformation constraint control parameters. Ificstris set to0, the quadrupole constraint is not included. Ificstris set to1, then the constrained value of expected deformationbetacis imposed with the stiffness constantcquad. We recommend the value ofcquad = 0.010, but if the code fails to constrain the quadrupole moment, one should increase it keeping in mind that too large stiffness constant may disrupt the convergence of iterations. The contrained value of deformationbetacis defined as:$$\beta = \sqrt{\frac{5\pi}{9}} \frac{1}{A R_0^2} \int \rho_v(\boldsymbol{r}) (2z^2-r_\perp^2) d\boldsymbol{r} = \frac{4\pi}{3} \frac{1}{A R_0^2} \int \rho_v(\boldsymbol{r}) |\boldsymbol{r}|^2 Y_{20}(\theta,\varphi) d\boldsymbol{r},$$ where$\rho_v(\boldsymbol{r})$ is axially symmetric self-consistent ground state isoscalar-vector density, and$R_0=1.2 A^{1/3}$ fm.
Mind the alignment of input parameters, for example, parameter n0f
should be written in 5 character width after the equality sign. An example of
dirqfam.dat file is provided and the user must follow the same
alignment pattern.
QFAM parameters interface
-
Calculation type:
Value0: Free response is calculated for a given range of energies. Value1: Self-consistent response is calculated for a given range of energies. Value2: Self-consistent response is calculated for a given energy and various data are printed. Value3: Self-consistent solution is calculated along a circular contour and the contour integral is calculated. -
Include Coulomb,Include pairing:
If set to0/1, the Coulomb interaction or pairing is omitted/included both in ground state and in the QFAM calculation respectively. -
NGH,NGL:
Parameters defining the size of the Gaussian quadrature grid.NGHis the number of Gauss-Hermite nodes in z>0 direction andNGLis the number of Gauss-Laguerre nodes in r direction. One should use at leastNGH=max(n0f+1,n0b)andNGL=max(2(n0f+1),n0b). We recommend fixing these values toNGH=25andNGL=50, since one rarely uses more thann0f=24andn0b=50shells. -
Smearing gamma:
The imaginary part of the complex frequency (smearing width) given in MeV. Reasonable value is around 0.05-0.50 MeV. This parameter is relevant only if calculation type is se to0,1or2. -
Solver tolerance:
Relative residual error tolerance for GMRES solver. We recommend using the value of1.e-5, which has shown to give the strength function accurate up to 4 most significant digits. -
Arnoldi vectors:
Maximum number of Arnoldi vectors used in GMRES solver. This is the limit on the number of QFAM solver steps. We recommend using the value of70. If the GMRES solver fails to satisfy the relative residual error tolerance, we recommned increasing this value, however keep in mind that this means larger memory consumption of the program. -
J multipolarity,K multipolarity,Isospin:
Values of J, K, and T, that define the multipole excitation operator. In the current version, J value is restricted to 0 <= J <= 5. Multipolarity K should be 0 <= K <= J.Isospinselects isoscalar/isovector excitation if set to0/1respectively. -
Omega start,Omega end,Delta omega:
Parameters (MeV) that control the starting point, the ending point and the increment of the energy range over which the response is calculated. Relevant only if the calculation type is set to0or1. -
Omega print:
The energy for which the self-consistent solution is calculated if calculation type is set to2. -
Omega center,Omega radius,No. points:
Circular contour parameters used if calculation type is set to3. The contour is a circle centered atOmega centerMeV with radiusOmega radiusMeV. Number of integration points used for contour integration is selected viaNo. pointsparameter.
Mind the input format, all selected values should be aligned between
the equality sign = and the sentinel |.
The output of the calculation is divided into two parts. The first output file
dirhb.out, located in the GS_output directory, contains
the information on the ground state calculation. Detailed description of
this file can be found in [3].
The second part of the output relevant for the QFAM calculation is located
in the QFAM_output directory.
The calculated strength function is written in the strength.out file.
If calculation type is set to 3, the value of the contour integral is
also printed in strength.out.
If calculation type is set to 2, QFAM_output contains additional details
and information about the self-consistent solution obtained for a given energy Omega print.
The programming language of the DIRQFAM code is Fortran and the user
should provide an implementation of the
BLAS and
LAPACK (version 3.6.0. or higher)
linear algebra libraries.
Since the code depends heavily on zgemm, dgemm and
dgemv subroutines, the user should provide an efficient implementation
of the BLAS library. We recommend an open source implementation
OpenBLAS, or freely available
Intel® oneAPI Math Kernel Library
as a part of the Intel® oneAPI Base Toolkit.
The code is compiled by standard Makefile build automation which is set to work with the GFortran compiler.
If the user invokes make command, the
compilation of the code will produce the executable file run.
The code is then executed by invoking the ./run command.
If the user invokes make dbg, the code is compiled in debug mode
in which various additional checks are performed, and the executable file
dbg is generated. Since the executable produced
in debug mode is considerably slower, this mode should be used only for
testing and developing.
If OpenBLAS is employed, the command export OPENBLAS_NUM_THREADS=4 can be invoked
to select the number of threads used by OpenBLAS.
If Intel® oneAPI Math Kernel Library is employed, the command export MKL_NUM_THREADS=4 can be invoked
to select the number of threads used by the Intel® oneAPI Math Kernel Library.
In test directory we provide a set of input files and expected output of the program.
Each test contains an input and output subdirectory which contain the input and expected output data.
It is advisable that the user first tries to reproduce these values.
Benchmark was done using Intel® Core® i7-9750H @ 2.60GHz machine (laptop). BLAS and LAPACK are provided via Intel® oneAPI Math Kernel Library, which are forced to run using a single thread, i.e. the entire benchmark is performed using a single thread.
We select the isoscalar J=5, K=3 excitation with
Gaussian quadrature grid: NGH=25, NGL=50.
The DD-ME2 parametrization is used with n0b=50 shells, and 70
Arnoldi vectors stored in the memory are used by the GMRES solver.
The following table shows running time per QFAM iteration together with total memory usage. It takes roughly 30-60 iterations to reach self-consistency for a given excitation energy, depending on the self-consistency tolerance.
n0f |
Memory[GB] | Time[s] |
|---|---|---|
| 10 | 0.66 | 0.25 |
| 12 | 0.90 | 0.52 |
| 14 | 1.31 | 1.04 |
| 16 | 1.94 | 1.98 |
| 18 | 2.99 | 3.65 |
| 20 | 4.54 | 6.48 |
[1] A. Bjelčić, T.Nikšić, Comp. Phys. Comm. 253, 107184 (2020).
[2] A. Bjelčić, T. Nikšić, Comp. Phys. Comm. 287, 108689 (2023).
[3] T. Nikšić, N. Paar, D. Vretenar, P. Ring, Comp. Phys. Comm. 185, 1808 (2014).