In the latest dev version of yt, there is a ds.add_deposited_particle_field function attached to all dataset instances that automates the workflow Britton suggests.

On Thursday, June 25, 2015, Britton Smith <> wrote:
Hi Brendan,

I would have a look in the yt source in yt/fields/ at the field functions like particle_mass and particle_cic.  They are good examples of just how the deposited fields are done.  In addition, there is a field function, _get_density_weighted_deposit_field, for doing mass-weighted deposited fields.  I think this is exactly what you're looking for.  In fact, it seems that mass-weighted velocity fields already exist as something like ("deposit", "<PTYPE>_sum_velocity_x") or ("deposit", "<PTYPE>_nn_velocity_x").  If you have multiple particle types for stars and such, they should already be defined with these fields.  This should give you a template for implementing any other fields of this type.


On Wed, Jun 24, 2015 at 12:28 PM, Brendan Griffen <> wrote:

I'm looking to convert particle based quantities into a uniform grid based quantity (arepo data is input). So say I have a collection of gas elements with some density rho and x,y,z positions. I want to construct an 256^3 mesh representing the cells in a mesh.

x,y,z,rho --> cic mesh where the values at i,j,k is the smoothed density are created by the cic algorithm

Now, generalising this more, can I have rho to be any quantity? So now say I have star particles which similarly have x,y,z but I want to distribute their luminosity. Again, I want to do it for say the gas velocity field as well. Is there any general functionality for converting particle quantities to mesh quantites in yt with the deposit all_cic functionality? I have a basic code for just x,y,z particle data and distributing that based on density to a cic (see below)

ad = pf.all_data()
level = int(math.log(ndim,2))
cg = pf.covering_grid(level=level, left_edge=[0,0,0],dims=[ndim,ndim,ndim])
arr = cg['deposit', 'all_cic'],

but I'm not sure what to do for the other variables. Any help is appreciated in advance.


yt-users mailing list