PLUTO Test Problems  4.4-patch2
Functions
init.c File Reference

Rayleigh-Taylor instability setup for hydro or MHD. More...

Functions

void InitDomain (Data *d, Grid *grid)
 

Detailed Description

Sets the initial condition for a Rayleigh-Taylor instability problem in 2 or 3 dimensions. The initial condition consists of an interface separating two fluids with different densities in hydrostatic balance:

\[ \rho(y) = \left\{\begin{array}{ll} 1 & \quad{\rm for} \quad y \le 0 \\ \noalign{\medskip} \eta & \quad{\rm for} \quad y > 0 \end{array}\right. \,,\qquad p = p_0 + \rho y g \]

where $ \eta $ is the density of the fluid on top, g is the (constant) gravity pointing in the negative y direction. The value of the pressure at the interface (p0) is chosen in such a way that the sound speed in the light fluid is 1. Likewise, density is normalized to the value in the light fluid. The horizontal extent of the computational domain defines the unit length: Lx=1.

For magnetized setups, the magnetic field is purely horizontal:

\[ \vec{B} = \chi B_c\hvec{i} \,,\qquad B_c \equiv \sqrt{(\rho_{\rm hi} - \rho_{\rm lo})L|g|}\quad \to\quad \sqrt{(\eta - 1.0)|g|} \]

where Bc is the critical magnetic field above which perturbations parallel to the magnetic field are suppressed (see Boyd & Sanderson, page 99) while the value of $\chi$ is user-supplied (note that a factor $ 1/\sqrt{4\pi} $ needs to be incorporated when initializing B in code units).

The system is destabilized by perturbing the vertical velocity in proximity of the interface using a single mode (in 2D) or a Gaussian perturbation (in 3D). Aleternatively, a random perturbation can be used by setting USE_RANDOM_PERTURBATION to YES in your definitions.h. The runtime parameters that are read from pluto.ini are

Note
Increasing the value of p0 by a factor q^2 is equivalent to increase gravity of the same factor and decrease velocity and time by a factor q.

The Rayleigh-Taylor setup has been tested with the following configurations:

Conf.PHYSICSGEOMETRY DIMT. STEP.INTERP. divBNotes
#01 HD CARTESIAN 2 HANCOCK LINEAR - -
#02 HD CARTESIAN 2 RK3 MP5_FD - -
#03 HD CARTESIAN 2 RK3 PARABOLIC- -
#04 HD CARTESIAN 2 RK2 LINEAR - (*)
#05 MHD CARTESIAN 2 HANCOCK LINEAR CT -
#06 MHD CARTESIAN 2 RK3 MP5_FD GLM -
#07 MHD CARTESIAN 2 RK3 PARABOLICCT -
#08 MHD CARTESIAN 2 ChTr PARABOLICGLM (*)
#09 MHD CARTESIAN 3 RK2 LINEAR GLM -
#10 MHD CARTESIAN 3 HANCOCK LINEAR GLM [Mig12](*)

(*) Setups for AMR-Chombo

mhd_rt.01.jpg
Density plot at the end of configuration #01
Author
A. Mignone (migno.nosp@m.ne@p.nosp@m.h.uni.nosp@m.to.i.nosp@m.t)
Date
July 06, 2014

References:

Function Documentation

◆ InitDomain()

void InitDomain ( Data *  d,
Grid *  grid 
)

Assign initial condition by looping over the computational domain. Called after the usual Init() function to assign initial conditions on primitive variables. Value assigned here will overwrite those prescribed during Init().