EAS3 is a software toolkit for reading and writing structured binary data with geometry information and for postprocessing of these data. It is meant to exchange floating-point data according to IEEE standard between different computers, to modify them or to convert them into other file formats. It can be used for all kinds of structured data sets. It is mainly used in the field of direct numerical simulations.
EAS3 package
The complete package consists of libraries intended for usage in own codes and a separate command-line tool. It is written in Fortran and C and runs on all POSIX operating systems. The libraries include different numerical algorithms and subroutines for reading and writing files in the binary EAS3 file format. The read/write routines are provided in Fortran and C. Implemented numerical methods include, for example, Fast Fourier transform, Thomas algorithm and interpolation routines. The libraries are also suitable for vector computers.
History
EAS3 has been developed at the Institut für Aerodynamik und Gasdynamik of the University of Stuttgart. The previous versions range back to the end of the 1980s, when computer power allowed the first spatial DNS computations. The upcoming amount of data required efficient handling and postprocessing. Typically, simulations were, and are still today, performed on a high-performance computer and afterwards postprocessed on other machines of opposite endianness. This required an endianness-independent file format for data handling. Since the publication of EAS3 in the 1999, the software has been developed continuously by members of the involved institutes. Since 2007, EAS3 is also available via the heise software directory. EAS3 is used by applications within the European PRACE project. The current version number is 1.6.7 from April, 2009.
File Format
The EAS3 file format is used to store floating point data in IEEE format and to exchange the files between different computer architectures. The data is organized as parameters with one parameter being a one-, two- or three-dimensional floating point array. Several of these parameters may be combined to one time step. This allows to store five-dimensional arrays. Data can be written in single-precision, double-precision or quadruple-precision. Geometry information for the different directions are saved in the header of the file. It is also possible to store additional information in user defined arrays there. With the file size being limited only by the computer itself, EAS3 files are suitable for large simulations and thus for high-performance computing.
Functionality
The actual EAS3 executable is a command-line interface for alteration of EAS3 files. The implemented commands range from basic operations, e.g. simple computations, file operations, to rather complex operations like Fourier transformation or the computation of derivatives. Specific commands for DNS data are also available, e.g. the lambda2 vortex criterion. As the commands are read from standard input, EAS3 may be used in shell scripts for automated calls. Outline of important functions
file management: rearrangement, attaching two files, cutting
conversion to other file formats
mathematical operationes: basic operations, logarithm, etc.
The sources can be obtained directly from the CVS repository or one may download a zipped tar file. Makefiles for different machine types are included, providing an easy compilation. As linking of object files, created with different Fortran compilers can cause problems, binary packages are not offered up to now.
Advantages and disadvantages
Advantages
The main profit for the programmer is the easy implementation of reading/writing large binary data sets. The library provides that the data is always written big endian. The resulting platform independence allows data exchange between different hardware architectures, e.g. supercomputers. The users benefits from the different methods provided for postprocessing, which can be automated using shell scripts.
Disadvantages
Being specialized on structured grids may be a problem for some users. Up to now, only cartesian grids or a representation of the data in spectral space are implemented. Data in other types of data alignment, e.g. cylindrical coordinates, can be stored in EAS3 files but the existing postprocessing commands may not be used. As the usually used visualization programs do not support the EAS3 file format directly, it is often necessary to convert the data to the corresponding file format. Commands in the EAS3 program are given by a text interface, a graphical user interface does not exist. Completion of the commands in the EAS3 command line provides support for interactive usage but for an extensive help, the descriptions on the webpage are necessary.