code: def product(target, prop1, prop2, **kwargs):
      r
      value = target[prop1]*target[prop2]
      for item in kwargs.values():
          value *= target[item]
      return value
docs: r"""
      Calculates the product of multiple property values
  
      Parameters
      ----------
      target : OpenPNM Object
          The object which this model is associated with. This controls the
          length of the calculated array, and also provides access to other
          necessary properties.
  
      prop1 : string
          The name of the first argument
  
      prop2 : string
          The name of the second argument
  
      Notes
      -----
      Additional properties can be specified beyond just ``prop1`` and ``prop2``
      by including additional arguments in the function call (i.e. ``prop3 =
      'pore.foo'``).