Anarchy thermal diffusion limiter?
As far as I can tell there is a diffusion limiter in the EAGLE-Anarchy code that kicks in when the artificial viscosity is too small (although the code is really obscure so I might be wrong here):
double ArtDiff_ij =
0.5 * (local.ArtDiffParam + SphP[j].ArtDiffParam);
double vdiff_ij = my_max(0.5 * (kernel.sound_i + kernel.sound_j) -
fac_mu * kernel.vdotr2 / kernel.r,
0);
double u_diss_rate = P[j].Mass * ArtDiff_ij * vdiff_ij *
kernel.rho_ij_inv * kernel.dwk_ij *
(kernel.u_i - kernel.u_j);
if (ArtVisc_ij < 1)
limiter =
(1 - ArtVisc_ij * ArtVisc_ij) / (1 + ArtVisc_ij * ArtVisc_ij);
else
limiter = 0;
u_diss_rate *= limiter * limiter * limiter;
I can't see similar lines in the SWIFT anarchy version. Is that something we do not want?