News on NuShellX & NuShell
The latest news is that I have developed the formlism of MuShellX , a version of NuShellX accelerated using GPU's. This
could lead to much higher performance on a single PC
for a fraction of the cost of a multicore PC or cluster.
http://knollhouse.eu now holds the latest source codes of NuShell, NuShellX and the formalism for MuShell and MuShellX all available free without restrictions on usage, modfication or development.
A new paper on NuShellX is now available on the NuShellX page in
postscript or
pdf format.
It describes the history of the code, the formalism and methods used and gives details on the individual modules, It discusses, in detail, the inputs to the code and the options. It also has instructions for running on Linux under Wine. Finally it provides help on compiling and building the source code.
Warning on Single Particle Energies.
In order to work properly the Lanczos routines require the initial energy calculation to produce a negative result. Since the initial vector is just a random vector this requires the diagonal nn and pp matrix elements all to be negative. This can be achieved simply by ensuring that all your single particle energies are negative, or mostly negative. The problem will show up, if it does show up, as extemely negative, or overflowing negative eigenvalues. Subtracting a constant value Esp from each of your single particle energies will solve this problem. Your new eigenvalues Enew will be equal to your original eigenvalues Eorg - N x Esp = Enew, where N is the total number of nucleons, protons and neutrons. So Eorg = Enew + N x Esp.
Restrictions on Spectroscopic Factors.
Although you can calculate transition operators of the form a- and a--, only a+ and a++ are supported in the codes NuTrans (NuShell), NuTrx and NuClx (NuShellX). This does not actually restrict you. It just requires swapping the initial and final states.
Using the Environment Variables.
Most of the dimensions of the arrays in NuShell and NuShellX are determined by the codes themselves , or from information in the various files produced along the way. So with the exception that you may run out of memory you do not need to worry about array dimensions. There are some exceptions where it is not possible to calculate the required memory before the code has run. These arrays can turn out to be too small for larger calculations.
If you do meet this problem you will get an error message which gives you two options. The first option is to modify a parameter in the Fortran source code. The will tell you the name of the parameter, which file it is in, but usually it still cannot tell you what value to use but it will give you a lower limit. Using this method you have to compile and rebuild the code.
The alternative easier option is to set an environment variable to define the dimension. The message gives the environment variable's name which must be entered in UPPER CASE. It will also give the same lower limit for the value. You need to try a value greater than this lower limit. To set the environment variable (in Windows) right click on the 'My Computer' icon, choose 'Properties', the in the new window click on 'Advanced', click on 'Environment Variables'. In the 'user' area click 'Add' and in the new window enter the name of the variable exactly as printed in the message and a value about 50% bigger than the minimum. Click OK etc until the 'My Computer' window closes. Before running the code again open a new CMD shell. If it is still too small, go though the same sequence of steps but do not use 'Add' , select the variable and click 'Edit'
On Linux the environment variable should be exported in a command added to your shell resource file so that it will be set when any shell starts.
Directories
It is advisable to use a fresh directory (folder) for each calculation. If NuTRL fails it may leave a damaged file, that will be used next time you run NuTRL. It is definitely not advisable to run NuTRL and NuLnz in the the same directory, since they share the same .abz file and NuVec will not know whether to use the .lnz file or the .trl file.
Errors in 1pxn and xp1n calculations
There were a few errors in calculations that involve only one neutron or one proton in older versions. Thanks to Alex Brown for finding this. It is fixed in the V4R2 update.
Transition calculations
When calculating transitions the initial and final wavefunctions must be calculated using the same
Model Space! The new V4R2 update enforces this absolutely.
Announcements on NuShell and NuShellX
Bug reported for transition rates in closed shell nuclei. Alex Brown has reported errors in energies
for closed shell nuclei.
Version 4 Release 2.04 of NuShellX has been released. It fixes bugs in two nucleon spectroscopic factors.There are no plans continue to maintain SunShell. Version 4 of NuShellX introduces new truncation options , the details are in the NuShellX paper. NuShellX V4R2 is now a complete package that can replace NuShell.
The new Version 4 R2 paper is now available to download (use links at the top of this page).
Version 4 R2 fixes bugs and introduces new programs. The module NuDZoper will take an interaction in isospin form. It then transforms and diagonalizes the interaction using methods presented in PRC 54 (4) pp1641-1660, Oct 1996 by Marianne Defour and Andreas Zuker. It writes out a new interaction in either isospin format or np format. This can be used to remove spurious states.
A new module NuXpct can be used to calculate, for example, the matrix of T^2 between the eigenstates of your calculations. It can handle any scalar two-body operator plus diagonal single particle matrix elements or just particular two body matrix elements. NuPrtb will diagonalize the matrix NuXpct produces and can add other diagonal matrix elements. See the paper for more details.