/taurus_mix

Numerical code to perform the configuration mixing of symmetry-projected reference states by solving the Hill-Wheeler-Griffin generalized eigenvalue equation

Primary LanguageFortranGNU General Public License v3.0GPL-3.0

TAURUS_mix

DOI License: GPL v3

Presentation

We present the numerical code TAURUS_mix that performs the configuration mixing of symmetry-projected reference states to build better approximations to the eigenstates of the nuclear Hamiltonian. The correlated states thus obtained are linear superpositions of the reference states with the weights of the latter being determined by solving the Hill-Wheeler-Griffin (HWG) equation for each value of the angular momentum and parity considered. The code uses as inputs the projected matrix elements generated by the code TAURUS_pav and computes as output the matrix elements of the correlated states for the most important spectroscopic observables: energy, charge radius, electromagnetic moments and reduced transition probabilities, etc.

This code is part of the larger project TAURUS that aims at developing a numerical suite centered around the concept of symmetry-projected variational calculations and was initially supported by the the European Union’s Horizon 2020 research and innovation programme.

Compilation

We provide scripts to compile the code in two alternative ways. The first one is based on Bash scripting whereas the second one is relying on the Make compilation tool. Pick the method you prefer but be aware that we cannot guarantee that the scripts, as is, will work on your system. In particular, if it does not work we encourage you to check your compiler version (there are a few Fortran 2003/2008 commands that might not be implemented in old compilers) and the path to link the BLAS/LAPACK libraries (required).

Bash script

To compile the code, go to the main directory and enter the command

bash compile.sh FC 

where FC is the following argument

  • FC = gfortran, ifort
    Fortran compiler.

For example, to compile using the intel compiler, execute the command

bash compile.sh ifort 

The script can also be launched without any argument

bash compile.sh

In such case, the script will assume the value gfortran as argument.

If the compilation is successful, i.e. the executable file taurus_mix.exe was created and moved to the exe directory, the script will print "compilation successful." as last message. Otherwise, the script will print the message "compilation failed.". The cleaning of files and directories is automatically perfomed by the script after the compilation.

Makefile

To compile the code, go to the main directory and enter the command

make all FC= 

where FC is the same argument as above. The argument has to be entered with the name of the variable.

For example, to compile using the intel compiler, execute the command

make all FC=ifort 

The script can also be launched without any argument

make

In such case, the script will assume the recipe all and the values FC=gfortran.

To clean the directories before or after a fresh compilation, type

make clean

It will automatically remove the *.mod and *.o files in the the mod/ and obj/ subdirectories, respectively. You can also use the command make deepclean if you want to delete the directories mod/ and obj/ themselves.

Execution

To execute the code, go in the directory containing the executable file and type the command

./taurus_mix.exe < input.txt

where input.txt is the STDIN file containing the inputs parameters. The details concerning the format of STDIN can be found in the file doc/manual_input.pdf. The code also requires, in the same directory, the files containing the matrix elements of the projected states.

To simplify the execution of the code, we provide the script launch.sh that performs all the necessary steps to run a calculation. To use it, go in the main directory and type the command

bash launch.sh 

At the end of a successful run, the code will print in the STDOUT the following sentence

This is the end, my only friend, the end.

Input files

As explained above, the code will require as input files, the STDIN and the various files containing the projected matrix elements. Note that the files that contain the matrix elements for the electromagnetic transitions are optional and their absence will not block the execution of the code.

See the file extras/manual_input.pdf for more details.

Output files

During its execution, the code prints various information (e.g. norm eigenvalues for each symmetry block, expectation values for the different observables, etc.) in the STDOUT. We recommend to store the printing in a file output.txt by typing

./taurus_mix.exe < input.txt > output.txt

or

bash launch.sh > ouput.txt

Additionally, the code will produce other files containing relevant informations such as the the weights in the superposed states, the energy spectrum and electromagnetic transition probabilities, etc. The names of all the files produced during a run are recalled at the end of the STDOUT.

Examples

We provide 2 examples of simple calculations in the examples directory:

  • Configuration mixing for triaxial valence-space calculations of Mg25 with the USDB effective interaction.
  • Configuration mixing for axial no-core ab initio calculations of Ti48 with the IMRSG-evolved EM18/20 chiral Hamiltonian.

To run an example calculation, go the appropriate subdirectory and execute the script

bash launch_example.sh

The examples take less than a second to complete on a recent laptop.

These examples are somewhat trivial but can be used to become familiar with the code and check that it runs properly. In particular, for each example, we provide a file containing the expected result after a correct run of the code.

Citation

If you use this code in your research work and publications, please cite us:

Symmetry-projected variational calculations with the numerical suite TAURUS
II. Configuration mixing of symmetry-projected reference states
B. Bally, T. R. Rodríguez
Eur. Phys. J. A 60, 62 (2024)
https://doi.org/10.1140/epja/s10050-024-01271-0

Additional information

License

TAURUS_mix is licensed under GNU General Public License version 3 (see LICENSE.txt).

Funding

The project TAURUS was initially supported by the the European Union’s Horizon 2020 research and innovation programme under the Marie Skłodowska-Curie grant agreement No. 839847.
https://cordis.europa.eu/project/id/839847

Contributors

For the time being, the people that contributed to the code are:

  • Benjamin Bally (CEA Paris-Saclay)
  • Tomás R. Rodríguez Frutos (Universidad Complutense de Madrid)