Re: Operate the whole vector field
respect for digging in OpenLB. So far you got realy deep 😉
I would like to see much more people doing so.
First, pay attention to the dimensions.
SuperLatticePhysVelocity3D maps from R^3 -> R^3
AnalyticalConst3D maps from R^3 -> R^1
However, to get a three dimensional Image, OpenLB overloads the constructor by:
AnalyticalConst3D<T,T> Number2( T( 1. ),T( 1. ),T( 1. ) ); // will map from R^3 -> R^3
Second, I think OpenLB does not offer a functor to only manipulate a single component of a vector. We are not aware of any application for this operation. Fortunately, it is more of less easy to implement such a functor.
Third, OpenLB requires a lattice functor for writing simulation data to VTK format. You definitely can not store analytical functors. Usually, those mulitplication or other arithmetic operations of velocity fields are done by post processing tools, see ParaView filter CALCULATOR. However, if the result is needed at simulation time, there is perhaps no need to write the data to file system.
Third, I do not get the point of several lattices. I am used to have a lattice for a flow field. So as long as you stay with single phase flows, there is no need to deal with several lattices. What is your point?