    def initialize(self):
        LineSinkStringBase.initialize(self)
        self.aq.add_element(self)
        # self.pc = np.array([ls.pc for ls in self.lslist]).flatten()
        if len(self.hls) == 1:
            self.pc = self.hls * self.aq.T[self.layers] * np.ones(self.nparam)
        elif len(self.hls) == self.nls:  # head specified at centers
            self.pc = (self.hls[:, np.newaxis] * self.aq.T[self.layers]).flatten()
        elif len(self.hls) == 2:
            L = np.array([ls.L for ls in self.lslist])
            Ltot = np.sum(L)
            xp = np.zeros(self.nls)
            xp[0] = 0.5 * L[0]
            for i in range(1, self.nls):
                xp[i] = xp[i - 1] + 0.5 * (L[i - 1] + L[i])
            self.hls = np.interp(xp, [0, Ltot], self.hls)
            self.pc = (self.hls[:, np.newaxis] * self.aq.T[self.layers]).flatten()
        else:
            print('Error: hls entry not supported')
        self.resfac = 0.0