yt.geometry.particle_oct_container module¶
Oct container tuned for Particles
- class yt.geometry.particle_oct_container.ParticleBitmap¶
Bases:
object
- bitmasks¶
- check()¶
- check_bitmasks()¶
- collisions¶
- construct_octree(index, io_handler, data_files, num_zones, selector_mask, base_mask=None)¶
- count_coarse(ifile)¶
Get the number of coarse cells set for a file.
- count_refined(ifile)¶
Get the number of cells refined for a file.
- count_total(ifile)¶
Get the total number of cells set for a file.
- counts¶
- file_ownership_mask(fid)¶
- filemasks2addfiles(file_masks)¶
- finalize()¶
- find_collisions(verbose=False)¶
- find_collisions_coarse(verbose=False, file_list=None)¶
- find_collisions_refined(verbose=False)¶
- find_contaminated(ifile, mask, mask2=None)¶
- find_uncontaminated(ifile, mask, mask2=None)¶
- get_DLE()¶
- get_DRE()¶
- get_bitmasks()¶
- get_ghost_zones(selector, ngz, dmask=None, coarse_ghosts=False)¶
- identify_data_files(selector, ngz=0)¶
- identify_file_masks(selector)¶
- index_order1¶
- index_order2¶
- iseq_bitmask(solf)¶
- load_bitmasks(fname)¶
- mask2filemasks(cmask, file_idx)¶
- mask2files(cmask)¶
- mask_to_files(mm_s)¶
- masks¶
- masks_to_files(mm_s, mm_g)¶
- max_count¶
- nfiles¶
- particle_counts¶
- primary_indices()¶
- print_info()¶
- reset_bitmasks()¶
- save_bitmasks(fname, max_hsml)¶
- selector2mask(selector)¶
- update_mi2(characteristic_size, max_index_order2=6)¶
mi2 is the refined morton index order; mi2 is thus the definition of the size of the refined index objects we stick inside any collisions at the coarse level. This takes a characteristic size and attempts to compute the mi2 such that the cell is roughly equivalent to the characteristic size. It will return whether or not it was able to update; if the mi2 has already been used, it does not update. There are cases where the maximum index_order2 that it would compute would be extremely fine, which can do really bad things to memory. So we allow the setting of a maximum value, which it won’t exceed.
- class yt.geometry.particle_oct_container.ParticleBitmapOctreeContainer¶
Bases:
SparseOctreeContainer
- add(indices, order1, domain_id=-1)¶
- allocate_domains(counts=None)¶
- domain_count(selector)¶
- domain_identify(selector)¶
- domain_ind(selector, domain_id=-1)¶
- domains¶
- fcoords(selector, num_cells=-1, domain_id=-1)¶
- file_index_octs(selector, domain_id, num_cells=-1)¶
- file_index_octs_with_ghost_zones(selector, domain_id, num_cells=1, n_ghost_zones=1)¶
Similar as file_index_octs, but returns the level, cell index, file index and domain of the neighbouring cells as well.
- Parameters:
selector (SelectorObject) – The selector object. It is expected to select all cells for a given oct.
domain_id (int) – The domain to select. Set to -1 to select all domains.
num_cells (int, optional) – The total number of cells (accounting for a 1-cell thick ghost zone layer).
- Returns:
levels (uint8, shape (num_cells,)) – The level of each cell of the super oct
cell_inds (uint8, shape (num_cells, )) – The index of each cell of the super oct within its own oct
file_inds (int64, shape (num_cells, )) – The on-file position of the cell. See notes below.
domains (int32, shape (num_cells)) – The domain to which the cells belongs. See notes below.
Notes
The algorithm constructs a “super-oct” around each oct (see sketch below, where the original oct cells are marked with an x).
Note that for sparse octrees (such as RAMSES’), the neighbouring cells may belong to another domain (this is stored in domains). If the dataset provides buffer zones between domains (such as RAMSES), this may be stored locally and can be accessed directly.
—
—
—
—
—
—
x
x
x
x
- fill_index(selector=<yt.geometry.selection_routines.AlwaysSelector object>)¶
Get the on-file index of each cell
- fill_level(level, levels, cell_inds, file_inds, dest_fields, source_fields, offset=0)¶
- fill_level_with_domain(level, level_inds, cell_inds, file_inds, domain_inds, dest_fields, source_fields, domain, offset=0)¶
Similar to fill_level but accepts a domain argument.
This is particularly useful for frontends that have buffer zones at CPU boundaries. These buffer oct cells have a different domain than the local one and are usually not read, but one has to read them e.g. to compute ghost zones.
- fill_octcellindex_neighbours(selector, num_octs=-1, domain_id=-1, n_ghost_zones=1)¶
Compute the oct and cell indices of all the cells within all selected octs, extended by one cell in all directions (for ghost zones computations).
- Parameters:
selector (SelectorObject) – Selector for the octs to compute neighbour of
num_octs (int, optional) – The number of octs to read in
domain_id (int, optional) – The domain to perform the selection over
- Returns:
oct_inds (int64 ndarray (nocts*8, )) – The on-domain index of the octs containing each cell
cell_inds (uint8 ndarray (nocts*8, )) – The index of the cell in its parent oct
Note
oct_inds/cell_inds
- fill_style¶
- finalize()¶
- fwidth(selector, num_cells=-1, domain_id=-1)¶
- get_index_base_octs(domain_ind)¶
- icoords(selector, num_cells=-1, domain_id=-1)¶
- ires(selector, num_cells=-1, domain_id=-1)¶
- classmethod load_octree(header)¶
- locate_positions(positions)¶
This routine, meant to be called by other internal routines, returns a list of oct IDs and a dictionary of Oct info for all the positions supplied. Positions must be in code_length.
- mask(selector, num_cells=-1, domain_id=-1)¶
- max_level¶
- morton_index_octs(selector, domain_id, num_cells=-1)¶
- n_ref¶
- nocts¶
- num_domains¶
- oct_arrays¶
- overlap_cells¶
- save_octree()¶
- selector_fill(selector, source, dest=None, offset=0, dims=1, domain_id=-1)¶
- class yt.geometry.particle_oct_container.ParticleBitmapSelector¶
Bases:
object
- fill_masks(mm_s, mm_g=None)¶
- find_files(file_mask_p, file_mask_g)¶
- class yt.geometry.particle_oct_container.ParticleOctreeContainer¶
Bases:
OctreeContainer
- add(indices, order=20)¶
- allocate_domains(domain_counts)¶
- allocate_root()¶
- apply_domain(domain_id, mask, masklevel)¶
- clear_fileind()¶
- domain_count(selector)¶
- domain_identify(selector)¶
- domain_ind(selector, domain_id=-1, mask=None, masklevel=99)¶
- domains¶
- fcoords(selector, num_cells=-1, domain_id=-1)¶
- file_index_octs(selector, domain_id, num_cells=-1)¶
- file_index_octs_with_ghost_zones(selector, domain_id, num_cells=1, n_ghost_zones=1)¶
Similar as file_index_octs, but returns the level, cell index, file index and domain of the neighbouring cells as well.
- Parameters:
selector (SelectorObject) – The selector object. It is expected to select all cells for a given oct.
domain_id (int) – The domain to select. Set to -1 to select all domains.
num_cells (int, optional) – The total number of cells (accounting for a 1-cell thick ghost zone layer).
- Returns:
levels (uint8, shape (num_cells,)) – The level of each cell of the super oct
cell_inds (uint8, shape (num_cells, )) – The index of each cell of the super oct within its own oct
file_inds (int64, shape (num_cells, )) – The on-file position of the cell. See notes below.
domains (int32, shape (num_cells)) – The domain to which the cells belongs. See notes below.
Notes
The algorithm constructs a “super-oct” around each oct (see sketch below, where the original oct cells are marked with an x).
Note that for sparse octrees (such as RAMSES’), the neighbouring cells may belong to another domain (this is stored in domains). If the dataset provides buffer zones between domains (such as RAMSES), this may be stored locally and can be accessed directly.
—
—
—
—
—
—
x
x
x
x
- fill_index(selector=<yt.geometry.selection_routines.AlwaysSelector object>)¶
Get the on-file index of each cell
- fill_level(level, levels, cell_inds, file_inds, dest_fields, source_fields, offset=0)¶
- fill_level_with_domain(level, level_inds, cell_inds, file_inds, domain_inds, dest_fields, source_fields, domain, offset=0)¶
Similar to fill_level but accepts a domain argument.
This is particularly useful for frontends that have buffer zones at CPU boundaries. These buffer oct cells have a different domain than the local one and are usually not read, but one has to read them e.g. to compute ghost zones.
- fill_octcellindex_neighbours(selector, num_octs=-1, domain_id=-1, n_ghost_zones=1)¶
Compute the oct and cell indices of all the cells within all selected octs, extended by one cell in all directions (for ghost zones computations).
- Parameters:
selector (SelectorObject) – Selector for the octs to compute neighbour of
num_octs (int, optional) – The number of octs to read in
domain_id (int, optional) – The domain to perform the selection over
- Returns:
oct_inds (int64 ndarray (nocts*8, )) – The on-domain index of the octs containing each cell
cell_inds (uint8 ndarray (nocts*8, )) – The index of the cell in its parent oct
Note
oct_inds/cell_inds
- fill_style¶
- finalize(domain_id=0)¶
- fwidth(selector, num_cells=-1, domain_id=-1)¶
- icoords(selector, num_cells=-1, domain_id=-1)¶
- ires(selector, num_cells=-1, domain_id=-1)¶
- classmethod load_octree(header)¶
- locate_positions(positions)¶
This routine, meant to be called by other internal routines, returns a list of oct IDs and a dictionary of Oct info for all the positions supplied. Positions must be in code_length.
- mask(selector, num_cells=-1, domain_id=-1)¶
- max_level¶
- morton_index_octs(selector, domain_id, num_cells=-1)¶
- n_ref¶
- nocts¶
- num_domains¶
- oct_arrays¶
- recursively_count()¶
- save_octree()¶
- selector_fill(selector, source, dest=None, offset=0, dims=1, domain_id=-1)¶