Source code for yt.data_objects.level_sets.clump_tools

import numpy as np

nar = np.array

counter = 0


[docs] def recursive_all_clumps(clump, list, level, parentnumber): """A recursive function to flatten the index in *clump*. Not to be called directly: please call return_all_clumps, below.""" global counter counter += 1 clump.number = counter clump.parentnumber = parentnumber counter += 1 list.append(clump) clump.level = level if clump.children is not None: for child in clump.children: recursive_all_clumps(child, list, level + 1, clump.number) return list
[docs] def return_all_clumps(clump): """Flatten the index defined by *clump*. Additionally adds three variables to the clump: level = depth of index number = index of clump in the final array parentnumber = index of this clumps parent """ global counter counter = 0 list = [] level = 0 clump.level = level parentnumber = -1 recursive_all_clumps(clump, list, level, parentnumber) return list
[docs] def return_bottom_clumps(clump, dbg=0): """ Recursively return clumps at the bottom of the index. This gives a list of clumps similar to what one would get from a CLUMPFIND routine """ global counter counter = 0 list = [] level = 0 recursive_bottom_clumps(clump, list, dbg, level) return list
[docs] def recursive_bottom_clumps(clump, clump_list, dbg=0, level=0): """Loops over a list of clumps (clumps) and fills clump_list with the bottom most. Recursive. Prints the level and the number of cores to the screen.""" global counter if (clump.children is None) or (len(clump.children) == 0): counter += 1 clump_list.append(clump) else: for child in clump.children: recursive_bottom_clumps(child, clump_list, dbg=dbg, level=level + 1)
[docs] def clump_list_sort(clump_list): """Returns a copy of clump_list, sorted by ascending minimum density. This eliminates overlap when passing to yt.visualization.plot_modification.ClumpContourCallback""" minDensity = [c[("gas", "density")].min() for c in clump_list] args = np.argsort(minDensity) list = nar(clump_list)[args] reverse = range(list.size - 1, -1, -1) return list[reverse]