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 <firstname.lastname@example.org> wrote:
Hi Brendan,I would have a look in the yt source in yt/fields/particle_fields.py 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.BrittonOn Wed, Jun 24, 2015 at 12:28 PM, Brendan Griffen <email@example.com> wrote:Hi,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 algorithmNow, 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.Thanks.Brendan
yt-users mailing list