160 likes | 196 Views
PLUTO is a versatile and user-friendly code written in C for computational astrophysics. It supports shock capturing and high-Mach number flows in 1D, 2D, and 3D, and includes modules for hydrodynamics, magnetohydrodynamics, and relativistic hydrodynamics. Other features include various time stepping algorithms, Riemann solvers, and interpolations. It also supports geometry support, serial/parallel implementation using MPI, and optional use of MPI and GD graphics library.
E N D
PLUTO:a modular code for computational astrophysics Developers:A. Mignone1,2, G. Bodo2 1 The University of Chicago, ASC FLASH Center 2 INAF Osseratorio Astronomico di Torino 3 Universita’ degli studi di Torino 4 Universita’ degli studi di Firenze C. Zanni3, T. Laverne2 , F. Rubini4, S. Massaglia3, A. Rogava3, A. Ferrari3
OUTLINE • Written in C ( ~ 33,000 lines) • Explicit, compressible code (FV): • Shock capturing • High-mach number flows • Works in 1, 2, 3-D • Modular structure: • Physics • Time stepping • Interpolations • Riemann Solvers • No AMR • Geometry support (Cart, Cyl, Spher) • Serial/Parallel Implementation (MPI)
Requirements • (ANSI) C compiler • Python (v. > 1.6) • GNU Make Optional • MPI (arraylibby A. Malagoli) • GD graphics library
PLUTO Fundamentals: PHYSICS Modules TIME_STEPPING Geometry\ Grid Generation
HD MHD RMHD RHD Time_Stepping Split Unsplit Source Tree Un Update Un+1 Sources Interpolation physics modules
EoS = 4/3 /(-1) = 5/3 Relativistic Hydrodynamics (RHD) Module • Multi dimensional PPM, full corner coupled transport (Colella 1990) • Nonlinear Riemann solver w/ general Eos (Mignone et al. submitted to ApJ), FLASH Code
Magnetohydrodynamics (MHD) Module • Monopole Control • Powell (Powell 94) • Monopole Diffusion (Marder 87) • Flux CT (Balsara 2004) • Splitting of Magnetic Field, B = B0(x) + B1(x,t) suitable for low- plasma.
Relativistic Magnetohydrodynamics (RMHD) Module • Shares Features w/ MHD and RHD
Algorithms Time Stepping HD RHD MHD RMHD • Fwd Euler (Split/Unsplit) • RK 2nd (Split/Unsplit) • RK 3rd (Split/Unsplit) • Hancock (Split/CTU) • Characteristic Tracing (Split/CTU) (split) (split) Riemann Solvers • Riemann (non-linear) • TVD/ROE • HLL • TVDLF Interpolation • Prim. TVD-limited (II order) • Characteristic TVD-limited • Piecewise-Parabolic • Multi-D Linear Interpolation • 2nd and 3rd order WENO
Additional Features • Particles (T. Laverne): • Optically thin radiative losses • power-law 2T (Analytic integrator) • “Interstellar” cooling function: • T > 104 K, Dalgarno & McCray Cooling (1972) • T < 104 K, NEQ (H + H2) (Oliva, 1992) • NEQ cooling function for shocks < 80 Km/s (Raymond 1987) • Implicit Thermal Conduction (1-D only) Explicit /Implicit 2nd order integrators
Problem Setup • Python Interface: • definitions.h • makefile • User: 3. init.c • Set initial conditions • userdef b. c. • Bckgr. B • Gravity 4. pluto.ini • CFL • Domain • output freq. • etc..
Test Gallery 2-D Riemann Problem (HD) 2-D Riemann Problem (RHD) Shock-Cloud Interaction(MHD) RMHD Blast Wave
Axisymmetric MHD Jet Mach = 50 = 1 in/out= 1/20 Applications Keplerian Disk (Murante et al. 2004) Vortex-wave generation 3D RHD Jet (Rossi et at. 2003) Mach=3 = 10 in/out= 1.e-4 2D RHD KH V = 0.95c M = 1.17
More Applications Thermally unstable radiative shocks (Mignone, submitted to ApJ) Accretion Column onto white dwarf
Summary • Simple, fast code for single/multi proc. • User-friendly • versatile • suitable for algorithm comparison • (fairly) well documented >> Official release: Feb 2005 << mignone@oddjob.uchicago.edu, bodo@to.astro.it