# EAS3

EAS3 (EAS = Ein-Ausgabe-System) 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 (IAG) of the University of Stuttgart. The previous versions (EAS, EAS2) 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 (little/big endian). 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 (32 Bit), double-precision (64 Bit) or quadruple-precision (128 Bit). 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 (e.g. file system), 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 (ASCII, Covise, Tecplot)
* mathematical operationes: basic operations, logarithm, etc.
* derivatives and integration
* interpolation
* data reduction: mean values, RMS-values, etc.
* Fourier transformation: single/double, real/complex
* DNS specific: vortex criterion

## Installation

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 (RPM, .deb) are not offered up to now.

## Advantages and disadvantages
### Advantages

The main profit for the programmer is the easy implementation of reading/writing large (>2GB) 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.

## License

EAS3 is published under the MIT License. The MIT License is a free software license originating at the Massachusetts Institute of Technology (MIT). Specifically, it is a GPL-compatible permissive license, meaning that it permits reuse within proprietary software on the condition that the license is distributed with that software.

## Usage

* Transition group at the Institute of Aerodynamics and Gasdynamics (IAG) of the University of Stuttgart: http://www.iag.uni-stuttgart.de
* Computational Fluid Dynamics Laboratory of the University of Arizona: https://web.archive.org/web/19971222125309/http://cfd.ame.arizona.edu/
* Institute of Fluid Dynamics, Eidgenössische Technische Hochschule Zürich: http://www.ifdmavt.ethz.ch
* Lehrstuhl für Aerodynamik at the Technical University Munich (high-speed aerodynamics group): http://www.aer.mw.tum.de

## Related file formats

* Common Data Format (CDF)
* CGNS (CFD General Notation System)
* FITS (Flexible Image Transport System)
* GRIB (GRIdded Binary)
* Hierarchical Data Format (HDF)
* NetCDF (Network Common Data Form)
* Tecplot binary files
* XMDF (eXtensible Model Data Format)