Atoms response is the simplest route, otherwise
In your geo network run your geo into (1) a volume node and then into a volume vop to set up your vector direction and noise, then in a secondary tree run (2) your geo into a vdb from polygons with like 0.1 voxel size with a fog vdb, then scatter points in that vdb. Then drop down a attribute from volume, set it to vector and set its name to "vel" both the trees will plug into the attribute from volume, scatter goes into points to apply attribute and the volume vop into the volumes to use, then drop down a volume rasterizeattributes with attributes set to "vel" and into a Null. You can test what its doing by using the usual volume trail sop and use the same points and volume rasterize outputs to check your velocity field.
Just as an NB point in your volume vop you have to bind export to "vel" with what ever noise etc your adding.
in your DOP network you can either use a volume source or popadvect by volumes.
Volume source: set initialize to source flip and point the sop path to the out vel null you made, also change field to match and source volume/target field names to vel.
pop advect is pre set up with vel.
This gives you the ability to add alot of control, and is how they went through in in the master class/ or top 10 new features for 17 if i remember correctly.
Below is the same applied to a FLIP Tank and emission from a geo object as mentioned using this method.