diffusion code with boundaries that are communicated across blocks