The serial kernels already contain the necessary logic to implement periodic boundary conditions. This logic needs to be moved to the distributed kernels. The MSG ghost update layer must also exchange ghosts periodically. This should already be implemented in 2D in the periodic branch of boxmg-legacy.