On Thu, Sep 8, 2016 at 1:07 PM, Cameron Hummels <chummels@gmail.com> wrote:
Thanks, Matt and Molly.  Very excited to see the kd-tree formulation that Meagan has implemented.  A couple additional questions:

 * Using the chosen SPH kernel (thanks to Bili Dong, we now have cubic, quartic, quintic, wendland2, wendland4, and wendland6), the smoothing is conducted on each cell by looking at all the nearest particles.  This is implemented in the process function on the class VolumeWeightedSmooth in yt/geometry/particle_smooth.pyx

What is the default SPH kernel that is used for deposition?  Is it frontend specific (and if so, where is it defined for each frontend), or do we just use a cubic spline as default?

I believe that unless an individual specifies the kernel in adding their own field, it uses cubic spline.  I have not worked on that aspect of the code, but perhaps Bili Dong can say.

Also, what value is used for the smoothing length of the particle deposition?  I believe most codes already have a smoothing_length field defined by the simulation.  Looking in VolumeWeightedSmooth, it seems to accept a smoothing_length field for the particles but I don't know if this is the simulation-defined field.

If a smoothing length field is not provided by the simulation, it uses the N-th nearest neighbor; you can see this in the setting of hsml to the r2 value of the final particle.
I may be wrong, but it seems to me that using the simulation-defined smoothing_length field is only applicable for the "scatter" deposition method.  I thought "gather" recalculates new smoothing lengths to address the fact that you may try to sample the fluid quantities a large distance away from the nearest particles, who all may have small smoothing lengths because of their proximity to each other.  But I may be mixed up here.

The SPLASH paper defines the smoothing length to be a minimum computed between the cell and the smoothing length of the particle.  This is what yt does, except that we don't use fixed pixel (voxel) sizes, so the min is never needed.  If the particles have an inherent smoothing length, this is what is used (for instance, with Gadget datasets).  If they do not (for instance, Gasoline), the Nth nearest neighbor is used.

A result of this is that if you have a zoom simulation where the particles have smoothing lengths, if you are outside the maximum smoothing length distance from a particle in a region where there are no gas particles, the result is zero, because there are not particles that believe they contribute to that region.  With a simulation where the formalism is such that the Nth nearest neighbor defines the smoothing length, the result will not be zero.


Cameron Hummels
NSF Postdoctoral Fellow
Department of Astronomy
California Institute of Technology

yt-dev mailing list