LOVE smoke sims. But sometimes, it's too darn much smoke - here's a train scaled to travel 60 MPH. I'm just fussing around with a BIG domain and 120 resolution divisions LOOKS like a small enough voxel (?) for that smokestack which is holding a vertex group - the top rim. That size though! It's gushing giant clouds instead of smokestack sized pillows as implied by the sample voxel or smoke pixel.
Domain is too long. If you set Divisions to 120 means longest side of domain is divided by this value. For domain of this lenght it means "big" voxel cell.
You can try by your self, go to edit mode, with Ctrl+R close to center of long edge (when yellow loop appear) type 120, so domain become divided by this number. From there you can see that emitter is inside one voxel and rising smoke expand into two others.
You would have to increase divisions, but for this type of domain totally unreasonable. Depend on animation type you can try something else.
- Make domain shorter and enable Dissolve, so smoke disappear in specified amount of frames. From your file I see you already use it, so parent domain to your train and enable also Adaptive domain.
Or try particles instead https://www.youtube.com/watch?v=tL0G5oOjdtk
For stady camera, like viewing incoming train with long smoke trail, you can try to use more domains https://vimeo.com/246353861
Once I tried shape keys for incoming car. Long domain with same divisions for far shot, but when car become closer I animated domain lenght into shorter. So for close up view domain became with enough division in camera view. I even didnt expect it can work, so there was offcourse issue, in a moment of resize domain smoke like exploded :) https://vimeo.com/177600070