Warning: this page is better viewed with Firefox

*Author of the code:* T. Sousbie

*Publication introducing and exploiting the code* (to be cited when using `VlaSolve`

):

*Download* `VlaSolve`

: vlasolve_v0.9.0.tar.gz

## Table of Contents

## The traditional semi-Lagrangian splitting algorithm

In spherical symmetry, Vlasov equation reads

where *v* is the radial component of the velocity, *j* is the angular momentum, *M*_{r}=M(r'<r ) the mass inside a sphere of radius *r* and *G* the gravitational constant.

To solve equation (1) numerically, we wrote an improved implementation of the splitting algorithm of Cheng & Knorr (1976), following closely Fujiwara (1983). This
algorithm exploits directly the Liouville theorem, namely that the phase-space density is conserved along motion: the equations of the dynamics during a time step are separated in "drift" and "kick" parts in terms of Hamiltonian dynamics and are resolved backwards,

In the drift part, which includes, in addition to the trivial ballistic part, the inertial contribution from the conserved angular momentum*r(t-dt/2)* and *v(t-dt/2)* can be estimated analytically (see, e.g., Colombi & Touma 2008), while the kick part accounts for the gravitational contribution, computed from *f*^{*}.

The phase-space distribution function is sampled on a mesh, and each step is performed by using test particles coinciding with mesh sites and following the equations of motion split as above. Resampling of *f*^{*}, *f*^{**}, and finally the phase-space distribution function at next time step is performed by using third order spline interpolation on the grid.

In the current implementation of `VlaSolve`

, time step is a constant parameter chosen by the user. Phase space is sampled into a rectangular mesh of size *(N*_{r},N_{v},N_{j}) which spans the domain of interest as follows: the position *R*_{min} ≤ *r* ≤ *R*_{max} is sampled in a logarithmic fashion, the velocity -*v*_{max} ≤ *v* ≤ *v*_{max} linearly, and the angular momentum 0 ≤ *j* ≤ *J*_{max} is such that the position of the *k*^{th} angular momentum slice is *j*_{k}=*J*_{max}(*k*-1/2)^{2}/*N*_{j}^{2}, corresponding formally to the interval [*J*_{max} (*k*-1)^{2}/*N*_{j}^{2},* J*_{max} *k*^{2}/*N*_{j}^{2}].

## Reflecting boundaries with time delay

Reflective

Delayed

**Figure 1:** Comparison between the reflecting central sphere method (upper panel) and our improved delayed central sphere implementation (lower panel), in *(r,j)* space. The artificial features introduced by instantaneous reflection are suppressed by introducing time delay. From Colombi et al. (2015).

Using a logarithmic scale along the radial direction proves particularly advantageous for tracing tiny features close to the center of the system that subsequently expand to larger scales as they get away from it. One downside of this procedure is that a small sphere of radius *R*_{min} is necessarily missing from the computing domain. This shortcoming is usually dealt with by considering the central part as a small reflecting sphere (see, e.g, Gott 1973, Fujiwara 1983). Although simple, this method presents the major drawback of introducing a systematic lag between orbits: particles reaching the reflective kernel boundary instantly travel the 2*R*_{min} distance through the central region, while they should actually take a finite time depending on their radial velocity and angular momentum.

In `VlaSolve`

, we improve the reflecting sphere method by taking into account the actual time spent spent by matter elements traveling inside the region *r* ≤ *R*_{min}, which is made easily possible by neglecting the gravitational force. This assumption, combined with the fact that we use a constant time step, allows us to precompute the trajectories of these matter elements once and for all by creating link lists associated to each grid site whose corresponding test particle radial position *r* half a time step backward in time is such that *r* ≤ *R*_{min}. A comparison of the results obtained with the reflective central sphere to our improved delayed central sphere is shown on figure 1. The improvements are unquestionable.

## Parallelization

Thanks to its hydrid parallel nature, `VlaSolve`

can be used to run large simulations. Shared memory parallelism with OpenMP library is achieved in *j* space by taking advantage of the fact that the angular momentum is a conserved quantity. Distributed memory parallelism with MPI library is implemented by performing domain decomposition in (*r*,*v*) space, following the approach of Crouseilles et al. (2009), who propose to localize the cubic spline interpolation to each domain by using Hermite boundary conditions between the domains with an ad hoc reconstruction of the derivatives.

## Illustration: simulation of a Hénon sphere and comparison to the *N*-body result

The Hénon sphere (Hénon 1964) corresponds to a very simple initial set up for the phase-space distribution function:

with (4π/3) ρ_{0} *R*_{H}^{3}=*M*, the total mass of the system. The main parameter defining the properties of this system is its virial ratio *R*=|2*T*/*W*|=5 *R*_{H} σ_{v}^{2}/*M*. Figure 2 shows the phase-space distribution function obtained at various times for a Hénon sphere with total mass unity, *R*_{H}=2 and *R*≈0.5. The results obtained with `VlaSolve`

are compared to a *N*-body simulations performed with the public code `Gadget-2`

(Springel, Yoshida & White 2001; Springel 2005). In order to avoid exaggerate aliasing in the Vlasov code, the Hénon sphere was apodized as follows:

with Δ=1/2. The agreement between both codes is striking. One notices that the semi-Lagrangian code is more diffusive but less noisy than the *N*-body simulation, as expected. More detailed comparisons are performed in Colombi et al. (2015).

*f(r,v)* in a thin angular momentum slice

*f(r,v)* integrated over angular momentum

**Figure 2:** Comparison between the Vlasov code `VlaSolve`

and the *N*-body code `Gadget-2`

for a Hénon sphere. The two top lines of panels display, from left to right, the evolution of the phase-space distribution function in a thin angular momentum slice. The two bottom lines of panels are similar, but the phase-space distribution function has been integrated over all dynamic range in *j*. The `VlaSolve`

simulation (top and third line of panels) has a resolution given by (*N*_{r},*N*_{v},*N*_{j})=(1024,1024,512) while the `Gadget-2`

simulation (second and bottom line of panels) involves 10 millions particles. From Colombi et al. (2015).

Movie (created by S. Peirani & T. Sousbie): Vlasov_versus_Nbody.mpg

## Bibliography

- Cheng C. Z., Knorr G., 1976, JCoPh, 22, 330
- Colombi S., Touma J., 2008, CNSNS, 13, 46
- Crouseilles N., Latu G., Sonnendrücker E., 2009, JCoPh, 228, 1429
- Fujiwara T., 1983, PASJ, 35, 547
- Gott J.R. III, 1973, ApJ, 186, 481
- Hénon M., 1964, AnAp, 27, 83
- Springel V., 2005, MNRAS, 364, 1105
- Springel V., Yoshida N., White S.D.M., 2001, NewA, 6, 51