Magma zonation: Effects of chemical buoyancy and diffusion