Parses the NMR Electric Field Gradient Raw Tensors

        Returns:
            A list of Electric Field Gradient Tensors in the order of Atoms from OUTCAR

def read_nmr_efg_tensor(self):
        """
        Parses the NMR Electric Field Gradient Raw Tensors

        Returns:
            A list of Electric Field Gradient Tensors in the order of Atoms from OUTCAR
        """

        header_pattern = r'Electric field gradients \(V/A\^2\)\n' \
                         r'-*\n' \
                         r' ion\s+V_xx\s+V_yy\s+V_zz\s+V_xy\s+V_xz\s+V_yz\n' \
                         r'-*\n'

        row_pattern = r'\d+\s+([-\d\.]+)\s+([-\d\.]+)\s+([-\d\.]+)\s+([-\d\.]+)\s+([-\d\.]+)\s+([-\d\.]+)'
        footer_pattern = r'-*\n'

        data = self.read_table_pattern(header_pattern, row_pattern, footer_pattern, postprocess=float)
        tensors = [make_symmetric_matrix_from_upper_tri(d) for d in data]
        self.data["unsym_efg_tensor"] = tensors
        return tensors