How do we produce LESS smoke?
Issue

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.



Solution

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