\documentclass{standalone}
\usepackage{tikz}
\usepackage{fix-cm}
\usepackage[dvipsnames]{xcolor}
 \usetikzlibrary {arrows.meta}

\newcommand*{\Width}{1}%
\newcommand*{\Height}{1}%
\newcommand*{\XOffset}{2}%

\begin{document}
\begin{tikzpicture}[scale=1]

  \draw[thick,step=1.0] (0,0) grid (\Width + 1,-\Height - 1);

  \foreach \y in {0,...,\Height} {
    \foreach \x in {0,...,\Width} {
      \node[font=\large] at (\x + 0.5,-\y - 0.3) {
        p\pgfmathparse{int(\y * (\Height + 1) + \x)}\pgfmathresult
      };
      \node[font=\fontsize{8}{8}\selectfont] at (\x + 0.5,-\y - 0.75) {(x,y,z)};
    }
  }

  %\draw[thick,step=1.0] (\Width + \XOffset,0) grid ((\XOffset + \Width) * 4 + 1,-\Height - 1);
  \draw[thick,step=1.0] (\Width + \XOffset,0) grid (\XOffset + 2 * 4 + 1,-\Height - 1);

  \foreach \y in {0,...,\Height} {
    \foreach \x in {0,...,\Width} {
      \foreach \i in {0,...,3} {
        \node[font=\large] at (\Width + \XOffset + \x * 4 + \i + 0.5,-\y - 0.3) {
          p\pgfmathparse{int(\y * (\Height + 1) + \x)}\pgfmathresult
        };
        \node[font=\fontsize{8}{8}\selectfont] at (\Width + \XOffset + \x * 4 + \i + 0.5,-\y - 0.75) {(x,y,z)};
      }
    }
  }

  \draw[-{Stealth[BrickRed]}, ultra thick, BrickRed] (2.1,-1) -- (2.9,-1);

  \node[font=\large\bfseries ]  at ( 1,0.5)  {particle state};
  \node[font=\large\bfseries ]  at ( 7,0.5)  {vertex coordinates};

\end{tikzpicture}

\end{document}
