In-Memory PHASTA

From ScorecWiki

Jump to: navigation, search

This page is a gateway for information related to in-memory PHASTA.

For more info email Cameron Smith: smithc11 at rpi dot edu


Design and Implementation Reports


System requirements

  • Fortran compiler supporting Fortran 2003 iso_c_binding - tested with gfortran 4.3.2 and ifort 11.1
  • C/C++ compiler - tested with gcc 4.3.2 and icpc 11.1
  • MPI - tested with openmpi 1.3.3 (built with gcc 4.3.2) and 1.4.3 (built with icpc 11.1)
  • Autotools - If you have any doubts about what versions are installed follow these instructions to build the autotools.
  • ACUSIM Linear Algebra library - required for running the incompressible flow solver. Access to and usage of this library on SCOREC and CCNI systems is described here.
  • Simmetrix SimModSuite - required for building and running the phParAdapt library and drivers. For access send an email to Image:Emailcws.png with the subject "Access to Simmetrix Tools" with the following fields completed:
Academic or Industrial User:	 
School and Department or Company Name:	 
Brief description of interest in Simmetrix tools:

Download and build

This script only supports an initial checkout from svn and build.

Run the script with the following command to view the help message for setting the input arguments:

 chmod +x

On SCOREC systems an example set of arguments to the script using the Intel Compilers and openmpi compiler wrappers is:

 ./ /fasttmp/cwsmith/projects/inMemPhasta/intel \
    /users/cwsmith/develop/LESLIB_CCNI/lib/x86_64_linux-gcc/libles-openmpi-O.a \
    /net/common/meshSim/latest \
    openmpi /users/cwsmith/develop/tools/openmpi/openmpi-1.4.3-install \
    mpicxx mpicc mpif90 mpif90 -debug -debug 1 1



The script will exit at the first failed command. Errors will most likely occur in 'configure' or 'make'. If 'make' reports a missing header or symbol from a library check to see that the header or library exists in the directory specified in the configure script.


Run time stack-overflow errors may occur. There is no specific symptom, or error message, that will indicate that a stack-overflow is the source of the run time error, but if you encounter a segmentation fault or otherwise strange errors it is recommended that you either recompile phSolver with


if compiling with Intel FORTRAN compilers. This page discusses the use of the Intel '-heap-arrays' flag and using 'ulimit'; note that changing ulimit is discouraged. If compiling with GNU FORTRAN compilers the default is to place arrays over the size limit specified by '-fmax-stack-var-size=n' on the heap. If compiling with PGI FORTRAN the flag '-Mnorecursive' (see should disable placing arrays on the stack.

Fortran Compiler Flags for Debugging

Useful Fortran (FCFLAGS and/or FFLAGS) debugging flags are listed below.


When using the Intel 11.1 ifort compiler passing the following flags will catch runtime errors:

 -g -debug -O0 -traceback -fpe-all=0 -check all

See the ifort user guide for details.

With these settings there are functions called by the LesLib library which will trigger floating point underflow exceptions. In most cases these can be safely ignored. See the following comment on the intel forums. These flags were tested on AMD hardware; on Intel hardware the behavior may be different.


When using the PGI 12.3 pgf90 compiler passing the following flags will check array bounds and activate floating point overflow, divide-by-zero, and invalid operation exceptions:

 -g -O0 -traceback -Ktrap=inv,divz,ovf -Mbounds

See PGI Documentation

Personal tools