On Thursday, July 23, 2015, Yi-Hao Chen firstname.lastname@example.org wrote:
Thank you for answering the questions during your vacation.
I would be happy to add the smoothing functionality to yt. But I have only very vague idea about the difference between "patch-based" and "octree-based" data and almost no experience on SPH smoothing. I am not sure how far I can go. Is there a good introduction/reference for the patch-based AMR?
I've tried the arbitrary_grid data object and can get the deposited array for an uniform resolution mesh! My question now is how to map this data object onto the AMR grid which has higher resolution in some regions since I have to do calculation using both the mesh and particle data. The easiest way might be converting my mesh data to a uniform, lower resolution array, but it would be great if I can do the other way around, i.e. mapping the deposited field in the arbitrary_grid to the AMR mesh.
You can generate fields for the "x", "y" and "z" coordinates on the arbitrary_grid mesh. Once you have that, you can use trilinear interpolation to estimate the fields you care about anywhere on the AMR mesh.
Thank you! Yi-Hao
After hitting send it occurred to me that this might be an oppudtunity to use the arbitrary_grid data object. This will allow you to create a uniform resolution grid to deposit particle quantities onto that more closely matches your particle resolution.
Enabling more generic particle deposition operators for patch based datasets is a long term goal of mine. As you've discovered, something like SPH smoothing has not been implemented yet.
If you're interested in adding this functionality to yt, I would first bring this up on the dev mailing list to get some advice. Unfortunately I'm on vacation at the moment and don't have the bandwidth to offer more concrete advice.
On Wednesday, July 22, 2015, Yi-Hao Chen email@example.com wrote:
I am working on FLASH datasets with particles. I have some self-defined fields (specifically Lorentz factors) that are stored in the particle data and would like to map them onto the mesh grid. I've been trying the "add_deposited_particle_field" that is in the dev version. Currently I use the "cic" method, in which a particle will populate the nearby 8 cells (in 3D). However, since my particles are sparser than the mesh cells, many of the cells do not have particles nearby and thus are empty.
I would like to find a way to interpolate for those empty cells, i.e. to smooth the particle field. Are there any suggestions or directions I should look into?
It would also be very helpful if I can get the list of N nearest neighbor particles for each cell. I've looked into the nearest neighbor function
But it seems that it is implemented only for octree-based data objects (and can only perform in a particle-to-particle fashion?), while FLASH data are loaded into yt as "patch-based" data object.
Is there any function that can get the nearest particle neighbors of each cell?
Thank you, Yi-Hao
-- Yi-Hao Chen Graduate Student Department of Astronomy University of Wisconsin-Madison