Supports 1D, 2D, and 3D domain decomposition.
Current implementation allows only constant sub-domain size across a given direction.