Title: The Flash Code
1The Flash Code
From Design to Applications
From Applications to Design
- Tomek Plewa
- on behalf of almost countless contributors
- The ASCI Flash Center
- Dept. of Astronomy Astrophysics
- The University of Chicago
- July 22, 2002
http//flash.uchicago.edu
2What Is the Flash Center?
- Supported by the DOE ASCI/Alliances Program
- Over 1,000,000 p.a. budget
- 20 core researches, 30 contributors at different
levels - Access to the most advanced computer technology
- Close partners at UofC, ANL MCS, UCSC, UIUC
- Collaboration with LLNL, LANL, LBNL, Sandia, ORNL
- Links to MPA Garching, Arizona, Palermo, Torino
3What Is the FLASH Code?
- Has a modern architecture
- modular with interfaces
- configurable with parameter/variable database
- Is highly portable
- across software platforms most UNICES including
Linux - across hardware platforms MPI for intra- and
inter-box communication - scalar cache-based systems
- provides strong tests of software (operating
system, compiler, - language interoperability) and hardware
(network, storage) - parallel I/O with HDF5 for large data sets
- Can solve a broad range of problems
- adaptive mesh discretization in 3-D with
PARAMESH, compressible hydrodynamics, - MHD, SRHD, elliptic operators, explicit
diffusion, complex EOS, particle tracking
- Future developments
- extended framework through IBEAM (parallel
solvers for large linear systems) - formal interface specification (for solvers and
mesh component) - front tracking component
- elements of TSTT/CCA forums
- interoperability with other AMR software
4Primary Applications
- X-ray bursts on neutron star surfaces
- Novae
- Type Ia supernovae
- The common elements
- The underlying stars are compact
- Members of close binary systems
- Physical processes hydrodynamics, complex EOS,
gravitation, nuclear burning - Radiation hydrodynamics important at late times
- Initial conditions involve long timescales
(implicit solve) - Rapid evolution during final event (explicit
solve)
5Primary Applications Towards Understanding
- What is environment for the explosion?
- How does it form?
- What happens during the explosion?
- Where are complex elements produced?
- How big is the Universe?
- How old is the Universe?
6Primary Applications Examples
Flame-vortex interactions
R-M instability
Laser-driven shock instabilities
Wave breaking on white dwarfs
Cellular detonation
Helium burning on neutron stars
Magnetic and hydrodynamic Rayleigh-Taylor
instabilities
Type Ia supernova
Landau-Darrieus instability
7Primary Applications Examples
Wave breaking on white dwarfs
3-D Rayleigh-Taylor instability
Flame-vortex interactions
8Additional Applications
Jeans instability
Intracluster interactions
Non-relativistic accretion onto BH
Relativistic accretion onto NS
9The FLASH 2 Code at a Glance
- General description
- parallel block-structured adaptive mesh
refinement code - Solvers constantly developed
- hyperbolic hydrodynamics, MHD, and SRHD
- elliptic self-gravity
- parabolic thermal conduction
- ODE nuclear burning
- Architecture undergoes substantial changes
- modular, fine-grained, SPMD (patch-based),
efficient parallelism - cache-based scalar architectures (most of the
market) - mostly F90 with elements in C no language
restrictions - Testing one of the finest and most matured
elements - used to control development and prevent major
design flaws - compile ? run ? compare
- applied daily on several platforms, centralized
database
10The FLASH 2 Code Physics Modules
- Compressible hydro
- PPM, WENO, Tadmore central-difference
- MHD 2nd order TVD
- SRHD 2nd order Godunov, Roe solver, R-K stepping
- Source terms
- Nuclear burning variety of reaction networks
- Gravitational field
- Externally imposed
- Self-gravity (multipole, multigrid, single level
FFT) - Diffusion
- Thermal
- Conduction
11The FLASH 2 Code Component Model
- 1. Meta-data (Configuration Info)
- Variable/parameter registration
- Variable attributes
- Module requirements
- Role in driver (?)
FLASH Component
- 2. Interface Wrapper
- Exchange with variable database
- 3. Physics Module(s)
- Single patch, single proc functions
- written in any language
- Can be sub-classed
FLASH Application
driver
Collection of Flash Components
Database
12The FLASH 2 Code Application Builder
Configuration Tool (Setup)
Database
Mesh
13The FLASH 2 Code Application Example
Framework
Standard interfaces
Physics Modules (easily interchanged)
14Structure of FLASH Modules
Materials
Hydro
Source_terms
Gravity
init() tstep() hydro3d()
init() tstep() grav3d()
init() tstep() src_terms()
eos3d() eos1d() eos()
15The FLASH 2 Code Directory Structure
16The FLASH 2 Code Additional Features
- External libraries
- MPI for parallel execution
- Paramesh for adaptive discretization
- HDF5 for efficient I/O
- pVTK for remote visualization
- External tools
- Python for configuration
- gmake for code compilation
- http//flash.uchicago.edu
- Available with no major restrictions
- Looking to expand user base
- Support with short response time
17Summary
- FLASH aspires to become a community code
- FLASH is freely available
- Major emphases
- Performance
- Portability
- Testing
- Usability
- Support (secured for at least next 5 years)
- Interest, skill, and organization guarantees
success - Future FLASH
- Implicit hydro solvers Front tracking mesh
component - Solver and mesh interfaces
- FLASH component model
- FLASH developers guide
18The FLASH Code From Design to Applications
Questions and Discussion
19The FLASH 2 code