The Flash Center is pleased to announce the release of the new version of the FLASH code, version 4.0. FLASH4 closely follows the architecture of FLASH3. The most important changes from FLASH3 are several new capabilities in both physics solvers and infrastructure. A major part of the new physics capabilities were introduced to support simulations of high-energy-density physics (HEDP). FLASH4 also includes four significant capabilities contributed by our external users. The major new capabilities in FLASH4 that were not included in FLASH3 are (the ones marked with ** are external contributions, please see the User's Guide for references and appropriate credit for these capabilities): * 3T capabilities in the split and unsplit Hydro solvers. There is support for non-Cartesian geometry, and the unsplit solver also supports stationary rigid bodies. * Upwind biased constrained transport (CT) scheme in the unsplit staggered mesh MHD solver. * Full corner transport upwind (CTU) algorithm in the unsplit hydro/MHD solver. * Cylindrical geometry support in the unsplit staggered mesh MHD solver on UG and AMR. A couple of MHD simulation setups using cylindrical geometry. * Radiation diffusion. * Conduction. * Heat exchange. * Multi-Temperature Multi-Material Multi-Table Eos. * Opacities, ability to use hot and cold opacities. * EnergyDeposition unit with laser ray tracing, with threading for performance. * A new multipole solver. * Ability to replicate mesh for multigroup diffusion or other similar applications. * OpenMP threading of several important solvers at both coarse-grain (one block per thread) and fine-grain (threads within a block) levels. * Ability to add particles during evolution. * Limited support for Chombo as an alternative AMR mesh package. * Several new HEDP simulation setups. * Hybrid PIC. ** * Barnes-Hut-Tree based gravity solver. ** * Primordial chemistry. ** * Sink particles. ** The release also includes several new features and resolves a number of bugs found in previous releases up to 4-beta. The modifications since the 4-beta release include * The HEDP capabilities of the code have been exercised more and are therefore more robust. * Laser 3D in 2D ray tracing has been added. The code traces rays in a real 3D cylindrical domain using a computational 2D cylindrical domain and is based on a polygon approximation to the angular part. * New public interface Particles_addNew, which makes it possible to add particles to a simulation during evolution. (It has been possible to include multiple different types of particles in the same simulation since release FLASH 3.1.) * Fixed reading of particles from checkpoint in -nofbs uniform grid. * All I/O implementations now support writing/reading 0 particles and/or 0 blocks. * Support for particles and face variables in the same PnetCDF simulation. * Optimization of Initializaton. Eliminated redundant calls to orrery at simulation startup. Ability to run the orrery in a reduced communicator in order to speed up FLASH initialization. The original orrery can be restored by setting the parameter use_reduced_orrery to .false.. * Ability to avoid unnecessary calls of guard cell filling. Ability to avoid a subsequent guard cell fill when a unit declares that it only reads mesh data. It is off by default, but can be turned on by setting the parameter reduceGcellFills to .true.. There are a few other changes from the beta release : * Removed custom region code and Grid API routines. * PARAMESH4DEV has become the default Grid implementation. * PARAMESH4DEV does not need an amr_runtime_parameters file any more. The corresponding parameters are now set in a parameter file, like other FLASH runtime parameters. The following features are provided on an EXPERIMENTAL basis. They may only work in limited circumstances and/or have not yet been tested to our satisfaction. * New experimental configuration tool, "setup_alt". Intended to be a compatible replacement for "setup" with a cleaner structure. * Electron-Entropy Advection in Hydro for non-ideal Eos. * New cubic and quartic equation solvers have been added and are ready to be used. They return only real cubic and quartic roots. The routines are in the flashUtilites/general section and their names are: 'ut_cubicRealRoots' and 'ut_quarticRealRoots'. Known Limitations: * The new multipole solver is missing the ability to treat a non-zero minimal radius for spherical geometries, and the ability to specify a point mass contribution to the potential. * Usage of the Split diffusion solver in FLASH4 is only for debugging purposes and not generally recommended for usage. Split diffusion has not been tested with PARAMESH. * Some configurations of hydrodynamic test problems with Chombo grid show worse than expected mass and total energy conservation. Please see the Chombo section in Hydro chapter of the FLASH user guide for details. * We have experienced the following abort when running IsentropicVortex problem with Chombo Grid: "MayDay: TreeIntVectSet.cpp:1995: Assertion `bxNumPts != 0' failed. !!!" We have been in contact with the Chombo team to resolve this issue. * The Absoft compiler produces erroneous results with optimization in gr_markRefineDerefine routine. The results are fine without optimization. There may be other files with similar behavior, but this is the only one we are aware of. * The PG compiler fails to compile source files which contain OpenMP parallel regions that reference threadprivate data. This happens in the threaded versions of the Multipole solver and the within block threaded version of split hydro. A workaround is to remove "default(none)" from the OpenMP parallel region. * The unsplit hydro solver has an issue with preserving symmetry in non-fixed block size mode in UG. * The unsplit MHD solver doesn't support the mode "use_GravPotUpdate=.true." for 1D when self-gravity is utilized. The solver will still work if it is set to be .false. In this case the usual reconstruction schemes will be used in computing the gravitational accelerations at the predictor step (i.e., at the n+1/2 step) rather than calling the Poisson solver to compute them. * The -index-reorder setup flag does not work in all the configurations. If you wish to use it please contact the FLASH team. The release is available at: http://flash.uchicago.edu/site/flashcode/ A stripped-down version of FLASH3 that may be downloaded without a license is also available at the same site. 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. Also, a collection of stand-alone mini-apps are available for download under the general FLASH license from the same site. Additionally, the FLASH testing software FlashTest, which became available with the FLASH3 beta release, continues to be available for download at: http://flash.uchicago.edu/site/flashcode/ Many, but not all parts of FLASH4 are backwards-compatible with FLASH2. There are no architectural changes from FLASH3 to FLASH4. 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/site/flashcode/user_support/ 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/P 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 : gFortran C : gcc FLASH uses libraries such as MPI for communication, Paramesh and Chombo for AMR, HDF5 or PnetCDF for IO, and Hypre for linear solvers. The source for Paramesh 4 is included in two variants in the distribution; the versions included in this release are equivalent to Paramesh 4.0 and Paramesh 4.1, respectively. 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/site/flashcode/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, and continues to be funded by DOE NNSA and NSF. 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 Flash Center for Computational Science. 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- and NSF-supported Flash Center for Computational Science at the University of Chicago."