docs: def run_field_scan(ModelClass, model_kwargs, t_output_every, t_upto, field,
                     vals, force_resume=True, parallel=False):
      """Run many models with a range of parameter sets.
  
      Parameters
      ----------
      ModelClass: callable
          A class or factory function that returns a model object by
          calling `ModelClass(model_kwargs)`
      model_kwargs: dict
          See `ModelClass` explanation.
      t_output_every: float
          see :class:`Runner`.
      t_upto: float
          Run each model until the time is equal to this
      field: str
          The name of the field to be varied, whose values are in `vals`.
      vals: array_like
          Iterable of values to use to instantiate each Model object.
      parallel: bool
          Whether or not to run the models in parallel, using the Multiprocessing
          library. If `True`, the number of concurrent tasks will be equal to
          one less than the number of available cores detected.
      """
      model_kwarg_sets = [dict(model_kwargs, field=val) for val in vals]
      run_kwarg_scan(ModelClass, model_kwarg_sets,
                     t_output_every, t_upto, force_resume, parallel)