def _part_ind(self): if self._particle_mask is None: parent = getattr(self, "parent", self.base_object) units = "code_length" mask = points_in_cells(self["x"].to(units), self["y"].to(units), self["z"].to(units), self["dx"].to(units), self["dy"].to(units), self["dz"].to(units), parent["particle_position_x"].to(units), parent["particle_position_y"].to(units), parent["particle_position_z"].to(units)) self._particle_mask = mask return self._particle_mask
def _part_ind_brute_force(self, ptype): parent = getattr(self, "parent", self.base_object) units = "code_length" mask = points_in_cells( self[("index", "x")].to(units), self[("index", "y")].to(units), self[("index", "z")].to(units), self[("index", "dx")].to(units), self[("index", "dy")].to(units), self[("index", "dz")].to(units), parent[(ptype, "particle_position_x")].to(units), parent[(ptype, "particle_position_y")].to(units), parent[(ptype, "particle_position_z")].to(units)) return mask
def _part_ind(self, ptype): if self._particle_mask.get(ptype) is None: parent = getattr(self, "parent", self.base_object) units = "code_length" mask = points_in_cells( self[("index", "x")].to(units), self[("index", "y")].to(units), self[("index", "z")].to(units), self[("index", "dx")].to(units), self[("index", "dy")].to(units), self[("index", "dz")].to(units), parent[(ptype, "particle_position_x")].to(units), parent[(ptype, "particle_position_y")].to(units), parent[(ptype, "particle_position_z")].to(units)) self._particle_mask[ptype] = mask return self._particle_mask[ptype]