DRAGON (see also Version4) is a powerful tool for computing critical assemblies and nuclear reactor core cells. It's a quite complex system that features a lot of mathematical methods widely used in nuclear reactor cores computation and provides facilities to link them together so that one can describe a fair part of the computation process in terms of DRAGON commands. DRAGON uses modular structure, each module usually responsible for one part of the computation. Modules uses DRAGON-specific data containers to exchange data. At any point of the computation, user may dump data into a file for further inspection or other later usage. However, as it is common for binary files of uncommon format, they are not very convenient to work with outside of DRAGON. The package presented here provides easy access to data stored in DRAGON files from shell as well as other programs and scripts.
In general, DRAGON uses hash tables to store arrays of numbers representing the
actual data. Hash tables keys are ordinary strings up to 12 characters long.
Hash tables may form an hierarchy when one hash table is a value of a key from
the other hash table. The overall result is very similar to file system with
hash tables as directories and hash tables keys as file names. This has inspired
the creation of dragfs
program. It uses FUSE library to mount a DRAGON
file making its contents available as a part of the filesystem used on the
computer. User can change the contents of the DRAGON file by means of ordinary
Unix tools such as cp
, file editing, shell redirection, etc. Two programs,
dragcat
and dragput
, are provided to help with text ↔ binary
conversion.
For example, to merge two isotope libraries into one, the work usually
performed by DRAGON NJOY module dragr
, the following set of commands may be
used:
# create mount points
mkdir /tmp/{1,2}
# mount files
mount.dragfs file1 /tmp/1
mount.dragfs file2 /tmp/2
# copy data
cp -r /tmp/2/* /tmp/1
# unmount files and save changes
fusermount -u /tmp/2
fusermount -u /tmp/1
For a more robust implementation, see this script.
There are a few unfortunate limitations which are not common to other file
systems. Most unconvenient are that the file name cannot be more than 12
characters long and it is not possible to remove files (delete arrays) already
present on the DRAGON file. See dragfs
man page for a complete list.
The current version is accessible via the following link:
You may get the current development version from git with the following command:
git clone git://jini-zh.org/dragfs
To compile the program, just issue make
in its directory. You will need the
following libraries:
You may want to supply GANLIB
parameter to make
to specify where your GANLIB
library is. See INSTALL for details.
I do not work with DRAGON anymore, so the development of this program is stopped. Patches, feature requests and bug reports are still welcome though.