def perform_lu(self):
        if self._lu is True:
            return

        if isinstance(self.solvers1D[0], SparseMatrixSolver):
            for m in self.solvers1D:
                lu = m.perform_lu()

        else:
            for mi in self.solvers1D:
                for mij in mi:
                    lu = mij.perform_lu()
        self._lu = True