Next:
0. License
Contents
Index
FLASH User's Guide
Version 4.0-beta
February 2012 (last updated February 1, 2012)
FLASH Center for Computational Science
University of Chicago
0
. License
0
.
1
Acknowledgments in Publication
0
.
2
Full License Agreement
Contents
1
. Introduction
1
.
1
What's New in FLASH4-beta
1
.
2
Known Issues in This Release
1
.
3
About the User's Guide
I
. Getting Started
2
. Quick Start
2
.
1
System requirements
2
.
2
Unpacking and configuring FLASH for quick start
2
.
3
Running FLASH
3
. Setting Up New Problems
3
.
1
Creating a
Config
file
3
.
2
Creating a
Makefile
3
.
3
Creating a
Simulation_data.F90
3
.
4
Creating a
Simulation_init.F90
3
.
5
Creating a
Simulation_initBlock.F90
3
.
6
The runtime parameter file (
flash.par
)
3
.
7
Running your simulation
II
. The FLASH Software System
4
. Overview of FLASH architecture
4
.
1
FLASH Inheritance
4
.
2
Unit Architecture
4
.
2
.
1
Stub Implementations
4
.
2
.
2
Subunits
4
.
2
.
3
Unit Data Modules,
_init
, and
_finalize
routines
4
.
2
.
4
Private Routines: kernels and helpers
4
.
3
Unit Test Framework
5
. The FLASH configuration script (
setup
)
5
.
1
Setup Arguments
5
.
2
Comprehensive List of Setup Arguments
5
.
3
Using Shortcuts
5
.
4
Setup Variables and Preprocessing
Config
Files
5
.
5
Config
Files
5
.
5
.
1
Configuration file syntax
5
.
5
.
2
Configuration directive syntax
5
.
6
Creating a Site-specific
Makefile
5
.
7
Files Created During the
setup
Process
5
.
7
.
1
Informational files
5
.
7
.
2
Code generated by the
setup
call
5
.
7
.
3
Makefiles generated by
setup
5
.
8
Setup a hybrid MPI+OpenMP FLASH application
5
.
9
Setup a FLASH+Chombo application
5
.
9
.
1
Overview
5
.
9
.
2
Build procedure
6
. The
Flash.h
file
6
.
1
UNK
,
FACE(XYZ)
Dimensions
6
.
2
Property Variables, Species and Mass Scalars
6
.
3
Fluxes
6
.
4
Scratch Grid Vars
6
.
5
Fluid Variables Example
6
.
6
Particles
6
.
6
.
1
Particles Types
6
.
6
.
2
Particles Properties
6
.
7
Non-Replicated Variable Arrays
6
.
7
.
1
Per-Array Macros
6
.
7
.
2
Array Partitioning Macros
6
.
7
.
3
Example
6
.
8
Other Preprocessor Symbols
III
. Driver Unit
7
. Driver Unit
7
.
1
Driver Routines
7
.
1
.
1
Driver_initFlash
7
.
1
.
2
Driver_evolveFlash
7
.
1
.
3
Driver_finalizeFlash
7
.
1
.
4
Driver accessor functions
IV
. Infrastructure Units
8
. Grid Unit
8
.
1
Overview
8
.
2
GridMain
Data Structures
8
.
3
Computational Domain
8
.
4
Boundary Conditions
8
.
4
.
1
Boundary Condition Types
8
.
4
.
2
Boundary Conditions at Obstacles
8
.
4
.
3
Implementing Boundary Conditions
8
.
5
Uniform Grid
8
.
5
.
1
FIXEDBLOCKSIZE Mode
8
.
5
.
2
NONFIXEDBLOCKSIZE mode
8
.
6
Adaptive Mesh Refinement (AMR) Grid with Paramesh
8
.
6
.
1
Additional Data Structures
8
.
6
.
2
Grid Interpolation
8
.
6
.
3
Refinement
8
.
7
Chombo
8
.
7
.
1
Using Chombo in a UG configuration
8
.
7
.
2
Using Chombo in a AMR configuration
8
.
8
GridMain Usage
8
.
9
GridParticles
8
.
9
.
1
GridParticlesMove
8
.
9
.
2
GridParticlesMapToMesh
8
.
10
GridSolvers
8
.
10
.
1
Pfft
8
.
10
.
2
Poisson equation
8
.
10
.
3
Using the Poisson solvers
8
.
10
.
4
HYPRE
8
.
11
Grid Geometry
8
.
11
.
1
Understanding Curvilinear
8
.
11
.
2
Choosing a Geometry
8
.
11
.
3
Geometry Information in Code
8
.
11
.
4
Available Geometries
8
.
11
.
5
Conservative Prolongation/Restriction on Non-Cartesian Grids
8
.
12
Custom Regions
8
.
12
.
1
Quiet Start
8
.
12
.
2
Piston
8
.
13
Unit Test
9
. IO Unit
9
.
1
IO Implementations
9
.
2
Output Files
9
.
2
.
1
Checkpoint files - Restarting a Simulation
9
.
2
.
2
Plotfiles
9
.
2
.
3
Particle files
9
.
2
.
4
Integrated Grid Quantities - flash.dat
9
.
2
.
5
General Runtime Parameters
9
.
3
Restarts and Runtime Parameters
9
.
4
Output Scalars
9
.
5
Output User-defined Arrays
9
.
6
Output Grid Variables
9
.
7
Face-Centered Data
9
.
8
Output Filenames
9
.
9
Output Formats
9
.
9
.
1
HDF5
9
.
9
.
2
Parallel-NetCDF
9
.
9
.
3
Direct IO
9
.
9
.
4
Output Side Effects
9
.
10
Working with Output Files
9
.
11
Unit Test
9
.
11
.
1
Online tips for working with the IO Unit
9
.
12
Chombo
9
.
13
Derived data type I/O
10
. Runtime Parameters Unit
10
.
1
Defining Runtime Parameters
10
.
2
Identifying Valid Runtime Parameters
10
.
3
Routine Descriptions
10
.
4
Example Usage
11
. Multispecies Unit
11
.
1
Defining Species
11
.
2
Initializing Species Information in
Simulation_initSpecies
11
.
3
Specifying Constituent Elements of a Species
11
.
4
Alternative Method for Defining Species
11
.
5
Routine Descriptions
11
.
6
Example Usage
11
.
7
Unit Test
12
. Physical Constants Unit
12
.
1
Available Constants and Units
12
.
2
Applicable Runtime Parameters
12
.
3
Routine Descriptions
12
.
4
Unit Test
V
. Physics Units
13
. 3T Capabilities for Simulation of HEDP Experiments
14
. Hydrodynamics Units
14
.
1
Gas hydrodynamics
14
.
1
.
1
Usage
14
.
1
.
2
The piecewise-parabolic method (PPM)
14
.
1
.
3
The unsplit hydro solver
14
.
1
.
4
Multitemperature extension for Hydro
14
.
1
.
5
Chombo compatible Hydro
14
.
2
Relativistic hydrodynamics (RHD)
14
.
2
.
1
Overview
14
.
2
.
2
Equations
14
.
2
.
3
Relativistic Equation of State
14
.
2
.
4
Additional Runtime Parameter
14
.
3
Magnetohydrodynamics (MHD)
14
.
3
.
1
Description
14
.
3
.
2
Usage
14
.
3
.
3
Algorithm: The Eight-wave Solver
14
.
3
.
4
Algorithm: The Unsplit Staggered Mesh Solver
14
.
3
.
5
Non-ideal MHD
15
. Equation of State Unit
15
.
1
Introduction
15
.
2
Gamma Law and Multigamma
15
.
2
.
1
Ideal Gamma Law for Relativistic Hydrodynamics
15
.
3
Helmholtz
15
.
4
Multitemperature extension for Eos
15
.
4
.
1
Gamma
15
.
4
.
2
Multigamma
15
.
4
.
3
Tabulated
15
.
4
.
4
Multitype
15
.
5
Usage
15
.
5
.
1
Initialization
15
.
5
.
2
Runtime Parameters
15
.
5
.
3
Direct and Wrapped Calls
15
.
6
Unit Test
16
. Local Source Terms
16
.
1
Burn Unit
16
.
1
.
1
Algorithms
16
.
1
.
2
Reaction networks
16
.
1
.
3
Detecting shocks
16
.
1
.
4
Energy generation rates and reaction rates
16
.
1
.
5
Temperature-based timestep limiting
16
.
2
Ionization Unit
16
.
2
.
1
Algorithms
16
.
2
.
2
Usage
16
.
3
Stir Unit
16
.
4
Energy Deposition Unit
16
.
4
.
1
Ray Tracing in the Geometric Optics Limit
16
.
4
.
2
Laser Power Deposition
16
.
4
.
3
Algorithmic Implementation of the Ray Tracing
16
.
4
.
4
Setting up the Laser Pulse
16
.
4
.
5
Setting up the Laser Beam
16
.
4
.
6
Setting up the Rays
16
.
4
.
7
Usage
16
.
4
.
8
Unit Test
16
.
5
Heatexchange
16
.
5
.
1
Spitzer Heat Exchange
17
. Diffusive Terms
17
.
1
Diffuse Unit
17
.
1
.
1
Diffuse Flux-Based implementations
17
.
1
.
2
General Implicit Diffusion Solver
17
.
1
.
3
Flux Limiters
17
.
1
.
4
Stand-Alone Electron Thermal Conduction
18
. Gravity Unit
18
.
1
Introduction
18
.
2
Externally Applied Fields
18
.
2
.
1
Constant Gravitational Field
18
.
2
.
2
Plane-parallel Gravitational field
18
.
2
.
3
Gravitational Field of a Point Mass
18
.
3
Self-gravity
18
.
3
.
1
Coupling Gravity with Hydrodynamics
18
.
4
Usage
18
.
5
Unit Tests
19
. Particles Unit
19
.
1
Time Integration
19
.
1
.
1
Active Particles (Massive)
19
.
1
.
2
Charged Particles - Hybrid PIC
19
.
1
.
3
Passive Particles
19
.
2
Mesh/Particle Mapping
19
.
2
.
1
Quadratic Mesh Mapping
19
.
2
.
2
Cloud in Cell Mapping
19
.
3
Using the Particles Unit
19
.
3
.
1
Particles Runtime Parameters
19
.
3
.
2
Particle Attributes
19
.
3
.
3
Particle I/O
19
.
3
.
4
Unit Tests
20
. Cosmology Unit
20
.
1
Algorithms and Equations
20
.
2
Using the Cosmology unit
20
.
3
Unit Test
21
. Material Properties Units
21
.
1
Thermal Conductivity
21
.
2
Magnetic Resistivity
21
.
2
.
1
Constant resistivity
21
.
3
Viscosity
21
.
4
Opacity
21
.
4
.
1
Constant Implementation
21
.
4
.
2
Multispecies Implementation
21
.
4
.
3
The IONMIX EOS/Opacity Format
21
.
5
Mass Diffusivity
22
. Radiative Transfer Unit
22
.
1
Multigroup Diffusion
22
.
1
.
1
Config File and Mesh Replication
22
.
1
.
2
Runtime Parameters
22
.
1
.
3
Specifying Initial Conditions
22
.
1
.
4
Summary
VI
. Monitor Units
23
. Logfile Unit
23
.
1
Meta Data
23
.
2
Runtime Parameters, Physical Constants, and Multispecies Data
23
.
3
Accessor Functions and Timestep Data
23
.
4
Performance Data
23
.
5
Example Usage
24
. Timer and Profiler Units
24
.
1
Timers
24
.
1
.
1
MPINative
24
.
1
.
2
Tau
24
.
2
Profiler
VII
. Simulation Units
25
. The Supplied Test Problems
25
.
1
Hydrodynamics Test Problems
25
.
1
.
1
Sod Shock-Tube
25
.
1
.
2
Variants of the Sod Problem in Curvilinear Geometries
25
.
1
.
3
Interacting Blast-Wave
Blast2
25
.
1
.
4
Sedov Explosion
25
.
1
.
5
Isentropic Vortex
25
.
1
.
6
Wind Tunnel With a Step
25
.
1
.
7
The Shu-Osher problem
25
.
1
.
8
Driven Turbulence
StirTurb
25
.
1
.
9
Relativistic Sod Shock-Tube
25
.
1
.
10
Relativistic Two-dimensional Riemann
25
.
1
.
11
Flow Interactions with Stationary Rigid Body
25
.
2
Magnetohydrodynamics Test Problems
25
.
2
.
1
Brio-Wu MHD Shock Tube
25
.
2
.
2
Orszag-Tang MHD Vortex
25
.
2
.
3
MHD Rotor
25
.
2
.
4
MHD Current Sheet
25
.
2
.
5
Field Loop
25
.
2
.
6
3D MHD Blast
25
.
3
Gravity Test Problems
25
.
3
.
1
Jeans Instability
25
.
3
.
2
Homologous Dust Collapse
25
.
3
.
3
Huang-Greengard Poisson Test
25
.
3
.
4
MacLaurin
25
.
4
Particles Test Problems
25
.
4
.
1
Two-particle
Orbit
25
.
4
.
2
Zel'dovich Pancake
25
.
4
.
3
Modified Huang-Greengard Poisson Test
25
.
5
Burn Test Problem
25
.
5
.
1
Cellular Nuclear Burning
25
.
6
RadTrans Test Problems
25
.
6
.
1
Infinite Medium, Energy Equilibration
25
.
6
.
2
Radiation Step Test
25
.
7
Other Test Problems
25
.
7
.
1
The non-equilibrium ionization test problem
25
.
7
.
2
The Delta-Function Heat Conduction Problem
25
.
7
.
3
The HydroStatic Test Problem
25
.
7
.
4
Hybrid-PIC Test Problems
25
.
7
.
5
Full-physics Laser Driven Simulation
25
.
8
3T Shock Simulations
25
.
8
.
1
Shafranov Shock
25
.
8
.
2
Non-Equilibrium Radiative Shock
25
.
8
.
3
Blast Wave with Thermal Conduction
VIII
. Tools
26
. VisIt
27
. Serial FLASH Output Comparison Utility (
sfocu
)
27
.
1
Building
sfocu
27
.
2
Using
sfocu
28
. FLASH IDL Routines (
fidlr3.0
)
28
.
1
Installing and Running
fidlr3.0
28
.
1
.
1
Setting Up
fidlr3.0
Environment Variables
28
.
1
.
2
Running IDL
28
.
2
xflash3
: A Widget Interface to Plotting FLASH Datasets
28
.
2
.
1
File Menu
28
.
2
.
2
Defaults Menu
28
.
2
.
3
Colormap Menu
28
.
2
.
4
X/Y plot count Menu
28
.
2
.
5
Plotting options available from the GUI
28
.
2
.
6
Plotting buttons
28
.
3
Comparing two datasets
IX
. Going Further with FLASH
29
. Adding new solvers
30
. Porting FLASH to other machines
30
.
1
Writing a
Makefile.h
31
. Multithreaded FLASH
31
.
1
Overview
31
.
2
Threading strategies
31
.
3
Running multithreaded FLASH
31
.
3
.
1
OpenMP variables
31
.
3
.
2
FLASH variables
31
.
3
.
3
FLASH constants
31
.
4
Verifying correctness
31
.
5
Performance results
31
.
5
.
1
Multipole solver
31
.
5
.
2
Helmholtz EOS
31
.
5
.
3
Sedov
31
.
5
.
4
LaserSlab
31
.
6
Conclusion
References
Index
About this document ...
Generic Flash Docs User 2012-02-01