ASC Flash Center News

FLASH 3.2 Released

2009-07-02 17:00 by Paul Rich

The Flash Center is pleased to announce the release of the next
version of the FLASH code, version 3.2. FLASH 3.2 includes several new
features and resolves many bugs found in previous releases up to 3.1.1.


Capabilities added since the FLASH3.1.1 release include:

* An Unsplit Hydrodynamics Solver.

* Ability to apply the equation of state to face and scratch variables.
There are two new interfaces in the Eos unit to get and put data from the
Grid data structures which allow the Eos unit to operate on all supported
Grid data structures. The setup script is also enhanced to be able to
determine mapping between Grid data structures, and the corresponding
indices into the eosData array used by the Eos_wrapped interface. This
capability has been well tested for the cell centered variables, but
has had limited testing with face and scratch variables.

* Enhancement in the IO unit to the collective mode of operation in HDF5.
Please note that the collective mode is known to be unreliable on the BG/P
platform when used for writing the metadata describing Grid or Particles
variables. This is an issue with the MPI-IO implementation on the platform,
IBM is aware of it.

* Significant performance improvement in the algorithm to map paramesh
grid to a uniform grid which, when coupled with the multigrid solver,
permits the coarse grid exact solve at higher resolution in parallel.

* A new add-on unit to compute radiative transfer using Hybrid characteristics
is available upon request from Natalie Hinkel at Arizona State University.
The algorithm was originally developed by Erik-Jan Rijkhorst, and has since
been translated to FLASH3.

* Added logic for limiting maximum refinement, based on time or on distance
from a center (currently only for Cartesian and 2D-cylindrical geometries).
Original contributions by Sean Couch. New runtime parameters added for this.

* Fixes and improvements in Config file parsing: Now can use CONSTANT keyword
to make a runtime parameter as unmodifiable (and several code units now use
this); Now can use a range like "[ TINY ... ]" to indicate that a runtime
parameter must be positive.

* A longer list of changes is contained in the User's Guide in section 1.2,
What's New in This Release.


Issues that have become known since the FLASH3.1.1 release and have been
fixed in FLASH 3.2 include:

* A bug in the Driver unit that could leave the mesh in a non-deterministic
state upon initialization when using active particles.

* In FLASH3.1.1 we gave up on assigning unique MPI tags to messages in
various places, since this would lead to tag values exceeding the
allowed maximum of at least one MPI implementation. The change had the
undesirable effect of causing deadlocks in some tests, which we have
not been able to fully analyze. So for Paramesh4.0, we are reverting
back to the method for assigning message tags that was used before
FLASH3.1.1. (by defining PM_UNIQUE_MPI_TAGS)

* Removed a directional bias in Hydro PPM solver when "hybrid_riemann"
was used: decision for when to use the alternative Riemann solver
should depend on the cells left and right of a zone interface, not
just the right one.

* Many more issues that have been resolved are listed at
http://flash.uchicago.edu/website/codesupport/knownIssues.html .



Improvements and bug fixes since FLASH 3.1 that were already part of
release FLASH 3.1.1a include -

* Fixed mapping of active particles to the mesh. The problem was that
the mapping routines used some data from Paramesh which wasn't yet
updated, resulting in potentially undefined behavior. The solution was
to introduce a routine named
GridMain/paramesh/paramesh4/gr_ensureValidNeighborInfo.F90 which
ensures data is valid before we query internal PARAMESH data
structures. (Already in FLASH 3.1.1.)

* Fixed an additional bug in the same section of the code when
calculating the block/processor/corner IDs of neighboring blocks when
a block face touches 4 neighbors at a higher refinement level (3D
simulations only). (Already in FLASH 3.1.1.)

* Now fidlr can read PnetCDF output files without failing.

* Bugs in implementations of Balsara's algorithm for prolonging
divergence-free face-centered magnetic fields have been fixed.

* A redundancy for keeping both magnetic resistivity and magnetic
viscosity has been removed in materialProperties/MagneticResistivity
unit. Only magnetic resistivity is being used with proper scalings
in this release.

