docs: def set_func(self, func, pnames, args=()):
          """Set the model function to use an efficient but tedious calling convention.
  
          The function should obey the following convention::
  
              def func(param_vec, *args):
                  modeled_data = { do something using param_vec }
                  return modeled_data
  
          This function creates the :class:`pwkit.lmmin.Problem` so that the
          caller can futz with it before calling :meth:`solve`, if so desired.
  
          Returns *self*.
  
          """
          from .lmmin import Problem
  
          self.func = func
          self._args = args
          self.pnames = list(pnames)
          self.lm_prob = Problem(len(self.pnames))
          return self