Issue #963: RAMSES particle depositition onto mesh does not work with filtered datasets (yt_analysis/yt)
New issue 963: RAMSES particle depositition onto mesh does not work with filtered datasets https://bitbucket.org/yt_analysis/yt/issue/963/ramses-particle-depositition-... Benjamin Thompson: Hello. With a RAMSES dataset. The deposition of particles onto a mesh works fine for unfilltered cases. For example, should I call ``` #!python print data["deposit,"io_density"] ``` I get answers which are sensible. However, I wish to filter my particle data for stars/dark matter and treat the particles seperatly. If for example I do this, ``` #!python def star_filter(pfilter,data): filter = np.logical_and(data.particles.source["particle_age"] != 0, data.particles.source["particle_age"] != None) return filter add_particle_filter("stars", function=star_filter, filtered_type="all", requires=["particle_age"]) data.ds.add_particle_filter("stars") ``` Which filters the particles as expected, which also creates the fields ('deposit', 'io_cic') ('deposit', 'io_cic_velocity_x') ('deposit', 'io_cic_velocity_y') ('deposit', 'io_cic_velocity_z') ('deposit', 'io_count') ('deposit', 'io_density') ('deposit', 'io_mass') ('deposit', 'io_nn_velocity_x') ('deposit', 'io_nn_velocity_y') ('deposit', 'io_nn_velocity_z') ('deposit', 'stars_cic') ('deposit', 'stars_cic_velocity_x') ('deposit', 'stars_cic_velocity_y') ('deposit', 'stars_cic_velocity_z') ('deposit', 'stars_count') ('deposit', 'stars_density') ('deposit', 'stars_mass') ('deposit', 'stars_nn_velocity_x') ('deposit', 'stars_nn_velocity_y') ('deposit', 'stars_nn_velocity_z') As you would expect However, upon trying to call print data["deposit,"stars_density"] I get the error below ``` #!shell Traceback (most recent call last): File "selene_gradients.py", line 46, in <module> print cylinder[("deposit", "stars_density")] File "/gpfs/home/bthompson1/python/yt/yt-x86_64/src/yt-hg/yt/data_objects/data_containers.py", line 240, in __getitem__ self.get_data(f) File "/gpfs/home/bthompson1/python/yt/yt-x86_64/src/yt-hg/yt/data_objects/data_containers.py", line 673, in get_data self._generate_fields(fields_to_generate) File "/gpfs/home/bthompson1/python/yt/yt-x86_64/src/yt-hg/yt/data_objects/data_containers.py", line 693, in _generate_fields fd = self._generate_field(field) File "/gpfs/home/bthompson1/python/yt/yt-x86_64/src/yt-hg/yt/data_objects/data_containers.py", line 277, in _generate_field tr = self._generate_fluid_field(field) File "/gpfs/home/bthompson1/python/yt/yt-x86_64/src/yt-hg/yt/data_objects/data_containers.py", line 295, in _generate_fluid_field rv = self._generate_spatial_fluid(field, ngt_exception.ghost_zones) File "/gpfs/home/bthompson1/python/yt/yt-x86_64/src/yt-hg/yt/data_objects/data_containers.py", line 311, in _generate_spatial_fluid ind += o.select(self.selector, self[field], rv, ind) File "/gpfs/home/bthompson1/python/yt/yt-x86_64/src/yt-hg/yt/data_objects/data_containers.py", line 240, in __getitem__ self.get_data(f) File "/gpfs/home/bthompson1/python/yt/yt-x86_64/src/yt-hg/yt/data_objects/data_containers.py", line 673, in get_data self._generate_fields(fields_to_generate) File "/gpfs/home/bthompson1/python/yt/yt-x86_64/src/yt-hg/yt/data_objects/data_containers.py", line 693, in _generate_fields fd = self._generate_field(field) File "/gpfs/home/bthompson1/python/yt/yt-x86_64/src/yt-hg/yt/data_objects/data_containers.py", line 277, in _generate_field tr = self._generate_fluid_field(field) File "/gpfs/home/bthompson1/python/yt/yt-x86_64/src/yt-hg/yt/data_objects/data_containers.py", line 297, in _generate_fluid_field rv = finfo(gen_obj) File "/gpfs/home/bthompson1/python/yt/yt-x86_64/src/yt-hg/yt/fields/derived_field.py", line 184, in __call__ dd = self._function(self, data) File "/gpfs/home/bthompson1/python/yt/yt-x86_64/src/yt-hg/yt/fields/particle_fields.py", line 106, in particle_density pos = data[ptype, coord_name] File "/gpfs/home/bthompson1/python/yt/yt-x86_64/src/yt-hg/yt/data_objects/octree_subset.py", line 76, in __getitem__ tr = super(OctreeSubset, self).__getitem__(key) File "/gpfs/home/bthompson1/python/yt/yt-x86_64/src/yt-hg/yt/data_objects/data_containers.py", line 240, in __getitem__ self.get_data(f) File "/gpfs/home/bthompson1/python/yt/yt-x86_64/src/yt-hg/yt/data_objects/data_containers.py", line 615, in get_data with f.apply(self): File "/home/bthompson1/python/yt/yt-x86_64/lib/python2.7/contextlib.py", line 17, in __enter__ return self.gen.next() File "/gpfs/home/bthompson1/python/yt/yt-x86_64/src/yt-hg/yt/data_objects/particle_filters.py", line 46, in apply filter = self.function(self, dobj) File "/gpfs/home/bthompson1/ramses_pp/ramses_pp/ben/real_selene_analysis/ramses_pp/modules/yt/YT.py", line 59, in star_filter filter = np.logical_and(data.particles.source["particle_age"] != 0, data.particles.source["particle_age"] != None) AttributeError: 'RAMSESDomainSubset' object has no attribute 'particles' ``` _______________________________________________ yt-dev mailing list yt-dev@lists.spacepope.org http://lists.spacepope.org/listinfo.cgi/yt-dev-spacepope.org
participants (1)
-
Benjamin Thompson