Dear Espresso Developers,
I have recently started to simulate fluid flows that are driven by
external volume forces using the Lattice Boltzmann algorithm implemented
in Espresso.
As I have simulated the external force driven Poiseuille flow between
two immobile walls (using the lbboundary command) I have experienced a
huge offset compared to the analytic solution (next to the offset caused
by the effective boundary location).
Checking the Espresso source code I have found the following line in the
'lb.h' file in the functions 'lb_calc_local_fields' and 'lb_calc_local_j' :
j[i] += 0.5*lbpar.ext_force[i], where i=0,1,2 and j is the local
momentum density.
Comparing this to the theory, I think it should be
j[i] += 0.5*lbpar.ext_force[i]*lbpar.tau,
i.e. the force should be scaled by the time step tau.
Implementing this in my source code indeed gave me the right solution
for a grid size of a=1. Changing this to a=0.5 again caused an offset.
Could it be possible that the force has to be scaled not only by time,
but also by the grid size? I have noticed similar scalings in older
versions of Espresso (Version 2.1.2).
On another note, is there any progress, or is it planned to allow the
user to set the node populations manually (like e.g. the velocity)? I
have noticed that the declaration of the corresponding function is
already implemented, but the function is empty.
Thank you very much for your troubles in advance,
best,
Wolfgang