In the half cylinder example, it would be nice to be able to visualise the flow using for example a passive tracer injected at the inlet. This is very simple, just modify the half-cylinder.gfs parameter file like this:
4 3 GfsSimulation GfsBox GfsGEdge {} {
GfsTime { end = 9 }
GfsRefine 7
GtsSurfaceFile half-cylinder.gts
GfsVariableTracer {} T
...
GfsOutputPPM { step = 0.02 } tracer.ppm {
min = 0 max = 1 v = T
}
GfsOutputSimulation { step = 0.1 } half-cylinder-%3.1f.gfs {
variables = U,V,P,T
}
...
}
GfsBox { left = GfsBoundary {
GfsBcDirichlet U 1
GfsBcDirichlet V 0
GfsBcDirichlet T { return y > 0. ? 1. : 0.; }
}
}
...
which will inject tracer T at the inlet only in the upper half
of the channel.
The adaptive refinement algorithm shoud also take your tracer into account. Try this
...
GfsAdaptVorticity { istep = 1 } { maxlevel = 7 cmax = 1e-2 }
GfsAdaptGradient { istep = 1 } { maxlevel = 7 cmax = 1e-2 } T
...
which will adapt using both the gradient of tracer T and the vorticity.
You can have any number of tracers you want, they are dynamically allocated.