1 / 19

The Flash Code

The Flash Code. From Applications to Design. From Design to Applications. 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. What Is the Flash Center?.

isolde
Download Presentation

The Flash Code

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. The Flash Code From Applications to Design From Design to Applications 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

  2. What 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

  3. What 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

  4. Primary Applications • X-ray bursts on neutron star surfaces • Novae • Type Ia supernovae Thecommon 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)

  5. Primary 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?

  6. Primary Applications: Examples Flame-vortex interactions Laser-driven shock instabilities R-M instability Wave breaking on white dwarfs Cellular detonation Helium burning on neutron stars Magnetic and hydrodynamic Rayleigh-Taylor instabilities Landau-Darrieus instability Type Ia supernova

  7. Primary Applications: Examples Wave breaking on white dwarfs 3-D Rayleigh-Taylor instability Flame-vortexinteractions

  8. Additional Applications Jeans instability Intracluster interactions Non-relativistic accretion onto BH Relativistic accretion onto NS

  9. The 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

  10. The 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

  11. mesh The FLASH 2+ Code: Component Model FLASH Component • 1. Meta-data (Configuration Info) • Variable/parameter registration • Variable attributes • Module requirements • Role in driver (?) • 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

  12. Source Terms Materials Gravity MHD Driver Hydro Particles I/O Vis The FLASH 2+ Code: Application Builder Configuration Tool (Setup) Database Mesh

  13. Sets solution variable descriptions in database Variable Database AMR Library (PARAMESH) Driver.f90 evolve(); timeStep(); Evolve.f90hydro3D( ); burn(); Data Flow Class accessor methods Global memory Parameter list Hydro3d.f90 computeRHS(arglist); eulerStep(arglist); Burn.f90 burner(arglist); PPM.f77 NetInt.f77 EulerStep.c The FLASH 2+ Code: Application Example Framework Standard interfaces Physics Modules (easily interchanged)

  14. Mesh Particles Visualization MHD IO Diffusion Driver Variable Database init() fill_guardcells() test_refinement() refine_derefine() init() advance() init() fill_guardcells() test_refinement() refine_derefine() init() render() init() write() init() dBaseGetData() dBasePutData() dBaseProperty() init() dBase_init() dBaseGetData() dBasePutData() dBaseProperty() Explicit Implicit constant burn Gamma point_mass iso13 Helmholtz Unsplit Split Poisson ... cool heat PPM WENO Multigrid Multipole Structure of FLASH Modules Hydro Gravity Source_terms Materials init() tstep() hydro3d() init() tstep() grav3d() init() tstep() src_terms() eos3d() eos1d() eos()

  15. IO Mesh rk3 strang steady time dep Driver uniform MPI mesh database mesh database mesh database source terms Hydro burn cool heat stir explicit implicit aprox13 ppcno delta form split unsplit AMR Gravity paramesh PPM Kurganov WENO planpar constant poisson PPM MUSCL MHD 2nd order TVD Materials Particles eos composition active passive HDF4.0 HDF5.0 f77_unf hemlholtz gamma nadozhin Runtime Visualization Solvers PVTK poisson scripted compiled multigrid multipole The FLASH 2+ Code: Directory Structure

  16. The 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

  17. Summary • 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 developer’s guide

  18. The FLASH Code: From Design to Applications Questions and Discussion

  19. The FLASH 2+ code

More Related