def METHOD_NAME(self, parent: UpstreamNode) -> List[UpstreamNode]:
    if parent is None or parent.index < 0:
        return []
    parent.childs = []
    tech_column = self.tech_matrix[:, parent.index]
    for i in range(0, len(tech_column)):
        if i == parent.index:
            continue
        aij = tech_column[i]
        intensity = self.intensities[0, i]
        if aij == 0 or intensity == 0:
            continue
        aij = aij * parent.scaling
        ref_val = self.tech_matrix[i, i]
        child = UpstreamNode()
        child.index = i
        child.scaling = -aij / ref_val
        child.result = intensity * ref_val * child.scaling
        parent.childs.append(child)
    parent.childs.sort(key=lambda n: n.result, reverse=True)
    return parent.childs