Skip to content

2D smoothing length prescription

Hi,

In 2D simulations, the smoothing length s_{sm} should be around \epsilon H with \epsilon \approx 0.6 in order to reproduce 3D simulations, for example https://ui.adsabs.harvard.edu/abs/2012A%26A...541A.123M/abstract.

The way the code is now, the input for the smoothing length is given in units of Hill radius r_{Hill} rather than vertical disk thickness H. This means that the input

Disk true
{
[...]
    Smoothing
    {
        Change false
        Flat true
        Size X
        Taper 0.
    }

results in a smoothing length s_{sm} = X r (q/3)^{1/3} = (X (q/3)^{1/3} 1/h)\times H, q=m_{pl}/M_*.

Thus when one has multiple planets of different masses, it is not possible at the moment to keep s_{sm}=0.6 H for each planet, because of the dependence in q.

Would it be possible to have a smoothing length value X that is different for each planet? Or even better, would it be possible to set the smoothing length in units of H = h r, so that one can set s_{sm}=0.6 H once and for all, for 2D simulations?

One way to do the second option, and keep backwards compatibility, would be to have an optional parameter in the Smoothing inputs called SmoothingType. If it is left unspecified this parameter is set to RocheSmoothing by default, and the smoothing is controlled in the same way as it is now (which I understand is better for 3D simulations), but it can also be set to ThicknessSmoothing, in which case one can set

Disk true
{
[...]
    Smoothing
    {
        Change false
        Flat true
        SmoothingType ThicknessSmoothing
        Size epsilon
        Taper 0.
    }

and get s_{sm}=\epsilon \times H. If the ThicknessSmoothing smoothing option is not a good one for 3D simulations, one could even have a check that if the disk is 3D and Flat is set to false, then the code does not accept SmoothingType ThicknessSmoothing, or it throws a warning to the user.