code: def get_symbol_dict(self, voigt=True, zero_index=False, **kwargs):
          
          d = {}
          if voigt:
              array = self.voigt
          else:
              array = self
          grouped = self.get_grouped_indices(voigt=voigt, **kwargs)
          if zero_index:
              p = 0
          else:
              p = 1
          for indices in grouped:
              sym_string = self.symbol + '_'
              sym_string += ''.join([str(i + p) for i in indices[0]])
              value = array[indices[0]]
              if not np.isclose(value, 0):
                  d[sym_string] = array[indices[0]]
          return d
docs: Creates a summary dict for tensor with associated symbol
  
          Args:
              voigt (bool): whether to get symbol dict for voigt
                  notation tensor, as opposed to full notation,
                  defaults to true
              zero_index (bool): whether to set initial index to zero,
                  defaults to false, since tensor notations tend to use
                  one-indexing, rather than zero indexing like python
              **kwargs: keyword args for np.isclose.  Can take atol
                  and rtol for absolute and relative tolerance, e. g.
  
                  >>> tensor.get_symbol_dict(atol=1e-8)
  
                  or
  
                  >>> tensor.get_symbol_dict(rtol=1e-5)
  
          Returns:
              list of index groups where tensor values are equivalent to
              within tolerances
  
          Returns: