In this video I just talked about how you can control simulations with volume advection and custom vector fields, specifically using a curve. Might be worth trying. Also, if you wait until Housini 20, they show an opencl snippet that uses a curve to control a smoke simulation.