docs: def iterator_chain(variables: VarType, parent: str = None) -> Iterable[VarMatrix]:
      """This successively appends each element of an array to a single list of values.
  
      This takes a list of values and puts all the values generated for each element in
      the list into a single list of values. It uses the :func:`itertools.chain` function to
      achieve this. This function is particularly useful for specifying multiple types of
      simulations with different parameters.
  
      Args:
          variables: The variables object
          parent: Unused
  
      """
      logger.debug("Yielding from append iterator")
      if not isinstance(variables, list):
          raise ValueError(
              f"Append keyword only takes a list of arguments, got {variables} of type {type(variables)}"
          )
  
      # Create a single list containing all the values
      yield list(
          chain.from_iterable(
              variable_matrix(item, parent, "product") for item in variables
          )
      )