Abstract
The applicability of nuclear ab initio calculations has rapidly extended over the past decades. However, starting research projects is still challenging due to the required numerical expertise in the generation of underlying nuclear interaction matrix elements and manybody calculations. To ease the first issue, in this paper we introduce the numerical code NuHamil to generate the nucleonnucleon (NN) and threenucleon (3N) matrix elements expressed in a spherical harmonicoscillator basis, inputs of manybody calculations. The groundstate energies for the selected doubly closed shell nuclei are calculated with the nocore shellmodel (NCSM) and inmedium similarity renormalization group (IMSRG). The code is written in modern Fortran, and OpenMP+MPI hybrid parallelization is available for the 3N matrixelement calculations.
Similar content being viewed by others
Avoid common mistakes on your manuscript.
1 Program summary
Program title: NuHamil Licensing provisions: GPLv3 Programming language: Modern Fortran Repository and DOI: https://github.com/TakayukiMiyagi/NuHamilpublic DOI:https://doi.org/10.5281/zenodo.7529481
Description of problem: Nucleonnucleon (NN) and threenucleon (3N) matrix elements are essential inputs in nuclear ab initio calculations. However, developing a numerical code to generate the matrix elements is a demanding task. Preparing the input matrix elements is one of the main barriers to begin studies.
Method of solution: The NuHamil code has the capa bility to generate both NN and 3N matrix elements expressed in a singleparticle harmonicoscillator (HO) basis, which can be used as inputs for most of the ab initio calculation methods. The jobs can be managed by a simple Python script.
Additional comments: For other opensource software, one can use the computational environment for nuclear structure (CENS) [1] and recently published NuclearToolkit code [2].
2 Introduction
The dynamics of the atomic nucleus are governed by the strong interaction, whose fundamental theory is described by quantum chromodynamics (QCD). Since the quarks are tightly confined in a nucleon, it is well established that nuclear Hamiltonians associated with the interactions between nucleons are a good starting point to understand nuclear structure and reactions. The study of nuclear interaction models has a long story starting from the pionexchange theory [3]. The quantitative understanding of nuclear interactions is an open problem. In the past decade, interactions based on chiral effectivefield theory (EFT) [4, 5] have become the standard starting point of ab initio manybody calculations. Chiral EFTbased interactions have several advantages over other interactions such as AV18 [6] and CDBonn potentials [7]. For example, a systematic expansion is possible by ordering the diagrams according to the power counting, suggesting the possibility of an uncertainty quantification due to the truncation in the expansion [8,9,10,11]. Further, manynucleon interactions naturally appear at higher order, explaining the hierarchy of manybody terms. In nuclear physics, it is well known that 3N interactions play an important role (see for example Ref. [12] as a recent review). With the progress in nuclear interactions and methodological developments in manybody problems, nuclear ab initio studies are well motivated. Nowadays, the applicability extends over the nuclear chart [13] and recently reached to the heaviest known doublymagic system \(^{208}\)Pb [14], and further applications are expected.
To perform ab initio calculations, the matrix elements of nuclear Hamiltonians (and relevant operators) are essential. However, developing a numerically efficient code for the matrixelement generation requires expert knowledge and can be a barrier for those entering the field. The goal of the NuHamil code is to provide a simple way to generate NN and 3N matrix elements expressed in a spherical HO basis, applicable for basisexpansion methods, such as the nocore shell model (NCSM) [15], coupledcluster method [16], selfconsistent Green’s function method [17], inmedium similarity renormalization group [18] approach, and manbody perturbation theory [19]. The code currently supports the input formats of the opensource BIGSTICK [20] and imsrg++ [21] codes for the NCSM and IMSRG calculations, respectively.
This paper is organized as follows. In Sect. 2, we clarify the input NN and 3N matrix elements for the manybody calculations and briefly show how to compute them with the singleparticle product state in the HO basis. Also, we discuss the freespace similarity renormalization group (SRG) prescription to soften the nuclear interactions in Sect. 3. We show some benchmark manybody calculation results with NCSM and IMSRG calculations in Sect. 4. The usage of the code and the conclusion are given in Sect. 5 and Sect. 6, respectively.
3 Matrix elements of Hamiltonian
Here, we review how the NN and 3N matrix elements enter in the manybody problem. Our numerical goal is to solve the nonrelativistic manybody Schrödinger equation \(H \vert \Psi _{n} \rangle = E_{n} \vert \Psi _{n} \rangle \), with the intrinsic Hamiltonian with up to 3N terms
Here, \({\varvec{p}}_{i}\) is the momentum vector of ith nucleon, and m is the nucleon mass. The factor \((A1)/A\) in the first term and \(T^{\textrm{NN}}_{ij}\) is from the subtraction of the centerofmass (cm) kinetic term. A is the nucleon number of the system. The terms \(V^{\textrm{NN}}_{ij}\) and \(V^{{\textrm{3N}}}_{ijk}\) are the NN and 3N interactions, respectively.
3.1 Secondquantized representation
To proceed with manybody calculations with basisexpansion methods, we begin with the expression by the second quantization. To this end, we first define creation and annihilation operators for a nucleon in an HO orbit \(\tilde{p}\): \(c^{\dag }_{\tilde{p}}\) and \(c_{\tilde{p}}\). The subscript \(\tilde{p}\) is a collective index specifying the HO orbit and defined as \(\tilde{p} = \{n_{p}, l_{p}, j_{p}, m_{p}, t_{z,p}\}\). Here, \(n_{p}\), \(l_{p}\), \(j_{p}\), \(m_{p}\), and \(t_{z,p}\) are the nodal quantum number, orbital angular momentum, total angular momentum, zcomponent of \(j_{p}\), and the zcomponent of the isospin distinguishing protons and neutrons, respectively. Note that proton (neutron) states are labeled as \(t_{z}=1/2\) (1/2). In nuclear physics, the use of an HO basis is particularly useful since the coordinate transformation coefficient is well known [22,23,24], as will be shown in later. The creation and annihilation operators satisfy the anticommutation relations
The object \(\delta _{\tilde{p}\tilde{q}}\) is defined by products of Kronecker’s delta and is written as
Applying the creation operators to the nucleon vacuum state \(0\rangle \), one can define antisymmetrized states. For example, one, two, and threenucleon states can be written as
Using the creation and annihilation operators, an arbitrary nbody operator \(O^{[n]}\) can be expressed as
The object \(O_{\tilde{p}'_{1}\cdots \tilde{p}'_{n} \tilde{p}_{1}\cdots \tilde{p}_{n}}\) is a shorthand notation for the operator matrix element \(\langle \tilde{p}'_{1}\cdots \tilde{p}'_{n}  O^{[n]}  \tilde{p}_{1}\cdots \tilde{p}_{n} \rangle \). In the same way, the Hamiltonian in Eq. (1) can be quantized as
using the matrix elements of onebody kinetic term \(T_{\tilde{p}'\tilde{p}}\), twobody kinetic term \(T^{\textrm{NN}}_{\tilde{p}'\tilde{q}'\tilde{p}\tilde{q}}\), NN interaction \(V^{\textrm{NN}}_{\tilde{p}'\tilde{q}'\tilde{p}\tilde{q}}\), and 3N interaction \(V^{{\textrm{3N}}}_{\tilde{p}'\tilde{q}'\tilde{r}'\tilde{p}\tilde{q}\tilde{r}}\).
3.2 Jcoupled scheme
The number of matrix elements defined in Eq. (8) is greatly reduced by exploiting the rotational symmetry of the Hamiltonian. To introduce a smaller set of matrix elements, we define the Jcoupled two and threebody states using the Clebsch–Gordan coefficient \(\mathcal {C}^{j_{1}j_{2}J}_{m_{1}m_{2}m_{1}+m_{2}}\):
Here, p, q, and r are the quantum number set without m, i.e. \(p = \{n_{p}, l_{p}, j_{p}, t_{z,p}\}\), and an additional Kronecker’s delta product is introduced as
Note that the factor \(\sqrt{1/(1+\delta _{pq})}\) in the twobody state is for the normalization so that we have \(\langle pq: J'M'  pq:JM \rangle = \delta _{J'J} \delta _{M'M}\). On the other hand, such normalization factor is not usually included in the threebody state. For the threebody state, one can define another state by a different angular momentum coupling order, which should be related with the Wigner’s 6jsymbol. In this paper, the first and second indices are always coupled first, and then the third index is coupled. In practical applications, we need permutations of the indices of the states to further reduce the storage requirement. For the twobody state, it is given by
Likewise, permutations of the indices in the threebody state are given by
Here, Wigner’s 6jsymbol with the standard notation [25] and \([x]=2x+1\) are introduced. With the Jcoupled states, the two and threebody matrix elements can be introduced as \(\langle p'q':J'M'  O^{[2]} pq:JM \rangle \) and \(\langle p'q'r':J_{p'q'}J'M'  O^{[3]} pqr:J_{pq}JM \rangle \), respectively. Because of the rotational invariance of the Hamiltonian, the Hamiltonian matrix is Mindependent and diagonal with respect to J and M. Therefore, we introduce a shorthand notation for the matrix elements.
Since the uncoupled matrix elements with tilde indices can be computed from the Jcoupled matrix elements, only calculating the Jcoupled matrix elements is sufficient for manybody calculations. The relation between the uncoupled and Jcoupled matrix elements are the following.
3.3 Matrix elements of kinetic terms
The onebody kinetic matrix element \(T_{p'p}\) is given by
Note that the onebody kinetic operator takes the tridiagonal form. Also, the twobody kinetic matrix element can be computed through the nonantisymmetrized Jcoupled matrix element \(\bar{T}^{\textrm{NN}, J}_{p'q'pq}\)
with the reduced matrix element of the gradient operator, which is given by
Here, the HO length parameter \(b^{2} \equiv \hbar / m\omega \) is introduced with the HO frequency \(\omega \). The antisymmetrized matrix element is obtained as
with
The main tasks remaining are to compute the matrix elements \(V^{\textrm{NN}, J}_{p'q'pq}\) and \(V^{{\textrm{3N}},J_{p'q'}J_{pq}J}_{p'q'r'pqr}\).
3.4 Nucleon–nucleon matrix elements
We begin with the NN matrix element. One might think that the matrix element can be calculated directly from the integral using the singleparticle HO wave function. It is actually done in quantum chemistry. However, this would be a computationally expensive task since functional forms of NN interactions are complicated. Instead, the Talmi–Moshinsky transformation is widely used in nuclear physics:
The quantum numbers introduced for the transformation \(N^{\textrm{NN}}_{\textrm{cm}}\), \(L^{\textrm{NN}}_{\textrm{cm}}\), n, l, S, and \(J^{\textrm{NN}}_{\textrm{rel}}\) are the NN cm radial quantum number, NN cm orbital angular momentum, relative radial quantum number, relative orbital angular momentum, total spin, and total angular momentum of the relative motion, respectively. The transformation coefficient \(T^{pqJ}_{N^{\textrm{NN}}_{\textrm{cm}}L^{\textrm{NN}}_{\textrm{cm}}nlSJ^{\textrm{NN}}_{\textrm{rel}}}\) is
In the above equation, 9jsymbol is used with the standard notation [25]. The symbol \(\langle NLnl:\Lambda \vert n_{1}l_{1}n_{2}l_{2}: \Lambda \rangle _{d}\) is the HO bracket defined with the notation in Ref. [24]. The inner summations in Eq. (31) can be performed with an efficient matrix multiplication. Note that the antisymmetrization is not taken into account here. However, it is trivial and can be done by multiplying the factor \(f_{pq}\) to Eq. (32):
The NN matrix element in the relative HO basis \(V^{SJ^{\textrm{NN}}_{\textrm{rel}}}_{n'l'nl}\) can be obtained through the integral:
with the radial HO wave function:
The gamma function \(\Gamma (x)\) and associated Laguerre polynomial \(L^{(\alpha )}_{n}(x)\) are introduced. The momentum \(\pi _{1}\) is \(\pi _{1} = \vert ({\varvec{p}}_{1}{\varvec{p}}_{2})\vert /\sqrt{2}\), consistent with the definition of the HO bracket. Note that \(\pi _{1}\) is different from the usual relative momentum definition \(p = \vert {\varvec{p}}_{1}  {\varvec{p}}_{2}\vert /2\).
The NuHamil code requires the input file for \(V^{SJ^{\textrm{NN}}_{\textrm{rel}}}_{l'l} (p',p)\) stored as a function of \(p'\) and p. Some selected interactions are given in the input_nn_files directory. The available NN interactions are LO – N\(^{4}\)LO with 500 MeV regulator cutoff by Entem–Machleidt–Nosyk [26], N\(^{3}\)LO with 500 MeV regulator cutoff by Entem–Machleidt [27], N\(^{2}\)LO\(_{\textrm{opt}}\) [28], N\(^{2}\)LO\(_{\textrm{sat}}\) [29], and \(\Delta \)full EFT series by the Gothenburg–Oak Ridge collaboration [30].
3.5 Threenucleon matrix elements
For computational reasons, the 3N matrix elements are calculated within the isospin formalism. The matrix elements with the protonneutron basis can be obtained through the JTcoupled matrix element \(V^{{\textrm{3N}}, J_{p'q'}J_{pq}J, T_{p'q'}T_{pq}T}_{p'q'r'pqr}\):
The recoupling should be done in manybody calculations, and the goal here is to obtain the JTcoupled matrix element. Note that recoupling coefficients from isospin structure have to be considered for the permutation of indices, similar to Eqs. (13)–(17).
Since the antisymmetrization of the 3N basis is more complicated than that of the NN basis, the 3N matrix element is cumbersome. The antisymmetrized basis is expressed as the linear combination of the nonantisymmetrized basis:
where E, i, and \(J^{3N}_{\textrm{rel}}\) are the HO principle quantum number, label distinguishing the states, and total Jacobi angular momentum, respectively. The collective index \(\beta \),
specifies the nonantisymmetrized basis. The quantum numbers with the subscript ‘12’, \(n_{12}\), \(l_{12}\), \(s_{12}\), \(j_{12}\), and \(t_{12}\) are for the relative motion of nucleons 1 and 2, i.e., the nodal, orbital angular momentum, spin, total angular momentum, and total isospin quantum numbers, respectively. Likewise, \(n_{3}\), \(l_{3}\), and \(j_{3}\) are the quantum numbers for the nucleon 3 with respect to the cm of the nucleons 1 and 2. Note that the principle quantum number is defined as \(E=2n_{12}+l_{12}+2n_{3}+l_{3}\). The coefficient in the linear combination \(c_{i\beta }\) can be obtained by the diagonalization of the antisymmetrizer [31, 32]:
with \({\mathcal {A}} = (1 + {\mathcal {T}}_{13}{\mathcal {T}}_{12} + {\mathcal {T}}_{12}{\mathcal {T}}_{23}{\mathcal {T}}_{12} {\mathcal {T}}_{13}{\mathcal {T}}_{23})/6\) defined with the exchange operator \({\mathcal {T}}_{ij}\) and the eigenvalue \(A_{i}\). The matrix element of the antisymmetrizer is [31, 32]
The eigenvalue problem can be separated into \(\{E, J^{{\textrm{3N}}}_{\textrm{rel}}, T\}\) blocks. Due to the overcompleteness of the nonantisymmetrized basis, the eigenvalue \(A_{i}\) is either 0 or 1, and \(A_{i}\) for the physical state has to be 1. Therefore, we always see \(N_{\textrm{A}} \le N_{\textrm{NA}}\) where \(N_{\textrm{A}}\) and \(N_{\textrm{NA}}\) are the basis numbers in the antisymmetrized and nonantisymmetrized bases within the \(\{E, J^{{\textrm{3N}}}_{\textrm{rel}}, T\}\) block, respectively. In the code, all the 3N operators are stored with the antisymmetrized basis rather than the nonantisymmetrized basis, as it is computationally easier to handle. As another option for the 3N antisymmetrization, one may apply the permutator operator to the 3N momentum state as introduced in Ref. [33].
Similarly to the NN case, the 3N matrix elements can be obtained through the threebody Talmi–Moshinsky transformation:
where \(N^{\textrm{3N}}_{\textrm{cm}}\) and \(L^{\textrm{3N}}_{\textrm{cm}}\) denote the 3N cm radial quantum number and 3N cm orbital angular momentum, respectively. The matrix element \(V^{J^{\textrm{3N}}_{\textrm{rel}}}_{E'i'Ei}\) is a shorthand notation of \(\langle E'i'J^{\textrm{3N}}_{\textrm{rel}}T \vert V \vert EiJ^{\textrm{3N}}_{\textrm{rel}}T\rangle \). The transformation coefficient is given by
with
The 12jsymbol of the first kind [25] is used. Note that \(T^{pqJ_{pq}}_{N^{\textrm{NN}}_{\textrm{cm}}L^{\textrm{NN}}_{\textrm{cm}}n_{12}l_{12}s_{12}j_{12}}\) is defined in Eq. (32), and one can find a recursive relation for the Nbody Talmi–Moshinsky transformation with the 12jsymbol and HO bracket.
A typical limit of the threebody Talmi–Moshinsky transformation is \(E_{\textrm{3max}}=16\), where \(E_{\textrm{3max}}\) is defined as \(\max (2n_{p}+l_{p}+2n_{q}+l_{q}+2n_{r}+l_{r})\). This limit does not allow us to obtain converged results for heavier systems with \(A > rsim 100\). Recently, the limit was extended to \(E_{\textrm{3max}}=28\) [34], by only computing the matrix elements relevant to the normalordered twobody (NO2B) approximation, which is widely used in basis expansion methods. For further details about the NO2B matrix elements, see Ref. [34]. The code supports this format as well.
The 3N matrix element in the Jacobi HO basis \(V^{J^{\textrm{3N}}_{\textrm{rel}}T}_{E'i'Ei}\) can be obtained from the matrix element expressed with the nonantisymmetrized basis:
with
Here, the collective index \(\alpha \) is introduced as
The momentum \(\pi _{2}\) is defined as \(\pi _{2} = \sqrt{2/3}  ({\varvec{p}}_{1}+{\varvec{p}}_{2})/2  {\varvec{p}}_{3} \). The momentumspace matrix element includes a regulator function:
The regulator function takes either a nonlocal form
a local form
or a semilocal form [35] that is not supported in the code. The code fully supports the locally regulated matrix elements at N\(^{2}\)LO in chiral EFT based on Ref. [36]. Also, a newly introduced localnonlocal regularized form, \(f_{\Lambda }=f_{\Lambda _{\textrm{local}}}f_{\Lambda _{\textrm{nonlocal}}}\) [37], is supported.
For nonlocal matrix elements, we have tried to implement along Ref. [38]. However, we found a numerical instability in the higher angular momentum partial waves, which would be related to the discussion made in Ref. [39]. For this reason, nonlocal matrix elements are not fully supported, and external input files are required. The code has the capability to read the momentumspace matrix element \(V^{J^{\textrm{3N}}_{\textrm{rel}}T}_{\chi \textrm{EFT},\alpha '\alpha }(p',q',p,q)\)^{Footnote 1} from the HDF files by Hebeler et al. [12, 40]. In the integral (45), the cubic bspline interpolation is used to capture the oscillating nature of the HO wave functions.
4 Similarity renormalization group
The momentum scales of chiral EFT interactions are significantly lower than those of the other potential models such as AV18 [6] and CDBonn [7]. However, the momentum scale is not sufficiently low to obtain converged results in the manybody calculations. To accelerate convergence, one sometimes softens nuclear interactions. Softening procedures are well summarized for example in Ref. [43]. Here, we briefly review the widely used similarity renormalization group (SRG) approach.
In the SRG, we consider a unitary transformation depending on a continuous parameter \(\alpha \):
The SRG flow equation can be obtained by differentiating both sides:
The antihermitian operator \(\eta (\alpha )\) is known as the generator of the flow equation and can be chosen flexibly [44]. The most widely used choice is \(\eta (\alpha ) = [T_\textrm{kin}, H(\alpha )]\) with the kinetic operator \(T_\textrm{kin}\), which guarantees the suppression of the coupling between low and high momenta. The flow equation (51) is integrated until the coupling is sufficiently suppressed. Since the unitary transformation does not change the eigenvalues, the SRG can be regarded as a reshuffling of the NN, 3N, and manybody sectors. In other words, the manybody interactions are induced by the SRG evolution even if the original interaction includes only NN interactions.
In practical applications, we extract the SRGevolved interactions with the subtraction method (see Ref. [41] for example). For NN, the Hamiltonian \(H_{\textrm{NN}} = T_{\textrm{NN}} + V_{\textrm{NN}}\) is evolved, and the evolved NN interaction is given as \(V_{\textrm{NN}}(\alpha ) = H_{\textrm{NN}}(\alpha )  T_\textrm{kin}\). Note that \(T_\textrm{kin}\) and \(V_{\textrm{NN}}\) are the NN kinetic and interaction operators, respectively. From the definition of the flow equation, \(V_{\textrm{NN}}(\alpha )\) reproduces the twobody observables obtained through the original interaction \(V_{\textrm{NN}}\). However, this is not true for three and manybody observables due to missing induced manybody forces, and the manybody observables have an artificial \(\alpha \) dependence, showing how much the unitarity of the transformation is broken in the manybody space. To obtain more \(\alpha \)independent result, one has to include induced 3N interaction extracted from the 3N evolution.
For 3N, the starting Hamiltonian is \(H_{\textrm{3N}} = T_{\textrm{3N}} + V^{[3]}_{\textrm{NN}}\), where \(T_{\textrm{3N}}\) is the 3N kinetic operator, and \(V_{\textrm{NN}}^{[3]}\) is the NN interaction embedded into the 3N space. Note that one can add an initial 3N term if required. The induced 3N term can be obtained as \(V_{{\textrm{3N}}, {\textrm{ind}}}(\alpha ) = H_{\textrm{3N}}(\alpha )  T_{\textrm{3N}}  V_{\textrm{NN}}^{[3]}(\alpha )\). Here, \(V_{\textrm{NN}}^{[3]}(\alpha )\) is \(V_{\textrm{NN}}(\alpha )\) obtained from the NN evolution and embedded into 3N space. As seen in the NN evolution, the 3N evolution preserves threebody observables. The same procedure can be applied for manybody terms, and the manybody evolution is needed until the \(\alpha \)dependence of the manybody observables becomes weak enough. However, in practice, even the fourbody SRG evolution is too expensive to do due to the resulting basis dimension and the cost of antisymmetrizing the basis. In the NuHamil code, the SRG evolution can be performed in the NN and 3N sectors, the current stateoftheart.
The unitary transformation can be obtained from the flow equation for the transformation operator:
However, a computationally more moderate way is used in practice, and the unitary transformation is obtained as
with the eigenstates of the original and evolved Hamiltonians:
Note that the relative phase of \(\vert \psi _{k}\rangle \) and \(\vert \psi _{k}(\alpha )\rangle \) cannot be determined in general, which affect the sign of the matrix element of the transformation operator. Since the SRG transformation does not change the wave function drastically, the relative phase is fixed such that \(\langle \psi _{k} \vert \psi _{k}(\alpha ) \rangle \ge 0\). In the same way as for the Hamiltonian, the induced threebody term of an operator can be computed in the NuHamil code as done in Ref. [45]. The end point of the flow equation is usually parametrized by the momentum scale \(\lambda = \alpha ^{1/4}\) instead of \(\alpha \), and we follow this convention.
In the code, the SRG evolution is done in a relativecoordinate HO space because the consistent evolution of the other operators is straightforward. This means that the evolution is done in the truncated HO space, and the \(N_{\textrm{max}}\) truncation is employed in the code. The \(N_{\textrm{max}}\) is defined as
The UV momentum scale in the employed \(N_{\textrm{max}}\) space is roughly estimated as \(p_{\textrm{UV}} \sim \sqrt{2 N_{\textrm{max}}m\omega }\) [46], and we expect that the \(N_{\textrm{max}}\) should be increased until \(p_{\textrm{UV}}\) is sufficiently larger than the cutoff scale of the interaction, typically 500 MeV. Although we can take sufficiently large \(N_{\textrm{max}}\) for the NN evolution,^{Footnote 2} the 3N \(N_{\textrm{max}}\) can be an issue especially in heavy nuclei calculations [34] even if the frequency conversion technique [41] is used.
5 Manybody results
Here, we show the groundstate energies for the selected doubly magic nuclei computed with the NCSM and twobody approximated IMSRG [IMSRG(2)] as a benchmark. We do not introduce the theoretical details of the manybody calculation methods. The details can be found in Refs. [15, 18, 47] and references therein. The numerical codes used here are open source; the NCSM and IMSRG are done with the BIGSTICK [20] and imsrg++ [21] codes, respectively.
In Table 1, the groundstate energies are shown, using the SRGsoftened N\(^{3}\)LO NN interaction [27], labeled by “EM500”, with and without induced 3N interaction, N\(^{3}\)LO\(_{\textrm{lnl}}\) [37], 1.8/2.0 (EM) [42], and \(\Delta \)N\(^{2}\)LO\(_\textrm{GO}\)(394) [30].
6 Program summary and specifications
The NuHamil code is written in modern Fortran. It requires a set of libraries, BLAS, LAPACK, GNU scientific library (gsl), zlib, and hdf5.
6.1 Installation
The source code can downloaded from GitHub:
Note that downloading the code in the home directory is not mandatory, but it is recommended. One needs to download the submodules, linear algebra wrapper and bspline interpolation:
The compilation can be done with the make command. The default compiler is GCC Fortran. If a user needs to use another compiler, the Makefile has to be edited appropriately. The symbolic link will be created by the make install command.^{Footnote 3} Once the directory is added to PATH, the code is ready to run.
6.2 How to run
A job submission can be controlled by a Python script, and some sample scripts are prepared in the exe directory. For example, the NN and 3N matrix elements can be generated with NuHamil_2BME.py and NuHamil_3BME.py, respectively. A Python script generates the corresponding input file for NuHamil.exe and submits the job. If an user needs to run a job manually, it can be done with
The “input.txt” is the input file based on the Fortran namelist functionality, and the file format is given the following.
6.3 Major parameters
In the NuHamil code, there are a number of input parameters. Here, we list some of the basic input parameters that the users might need to change depending on their requirements.^{Footnote 4}

rank: integer, particle number of the system.

hw: frequency of the HO basis in the unit of MeV. The typical range is \(10 \lesssim \texttt {hw} \lesssim 40\).

hw_target: target frequency for the frequency conversion technique [41]. The parameter is valid if \(\texttt {rank} > 2\). To turn off the frequency conversion, set \(\texttt {hw\_target}=1\).

emax: \(e_{\textrm{max}}=\max (2n+l)\) truncation for the output labframe HO matrix element file.

e2max: \(e_\textrm{2max}=\max (2n_{p}+l_{p}+2n_{q}+l_{q})\) truncation for the output labframe HO matrix element file. It is recommended to use \(\texttt {e2max} = 2 \times \texttt {emax}\).

e3max: \(E_{\textrm{3max}}=\max (2n_{p}+l_{p}+2n_{q}+l_{q}+2n_{r}+l_{r})\) truncation for the output 3N labframe HO matrix element file. A typical limit is \(\texttt {e3max} = 16\), and it will not work for the larger \(\texttt {e3max}\) because of the memory requirements. If only the matrix elements relevant for the NO2B approximation are needed [34], \(\texttt {e3max}=24\) would be a typical choice without MPI parallelization.

file_name_nn: file name of the output labframe NN HO matrix elements.

file_name_3n: file name of the output labframe 3N HO matrix elements.

renorm: renormalization method; “bare”, “srg”, and “Vlowk” are available. Note that the code does not support the 3N evolution for “Vlowk” option.

renorm_space2: NN interaction renormalization space; “ho” and “mom” are available. The NN renormalization procedure is done in HO(“ho”) or momentum(“mom”)space. The default is “ho”.

input_nn_file: file name of the NN interaction represented in the relative momentum space. The files are in the input_nn_files directory.

NNInt: name of the NN interaction.

N2max: \(N_{\textrm{max}}\) truncation for the NN system.

only_no2b_element: If it is set True, only the matrix elements relevant for the NO2B approximation will be computed [34].

jmax3: maximum value of the 3N Jacobi angular momentum taken into account. This has to be an integer and twice the actual angular momentum.

genuine_3bf: set True if the bare 3N interaction needs to be included. If it is set False and renorm\(=\)“srg”, the SRG induced 3N interaction will be computed.

Regulator: 3N regulator functional form. One can choose “Local” (49), “NonLocal” (48), or “LNL” [37].

RegulatorPower: power of the regulator function, i.e., n in Eqs. (48) and (49).

LECs: 5 dimensional array providing the lowenergy constants appear in N\(^{2}\)LO 3N interaction in the chiral EFT, \(\{c_{1}, c_{3}, c_{4}, c_{D}, c_{E}\}\). Note that \(c_{1}\), \(c_{3}\), and \(c_{4}\) are in units of GeV\(^{1}\), while \(c_{D}\) and \(c_{E}\) are dimensionless. For more details, see Ref. [48].

lambda_3nf_nonlocal: cutoff of the 3N nonlocal regulator, \(\Lambda _\textrm{nonlocal}\) in Eq. (48), in the unit of MeV.

lambda_3nf_local: cutoff of the 3N local regulator, \(\Lambda _\textrm{local}\) in Eq. (49), in units of MeV.
6.4 File format of input NN interactions in relative momentum space
As mentioned in Sect. 2.4, some selected NN interaction files are prepared in the input_nn_files directory. Furthermore, one can use their own momentumspace NN interaction. The file needs to be written with the binary.^{Footnote 5} The file should begin with listing the following variables:
where the 32bit integers Number_of_mesh_points, J_max, and Number_of_relative_coordinate_channels are the size of momentum mesh points, maximum total angular momentum in the relative coordinate, i.e., \({\textrm{max}}(J^{\textrm{NN}}_{\textrm{rel}})\), and the number of \([J^{\textrm{NN}}_{\textrm{rel}}, (1)^{l}, S, t_{z,p}+t_{z,q}]\) combinations written in the file, respectively. Then, one needs to write the momentum mesh points and corresponding weights for a quadrature method, which are number_of_mesh_pointsdimensional arrays with the 64bit float:
Finally, the momentumspace matrix for each \([J^{\textrm{NN}}_{\textrm{rel}}, (1)^{l}, S, t_{z,p}+t_{z,q}]\) block should be written in the following way:
Here, the 32bit integers Angular_momentum, Parity, Spin, Isospin_z_component, and Matrix_dimension correspond to \(J^{\textrm{NN}}_{\textrm{rel}}\), \((1)^{l}\), S, \(t_{z,p}+t_{z,q}\), and the size of momentumspace matrix, respectively. Note that \(t_{z,p}+t_{z,q}\) can take either of \(1\) (protonproton), 0 (protonneutron), or 1 (neutronneutron). The Momentum_space_matrix is the flattened (“Matrix_dimension”)\(^{2}\)dimensional array with the 64bit float, corresponding to \(V^{SJ^{\textrm{NN}}_{\textrm{rel}}}_{l'l} (p',p)\).^{Footnote 6} Notice that Number_of_mesh_points and Matrix_dimension are not always the same because Matrix_dimension is twice of Number_of_mesh_points for spintriplet coupled channels.
6.5 File format of nonlocal 3N matrix elements in Jacobi momentum space
As mentioned in Sect. 2.5, external input HDF5 files are needed for the nonlocal 3N matrix elements. The HDF5 files need to be prepared for each \([J^{\textrm{3N}}_{\textrm{rel}}, (1)^{l_{12}+l_{3}}, T]\) partial waves and placed in the directory (directory path)/T3_2T/J3_\(2J^{\textrm{3N}}_{\textrm{rel}}\)/PAR_\((1)^{l_{12}+l_{3}}\), e.g., HOME/3NF_matrix_elements_nonlocal_V/T3_1/J3_1/PAR_1 for the \(^{3}\)H and \(^{3}\)He groundstate channel. Each HDF5 file must include the entries Nalpha, Np, Nq, p mesh, q mesh, pw channels, and matrix elements, written as the dataset type supported in the HDF5 format. The Nalpha is the 32bit integer corresponding to the number of \(\alpha \) channels. The objects Np and Nq are also 32bit integers and the number of momentum mesh points for p and q, respectively. Note that \(\alpha \) is defined in Eq. (46). The dataset p mesh should at least have mesh point and mesh weight entries, corresponding to the pmomentum mesh points and associated weights for a quadrature method, respectively. The objects mesh point and mesh weight should be Npdimensional array with the 64bit float. The dataset q mesh is the same as p mesh except that it is for q. Regarding the dataset pw channels, it should at least include L_12, S_12, J_12, T_12, l_3, and 2*j_3 entries, which are \(l_{12}\), \(s_{12}\), \(j_{12}\), \(t_{12}\), \(l_{3}\), and \(2j_{3}\), respectively. Each entry has to be “Nalpha”dimensional array with the 32bit integer. Finally, the “matrix elements” corresponds to the 3N matrix stored as [Nalpha, Nq, Np, Nalpha, Nq, Np]dimensional array with the 32bit float.^{Footnote 7}
7 Summary and future perspective
We introduce the NuHamil code to generate NN and 3N matrix elements. The jobs can be managed with a simple Python script. The available NN interactions are LO – N\(^{4}\)LO with 500 MeV regulator cutoff by Entem–Machleidt–Nosyk [26], N\(^{3}\)LO with 500 MeV regulator cutoff by Entem–Machleidt [27], N\(^{2}\)LO\(_{\textrm{opt}}\) [28], \(N^{2}\)LO\(_{\textrm{sat}}\) [29], and \(\Delta \)full EFT series by Gothenburg–Oak Ridge collaboration [30]. The code can generate locally regulated 3N interactions [36]. Additional input files are needed for nonlocally regulated 3N interactions. The code also supports the freespace NN and 3N SRG evolution, and the consistent evolution of the other operators is implemented. The output files can be used for the NCSM calculations with the BIGSTICK code [20] and IMSRG calculations with the imsrg++ code [21].
For a comprehensive understanding of nuclear structure, interactions between a nucleus and external field should be addressed. For example the electromagnetic observables are results of the nucleusphoton interaction and are related with the multipole components of the electromagnetic current operators. Although we know that higherorder contributions are essential, see Refs. [49, 50] for example, the LO current is used in most calculations due to the complexity of the matrix element calculations. As a future development, we plan to implement the higherorder current operators, including the twobody contributions.
Data Availability Statement
This manuscript has associated data in a data repository. [Authors’ comment: The numerical code developed in this work is available in the github repository https://github.com/TakayukiMiyagi/NuHamilpublic.]
Notes
In the HDF files, the matrix elements are given in terms of the Jacobi variables p and q [12], defined as
$$\begin{aligned} p = \frac{1}{2} {\varvec{p}}_{1}  {\varvec{p}}_{2} = \sqrt{\frac{1}{2}} \pi _{1}, \end{aligned}$$and
$$\begin{aligned} q = \frac{1}{3}  {\varvec{p}}_{1}  {\varvec{p}}_{2} + 2{\varvec{p}}_{3} = \sqrt{\frac{2}{3}}{\varvec{\pi }}_{2}. \end{aligned}$$We observed that HO and momentumspace evolutions provide almost the same results. The code supports the momentumspace evolution only for NN interactions, and users can verify it.
By default the link will be created in HOME/bin.
Users can contact the author for the parameters not listed here.
For Fortran users, the file should not include any delimiters.
For further details, one can see the subroutine read_nn_mom in NNForce.F90.
Further details can be found in NNNFFromFile.F90.
References
M. HjorthJensen, T.T. Kuo, E. Osnes, Phys. Rep. 261, 125 (1995); CENS, https://github.com/ManyBodyPhysics/CENS
S. Yoshida, J. Open Source Softw. 7, 4694 (2022). https://doi.org/10.21105/joss.04694
R. Machleidt, Int. J. Mod. Phys. E 26, 1730005 (2017). https://doi.org/10.1142/S0218301317300053. arXiv:1710.07215v2
E. Epelbaum, H.W. Hammer, U.G. Meißner, Rev. Mod. Phys. 81, 1773 (2009). https://doi.org/10.1103/RevModPhys.81.1773. arXiv:0811.1338
R. Machleidt, D. Entem, Phys. Rep. 503, 1 (2011). https://doi.org/10.1016/j.physrep.2011.02.001. arXiv:1105.2919
R.B. Wiringa, V.G.J. Stoks, R. Schiavilla, Phys. Rev. C 51, 38 (1995). https://doi.org/10.1103/PhysRevC.51.38. arXiv:nuclth/9408016 [nuclth]
R. Machleidt, Phys. Rev. C 63, 024001 (2001). https://doi.org/10.1103/PhysRevC.63.024001. arXiv:nuclth/0006014 [nuclth]
E. Epelbaum, H. Krebs, U.G. Meißner, Eur. Phys. J. A 51, 53 (2015). https://doi.org/10.1140/epja/i2015150538. arXiv:1412.0142
R.J. Furnstahl, N. Klco, D.R. Phillips, S. Wesolowski, Phys. Rev. C 92, 024005 (2015). https://doi.org/10.1103/PhysRevC.92.024005
J.A. Melendez, S. Wesolowski, R.J. Furnstahl, Phys. Rev. C 96, 024003 (2017). https://doi.org/10.1103/PhysRevC.96.024003. arXiv:1704.03308
J.A. Melendez, R.J. Furnstahl, D.R. Phillips, M.T. Pratola, S. Wesolowski, Phys. Rev. C 100, 044001 (2019). https://doi.org/10.1103/PhysRevC.100.044001. arXiv:1904.10581
K. Hebeler, Phys. Rep. 890, 1 (2021). https://doi.org/10.1016/j.physrep.2020.08.009. arXiv:2002.09548
H. Hergert, Front. Phys. 8, 1 (2020). https://doi.org/10.3389/fphy.2020.00379
B.S. Hu, W. Jiang, T. Miyagi, Z.H. Sun, A. Ekström, C. Forssén, G. Hagen, J.D. Holt, T. Papenbrock, S.R. Stroberg, I. Vernon, Nat. Phys. 18, 1196 (2022). https://doi.org/10.1038/s41567022017158. arXiv:2112.01125
B.R. Barrett, P. Navrátil, J.P. Vary, Prog. Part. Nucl. Phys. 69, 131 (2013). https://doi.org/10.1016/j.ppnp.2012.10.003
G. Hagen, T. Papenbrock, M. HjorthJensen, D.J. Dean, Rep. Prog. Phys. 77, 096302 (2014). https://doi.org/10.1088/00344885/77/9/096302. arXiv:1312.7872
V. SomÃ, Front. Phys. 8, 1 (2020). https://doi.org/10.3389/fphy.2020.00340
H. Hergert, S.K. Bogner, T.D. Morris, A. Schwenk, K. Tsukiyama, Phys. Rep. 621, 165 (2016). https://doi.org/10.1016/j.physrep.2015.12.007. arXiv:1512.06956
A. Tichai, R. Roth, T. Duguet, Front. Phys. 8, 1 (2020). https://doi.org/10.3389/fphy.2020.00164
C.W. Johnson, W.E. Ormand, K.S. McElvain, H. Shan, arXiv:1801.08432
S.R. Stroberg, https://github.com/ragnarstroberg/imsrg
M. Moshinsky, Nucl. Phys. 13, 104 (1959). https://doi.org/10.1016/00295582(59)901439
L. Trlifaj, Phys. Rev. C 5, 1534 (1972). https://doi.org/10.1103/PhysRevC.5.1534
G. Kamuntavičius, R. Kalinauskas, B. Barrett, S. Mickevičius, D. Germanas, Nucl. Phys. A 695, 191 (2001). https://doi.org/10.1016/S03759474(01)011010. arXiv:nuclth/0105009 [nuclth]
D.A. Varshalovich, A.N. Moskalev, V.K. Khersonskii, Quantum Theory of Angular Momentum (World Scientific. Singapore (1988). https://doi.org/10.1142/0270
D.R. Entem, R. Machleidt, Y. Nosyk, Phys. Rev. C 96, 024004 (2017). https://doi.org/10.1103/PhysRevC.96.024004. arXiv:1703.05454
D.R. Entem, R. Machleidt, Phys. Rev. C 68, 041001 (2003). https://doi.org/10.1103/PhysRevC.68.041001. arXiv:nuclth/0304018 [nuclth]
A. Ekström, G. Baardsen, C. Forssén, G. Hagen, M. HjorthJensen, G.R. Jansen, R. Machleidt, W. Nazarewicz, T. Papenbrock, J. Sarich, S.M. Wild, Phys. Rev. Lett. 110, 192502 (2013). https://doi.org/10.1103/PhysRevLett.110.192502. arXiv:1303.4674
A. Ekström, G.R. Jansen, K.A. Wendt, G. Hagen, T. Papenbrock, B.D. Carlsson, C. Forssén, M. HjorthJensen, P. Navrátil, W. Nazarewicz, Phys. Rev. C 91, 051301 (2015). https://doi.org/10.1103/PhysRevC.91.051301. arXiv:1502.04682
W.G. Jiang, A. Ekström, C. Forssén, G. Hagen, G.R. Jansen, T. Papenbrock, Phys. Rev. C 102, 054301 (2020). https://doi.org/10.1103/PhysRevC.102.054301. arXiv:2006.16774
P. Navrátil, B.R. Barrett, Phys. Rev. C 59, 1906 (1999). https://doi.org/10.1103/PhysRevC.59.1906
P. Navrátil, G.P. Kamuntavičius, B.R. Barrett, Phys. Rev. C 61, 044001 (2000). https://doi.org/10.1103/PhysRevC.61.044001. arXiv:nuclth/9907054 [nuclth]
W. Glöckle, The Quantum Mechanical FewBody Problem (Springer. Berlin (1983). https://doi.org/10.1007/9783642820816
T. Miyagi, S.R. Stroberg, P. Navrátil, K. Hebeler, J.D. Holt, Phys. Rev. C 105, 014302 (2022). https://doi.org/10.1103/PhysRevC.105.014302
E. Epelbaum, J. Golak, K. Hebeler, H. Kamada, H. Krebs, U.G. Meißner, A. Nogga, P. Reinert, R. Skibiński, K. Topolnicki, Y. Volkotrub, H. Witała, Eur. Phys. J. A 56, 92 (2020). https://doi.org/10.1140/epja/s10050020001022. arXiv:1907.03608
P. Navrátil, FewBody Syst. 41, 117 (2007). https://doi.org/10.1007/s0060100701933. arXiv:0707.4680
V. Somà, P. Navrátil, F. Raimondi, C. Barbieri, T. Duguet, Phys. Rev. C 101, 014318 (2020). https://doi.org/10.1103/PhysRevC.101.014318. arXiv:1907.09790
T. Fukui, L. De Angelis, Y.Z. Ma, L. Coraggio, A. Gargano, N. Itaco, F.R. Xu, Phys. Rev. C 98, 044305 (2018). https://doi.org/10.1103/PhysRevC.98.044305
D. Hüber, H. Witała, A. Nogga, W. Glöckle, H. Kamada, Few Body Syst. 22, 107 (1997). https://doi.org/10.1007/s006010050057. arXiv:9611021 [nuclth]
K. Hebeler, H. Krebs, E. Epelbaum, J. Golak, R. Skibiński, Phys. Rev. C 91, 044001 (2015). https://doi.org/10.1103/PhysRevC.91.044001. arXiv:1502.02977
R. Roth, A. Calci, J. Langhammer, S. Binder, Phys. Rev. C 90, 024325 (2014). https://doi.org/10.1103/PhysRevC.90.024325. arXiv:1311.3563
K. Hebeler, S.K. Bogner, R.J. Furnstahl, A. Nogga, A. Schwenk, Phys. Rev. C 83, 031301 (2011). https://doi.org/10.1103/PhysRevC.83.031301. arXiv:1012.3381
S.K. Bogner, R.J. Furnstahl, A. Schwenk, Prog. Part. Nucl. Phys. 65, 94 (2010). https://doi.org/10.1016/j.ppnp.2010.03.001
F. Wegner, Annalen der Physik 506, 77 (1994). https://doi.org/10.1002/andp.19945060203
T. Miyagi, T. Abe, M. Kohno, P. Navrátil, R. Okamoto, T. Otsuka, N. Shimizu, S.R. Stroberg, Phys. Rev. C 100, 034310 (2019). https://doi.org/10.1103/PhysRevC.100.034310. arXiv:1901.11106
R.J. Furnstahl, G. Hagen, T. Papenbrock, Phys. Rev. C 86, 031301 (2012). https://doi.org/10.1103/PhysRevC.86.031301. arXiv:1207.6100
S.R. Stroberg, H. Hergert, S.K. Bogner, J.D. Holt, Annu. Rev. Nucl. Part. Sci. 69, 307 (2019). https://doi.org/10.1146/annurevnucl101917021120. arXiv:1902.06154
E. Epelbaum, A. Nogga, W. Glöckle, H. Kamada, U.G. Meißner, H. Witała, Phys. Rev. C 66, 064001 (2002). https://doi.org/10.1103/PhysRevC.66.064001
S. Pastore, S.C. Pieper, R. Schiavilla, R.B. Wiringa, Phys. Rev. C 87, 035503 (2013). https://doi.org/10.1103/PhysRevC.87.035503. arXiv:1212.3375
P. Gysbers, G. Hagen, J.D. Holt, G.R. Jansen, T.D. Morris, P. Navrátil, T. Papenbrock, S. Quaglioni, A. Schwenk, S.R. Stroberg, K.A. Wendt, Nat. Phys. 15, 428 (2019). https://doi.org/10.1038/s4156701904507. arXiv:1903.00047
Acknowledgements
The NuHamil code is greatly inspired by the manyeff code by P. Navrátil and VRenormalize in the Computational Environment for Nuclear Structure (CENS) project. The code uses VODE library by G. D. Byrne and S. Thompson. The author thanks P. Navrátil, N. Shimizu, and N. Tsunoda for the discussions, optimizations, and parallelizations. The author also thanks P. Arthuis, A. Belly, M. Heinz, B. S. Hu, S. R. Stroberg, and A. Tichai for testing the code and useful feedback. This work was in part supported by JSPS KAKENHI Grant No. JP16J05707, the Program for Leading Graduate Schools, MEXT, Japan, the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) – ProjectID 279384907 – SFB 1245, and the European Research Council (ERC) under the European Union’s Horizon 2020 research and innovation programme (Grant Agreement No. 101020842). Also, the author was affiliated with TRIUMF receiving funding via a contribution through the National Research Council of Canada. The code was in part developed and tested with an allocation of computing resources on Cedar at WestGrid and Compute Canada, at the Jülich Supercomputing Center, and the Oak Cluster at TRIUMF managed by the University of British Columbia department of Advanced Research Computing (ARC).
Funding
Open Access funding enabled and organized by Projekt DEAL.
Author information
Authors and Affiliations
Corresponding author
Additional information
Communicated by Vittorio Somá.
Rights and permissions
Open Access This article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article’s Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article’s Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://creativecommons.org/licenses/by/4.0/.
About this article
Cite this article
Miyagi, T. NuHamil : A numerical code to generate nuclear two and threebody matrix elements from chiral effective field theory. Eur. Phys. J. A 59, 150 (2023). https://doi.org/10.1140/epja/s1005002301039y
Received:
Accepted:
Published:
DOI: https://doi.org/10.1140/epja/s1005002301039y