The E4D distribution g-zipped tar file may be downloaded here.
The E4D tutorial g-zipped tar file may be downloaded here. The tutorial tar file
should be decompressed under the E4D directory.
Most distributed-memory, high-performance computing systems operate on Unix/Linux-based operating systems. Because such systems vary in configuration, users will need to compile E4D for each individual system. E4D is provided with an installation script designed to automatically download missing software libraries and compile all of the components necessary to execute E4D in parallel. This includes the E4D executable e4d, the Message Passing Interface wrapper mpirun, the open-source mesh generation programs triangle and tetgen, and the utility program bx. Because E4D downloads missing libraries, an internet connection is required for compilation. VisIt binaries are available for several operating systems, and must be downloaded separately. E4D requires the fortran90/95 compiler gfortran, which is freely available for Unix/Linux operating systems. Other fortran90/95 compilers may be used by modifying the make files provided with the E4D distribution. E4D requires compilation on a 64-bit architecture.
Download the E4D tarball from https://e4d.pnnl.gov
Extract E4D and third-party codes:
tar -xzvf e4d_qc.tgz
This will unpack the directory e4d_qc.
Goto the directory e4d_qc/src.
Execute the build script build.bsh script with:
The script build.bsh will compile and install the third-party libraries necessary to build E4D (except gfortran) and E4D utility programs including triangle, tetgen, petsc, netcdf, and exodus. Executables necessary to run E4D are copied to e4d_qc/bin, including:
triangle: triangular mesh generation software used by E4D to build the surface boundary of the computational mesh,
tetgen: tetrahedral mesh generation software used by E4D to build the unstructured computation mesh,
bx: E4D utility file used to insert simulation and inversion results into an exodus file for visualization,
mpirun: script used to call E4D with an allocation of processors, and
e4d: main E4D program.
Compiling E4D on Windows requires the cygwin package, and is somewhat more involved than compiling on a linux/unix operating system. Cygwin is a collection of tools and libraries that enable linux functionality on a windows operating system. E4D is provided with a set of bash scripts and make files that are used to compile E4D with cygwin in the same manner as the linux compile described above.
To install cygwin, download the appropriate cygwin install script from https://cygwin.com/install.html (note the 64-bit version is required for E4D). Review the installation instructions and execute the install script. The script will initiate a graphical user interface (gui) that provides options for the installation directory, the website from which to download packages and libraries, and a list of optional packages to install. For the installation directory, choose a directory without spaces in the name, (i.e., C:\cygwin). E4D requires (at a minimum) the following packages to be installed with cygwin:
make - the GNU version of the make utility
Each of these packages can be located by entering the package names given above in the search dialog box of the package selection section of the installation gui. After choosing the packages, the installation script indicates a list of dependencies necessary for the selected list. Simply click “next” to accept the dependencies and begin the installation. When the cygwin installation completes, the install script will ask whether a cygwin icon should be placed on the desktop or start menu. Choose one or both of these to simplify initiating the cygwin terminal window.
Once cygwin is installed, download the E4D tarball from https://e4d.pnnl.gov into your cygwin home directory. For example, if cygwin was installed in C:/cygwin, your home directory is located in C:\cygwin\home\<your_user_name>.
Open a cygwin terminal by double-clicking the icon cygwin created during installation (either on your start menu or desktop or both). If you are unfamiliar with the linux terminal window, it is similar to the dos command prompt. You should automatically be in your home directory within the terminal when it is opened.
Decompress the E4D tarball by typing "tar -xvzf e4d_qc.tgz"
Within the terminal, go to the directory <e4d_dir>/src, where <e4d_dir> is the directory created from the previous step.
The cygwin build script is located in <e4d_dir>/src/build_cygwin.bsh. To execute the build script, type "./build_cygwin.bsh" on the cygwin command line.
At this point the build script will download and compile the required third-party libraries, utility routines, and the e4d executable, and place them in <e4d_dir>/bin.
Add the following lines to the file .bashrc, which is located in your home directory.
alias ls='ls -l -hF --color=tty'
Now type the command "source ~/.bashrc" from the cygwin terminal. Each of the programs necessary to execute e4d should now be visible from the command line, and will be visible with each new initiation of a cygwin terminal.
All of the files necessary to execute e4d may be created using windows tools and file managers. However, all e4d programs described in the forthcoming documentation must be executed as described from the cygwin terminal command line. Visualization may then be conducted with the windows version of VisIt, downloadable from the VisIt website. All of the files necessary to execute e4d may be created using windows tools and file managers. However, all e4d programs described in the forthcoming documentation must be executed as described from the cygwin terminal command line. Visualization may then be conducted with the windows version of VisIt, downloadable from the VisIt website.
Note that some windows text-editing programs leave hidden characters that corrupt ascii files as far as cygwin is concerned. It is important to use a linux-compatible text editor when creating e4d input files. TextPad is one example of a compatible text editor.
Many Linux-based high performance computing systems provide customized libraries, conveniently loaded and made available as modules. Because the compilation process on such systems varies, no specific instruction for compilation is given herein. However, the commands found in the build script (build.bsh) and corresponding make files provide information concerning which compilers and libraries are needed for each program.