I’ve constructed a Singularity container to run my simulations on a server following from this post but am wanting to deploy LOW-PWXS for neutron transport. While the simulation runs properly locally, running it using the container on the server yields an error: some cross section cannot be found. I’ve implemented the FLUKA cross sections into the container in the proper directory, ensured that read/execute permissions allow reading for any user yet, I can’t get rid of this error.
I understand there is no explicit support for the containerization of FLUKA. I would like to know if there are any environment variables I must set, or how I can point FLUKA to the proper cross section files.
I’ve attached the singularity definition file below.
Another curious issue, without having FLAIR installed in the container, I run into an issue compiling the user routines… I’ve dealt with this obviously by keeping the FLAIR installation but perhaps its worth mentioning.
The cross-section files only need to be located in (or symlinked) <path_to_fluka>/data/neutron/ directory, no additional setup is necessary. If you share your Docker/Singularity file we could take a look.
You can compile your custom FLUKA executable with user routines using the lfluka script. For the options run lfluka -h.
The Singularity file ought to be in the post above (but with the .inp extension). Here it is anyway!
I use fff to compile the user routines (mgdraw.f, source_newgen.f) then ldpmqmd -m fluka to link them into the complete executable. This has not been giving me trouble- simply that the LOW-PWXS card can’t seem to find the cross section files despite their being in the right spot within the Singularity container. Perhaps it’s a container quirk I don’t yet understand.
the issue is a simple permission error. It looks like when the image is built and the neutron cross-sections are extracted from the tar file, the directory set to the permission 700. This prevents the access as a normal user.
The easiest solution is to install the cross sections using the .deb package, instead of the .tar file.
Thank you. I have tried changing the permissions in the tar ball to 555, but this still doesn’t allow me to work with the cross section file via the container. I will try with the .deb file and report back!
I rebuilt the singularity container with the .deb installation and while the files seemed to be in the right place and with the right permissions, the simulation still yielded an “Error loading cross section”. Might you have another suggestion?
Unfortunately, I’m still getting the following errors:
ERROR: could not load neutron cross section for isotope Z=1 A=1 m=0 Abort called from KHPNLOAD reason Error loading neutron cross section for isotope Run stopped! STOP Error loading neutron cross section for isotope
STOP Error loading neutron cross section for isotope
I’ve made a few additions to the definition file so that my simulation scripts (python) may run in the container, but otherwise left the base form unchanged. Might this have an effect? I’ve attached the file.
you LOW-PWXS cards are missing the name of the cross-section data base to use. You need to select ENDF-VIII0 for the db option in Flair.
Alternatively you can install the JEFF-3.3 cross sections instead of the ENDF-VIII0 ones, and in this case you can leave the db option empty.
PS.: The LOW-MAT cards in your input won’t be used with the point-wise cross sections, so if you wan’t to have different temperatures for the materials, you need to use the LOW-PWXS cards to set them, using the option T.