@classmethod
def subnodes(cls, n):
    conlst = []
    for row in range(n, 0, (- 1)):
        l = (((n - row) * ((n + row) + 3)) // 2)
        u = ((l + row) + 1)
        off = [l, (l + 1), u, (u + 1), (l + 1), u]
        subin = np.ravel((np.arange((row - 1))[(..., None)] + off))
        subex = [((ix + row) - 1) for ix in off[:3]]
        conlst.extend([subin, subex])
    return np.hstack(conlst)
@classmethod
def subnodes(cls, n):
    conlst = []
    for row in range(n, 0, (- 1)):
        l = (((n - row) * ((n + row) + 3)) // 2)
        u = ((l + row) + 1)
        off = [l, (l + 1), u, (u + 1), (l + 1), u]
        subin = np.ravel((np.arange((row - 1))[(..., None)] + off))
        subex = [((ix + row) - 1) for ix in off[:3]]
        conlst.extend([subin, subex])
    return np.hstack(conlst)