add an advect and gradient interface