def update_columns(self, field, value_dict, inds=None, computed_type=None):
        """
        update the columns of all meshes

        :parameter str field: name of the mesh columnname
        :parameter value_dict: dictionary with component as keys and new
            data as values. If value_dict is not a dictionary,
            it will be applied to all components
        :type value_dict: dict or value (array or float)
        """
        if not isinstance(value_dict, dict):
            value_dict = {comp_no: value_dict for comp_no in self._dict.keys()}


        for comp, value in value_dict.items():
            if computed_type is not None:
                # then create the ComputedColumn now to override the default value of compute_at_vertices
                self._dict[comp]._observables[field] = ComputedColumn(self._dict[comp], compute_at_vertices=computed_type=='vertices')

            #print "***", comp, field, inds, value
            if inds:
                raise NotImplementedError('setting column with indices not yet ported to new meshing')
                # self._dict[comp][field][inds] = value
            else:
                if comp in self._dict.keys():
                    self._dict[comp][field] = value
                else:
                    meshes = self._dict[self._parent_envelope_of[comp]]
                    meshes[comp][field] = value
update the columns of all meshes

        :parameter str field: name of the mesh columnname
        :parameter value_dict: dictionary with component as keys and new
            data as values. If value_dict is not a dictionary,
            it will be applied to all components
        :type value_dict: dict or value (array or float)