import numpy as np import yt from yt.data_objects.particle_filters import \ particle_filter @particle_filter("star", requires=["creation_time"]) def _dm_filter(pfilter, data): dt = data.ds.quan(20, "Myr") return data['creation_time'] >= data.ds.current_time - dt def _sfr_density(field, data): dt = data.ds.quan(20, "Myr") return data['deposit', 'star_density'] / dt if __name__ == "__main__": ds = yt.load("DD0046/DD0046") ds.add_particle_filter('star') ds.add_field(('gas', 'sfr_density'), function=_sfr_density, units='Msun/yr/pc**3', sampling_type='cell')