Phantom

This scheme is a reference implementation similar to the one presented in Price (2018), the PHANTOM paper (not including MHD). It uses:

  • A simplified Cullen & Dehnen AV limiter (note that this is different to PHANTOM as we do not explicitly include the matrix calculation).

  • A fixed alpha artificial conduction scheme used for hydro-only problems as presented in the PHANTOM paper (i.e. we use the ‘hydro-only’ conduction velocity, rather than the one used for gravitational problems).

  • Base Density-Energy SPH

The simplified version of the ‘Inviscid SPH’ artificial viscosity calculates the time differential of the velocity divergence explicitly, using the value from the previous step. We also use the Balsara switch instead of the improved neighbour-based limiter from Cullen & Dehnen 2010, to avoid matrix calculations. We also use a different value for the ‘h-factors’ due to SWIFT using neighbour finding based on particle number density, rather than local mass density.

To configure with this scheme, use

./configure --with-hydro=phantom --disable-hand-vec

The parameters available for this scheme, and their defaults, are:

SPH:
    viscosity_alpha: 0.1  # Initial value for the alpha viscosity
    viscosity_length: 0.25  # Viscosity decay length (in terms of sound-crossing time)
    # These are enforced each time-step
    viscosity_alpha_max: 2.0  # Maximal allowed value for the viscosity alpha
    viscosity_alpha_min: 0.0  # Minimal allowed value for the viscosity alpha

    diffusion_alpha: 1.0  # Fixed value for the diffusion alpha

There is also a compile-time parameter, viscosity_beta that we set to 3.0. During feedback events, the viscosity is set to the compile-time hydro_props_default_viscosity_alpha_feedback_reset = 2.0 and the diffusion is set to hydro_props_default_diffusion_alpha_feedback_reset = 0.0. These can be changed in src/hydro/Phantom/hydro_parameters.h.