code: def unpack_column_flat(self, value, components=None, offset=False, computed_type=None):
          
          if components:
              if isinstance(components, str):
                  components = [components]
          else:
              components = self._dict.keys()
  
              # TODO: add this
  
          # we need to split the flat array by the lengths of each mesh
          N_lower = 0
          N_upper = 0
          offsetN = 0.0
          value_dict = {}
          for comp in components:
              if isinstance(self[comp], Meshes):
                  # then we need to recursively extract to the underlying meshes
                  # pass
                  meshes = self[comp]._dict
              else:
                  meshes = {comp: self[comp]}
  
              for c, mesh in meshes.items():
                  if computed_type=='vertices' or (computed_type is None and mesh._compute_at_vertices):
                      N = mesh.Nvertices
                  else:
                      N = mesh.Ntriangles
                  N_upper += N
                  value_dict[c] = value[N_lower:N_upper] - offsetN
                  if offset:
                      offsetN += N
                  N_lower += N
  
          return value_dict
docs: TODO: add documentation
          TODO: needs testing