[FLASH-USERS] FLASH3.2 Release
Klaus Weide
klaus at flash.uchicago.edu
Thu Jul 2 19:46:06 EDT 2009
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.
FLASH Code Group
More information about the flash-users
mailing list