* There was a problem with overflowing MPI tag values in PARAMESH when
using certain MPI implementations. This has now been resolved in
pm4dev. The old behaviour of assigning each MPI message a unique
tag ID can be restored by defining PM_UNIQUE_MPI_TAGS pre-processor
definition in setup script call.

* There was extremely poor performance when reading particle data
from a checkpoint file on BG/P. We revert to the old contiguous
particle attribute read of FLASH 3.0 when particle fields are the same
in the checkpoint file and flash3 binary to improve performance.

* Introduced an alternative implementation of PFFT routines which map
FLASH grid data to a pencil grid
(Grid/GridSolvers/Pfft/MeshReconfiguration/PtToPt). This
implemetation uses less memory than the FLASH 3.1 implementation
(Grid/GridSolvers/Pfft/MeshReconfiguration/Collective). The PtToPt
routines make use of a file named
(flashUtilities/datastructures/linkedlist/ut_listMethods.includeF90)
which can be included in any Fortran module to construct a linked list
of user-specified node types.




The release is available at:

http://flash.uchicago.edu/website/download/

A stripped down version of FLASH3 that may be downloaded without a
license is also available at

http://flash.uchicago.edu/website/codesupport/

This version is essentially the FLASH framework without any
implementations. The Flash Center is also providing support for
"add-ons" to the code. Please see the section on "What's new in this
release" in the first chapter of the User's Guide for details.


Additionally, the FLASH testing software FlashTest, which became
available with the alpha release, continues to be available for
download at:

http://flash.uchicago.edu/website/codesupport/

Many, but not all parts of FLASH3 are backwards-compatible with
FLASH2. The Flash code group has written extensive documentation
detailing how to make the transition from FLASH2 to FLASH3 as smooth
as possible. The user should look to:

http://flash.uchicago.edu/website/codesupport/

The website also contains other documentation including
a User's Guide and a developer's section. A new feature in FLASH3
documentation is the online description of the public interface
routines to various code units.


FLASH should be portable to most UNIX-like operating systems with a
python interpreter, Fortran 90 compiler, C compiler, and MPI library.
It has been used in production mode, or undergone regular testing on
the following platforms.


-- IBM BlueGene and Power5

compilers : FORTRAN90 : xlf90

C : xlc

-- CRAY-XT4 system

compilers : FORTRAN90 : Portland Group Fortran 90

C : gcc

-- Linux

compilers: FORTRAN90 : Portland Group Fortran 90

Lahey/Fujitsu Fortran 95

Intel Fortran Compiler

gFortran (known to have trouble with versions
before 4.1.0)

NAGWare Fortran 95

Absoft

C : gcc

Portland Group C Compiler

Intel C++ Compiler

-- MAC-OSX

compilers : FORTRAN90 : xlf, gFortran

C : gcc


-- IRIX 6.5

compilers: MIPSpro

FLASH uses libraries such as MPI for communication, Paramesh
for AMR, and HDF5 or PnetCDF for IO. The source for Paramesh is
included in the distribution; the version included in this release is
equivalent to Paramesh 4.0. Some earlier versions of HDF5, for example
1.6.1, have been known to have issues with FLASH. We recommend using
version 1.6.2 or higher of the HDF5 library.

Two options are available to visualize FLASH output data. One is
Fidlr, the IDL based visualization tool included in the
distribution. Fidlr requires IDL version 6.1 or higher to work correctly.
A more extensive option is VisIt, a visualization tool from LLNL,
available from

http://flash.uchicago.edu/website/codesupport/visit and
https://wci.llnl.gov/codes/visit

Visit supports FLASH data output Format.Information on using
Visit with FLASH is contained on the website above.

Development of the FLASH Code was funded by the DOE-supported
ASC/Alliance Center for Astrophysical Thermonuclear Flashes. We
acknowledge support received from Lawrence Livermore National
Laboratory and the University of Chicago.

All publications resulting from the use of the FLASH Code must
acknowledge the ASC/Alliance Center for Astrophysical Thermonuclear
Flashes. Addition of the following text to the paper acknowledgments
will be sufficient.

"The software used in this work was in part developed by the
DOE-supported ASC/Alliance Center for Astrophysical Thermonuclear
Flashes at the University of Chicago."

Go back