def METHOD_NAME(self, particulator):
    if len(particulator.products) != 0:
        path = (
            self.products_file_path
            + "_num"
            + self.add_leading_zeros(particulator.n_steps)
        )
        self.exported_times["products"][path] = (
            particulator.n_steps * particulator.dt
        )
        if self.verbose:
            print("Exporting Products to vtk, path: " + path)
        payload = {}
        if particulator.mesh.dimension != 2:
            raise NotImplementedError(
                "Only 2 dimensions data is supported at the moment."
            )
        data_shape = (particulator.mesh.grid[1], particulator.mesh.grid[0], 1)
        for k in particulator.products.keys():
            v = particulator.products[k].get()
            if isinstance(v, np.ndarray):
                if v.shape == particulator.mesh.grid:
                    payload[k] = v[:, :, np.newaxis]
                else:
                    if self.verbose:
                        print(
                            f"{k} shape {v.shape} not equals data shape {data_shape}"
                            f" and will not be exported",
                            file=sys.stderr,
                        )
            elif isinstance(v, numbers.Number):
                if self.verbose:
                    print(
                        f"{k} is a Number and will not be exported", file=sys.stderr
                    )
            else:
                if self.verbose:
                    print(f"{k} export is not possible", file=sys.stderr)
        y, x, z = np.mgrid[
            : particulator.mesh.grid[0] + 1, : particulator.mesh.grid[1] + 1, :1
        ]
        y = y * particulator.mesh.size[0] / particulator.mesh.grid[0]
        x = x * particulator.mesh.size[1] / particulator.mesh.grid[1]
        z = z * 1.0
        gridToVTK(path, x, y, z, cellData=payload)
    else:
        if self.verbose:
            print("No products to export")