Dear colleagues,
I have spent a few weeks trying to figure this problem out with no success, so that I post this question here. First of all, I have to say I am new to LBM method.
I am working on a simple problem testing the method in MATLAB: I am trying to compute the lift and drag coeff in the 2D problem of a Re=100 on a circular cylinder (with the aim to try also other square/round shapes) in a channel with a Poiseuille flow and with H/D=4.1, being H the channel width and D the diameter of the cylinder (to be validated with Schafer & Turek data from literature: Cd_max = 3.22 with Cd_avg =3.20 approx; Cl=+/- 0.96 approx.)
The LBM code works with BGK (SRT) and bounce-back method (for cylinder and walls, just), and I calculate forces on the cylincer with the momentum exchange method.
My concern is that I am trying different number of nodes to discretize the domain (I always aim to keep Delta_x=Delta_y=Delta_t=1, as recommended in the literature, as well as tau between 0.5-1 and low Mach). However, despite my flow field seems to remain not much perturbed (likely only some phase delays are observed), the calculation of drag and lift coefficients change dramatically. Concretely in terms of the period of the oscillation, which seems to be kinda doubled if number of y-lattices is doubled, as in the attached figure).
I have checked carefully and the method detects my cylinder boundaries well and does not include the channel walls or any other internal nodes in the calculation, so I think the problem is not in the selection of boundary nodes (I attach a gif for D=20 (nodes in y: ly=82) which shows the nodes that are selected during the momentum exchange method, with each border node position xf highlighted in yellow and adjacent solid nodes generated in orange).
I am not sure whether to make forces non-dimensional I have to make any additional step or whether my dependence with the number of lattice nodes are making any change. I have read the Krüger at al. The Lattice Boltzman Method book, and in the non-dimensional chapter does not say anything about lift/drag. I define the characteristic length diameter in lattice units by using the relation H/D=4.1 and the number of lattice nodes in y, ly: D = (ly-2)/4.1. Then, I calculate e.g. lift by: Fy./(0.5.*(U^2).*ceil(D)), where U is the mean inlet velocity and I try to avoid D to be with decimals so that ceil() affects minimally.
Fx and Fy is calculated in the boundary/solid node detection loop simply by (in MATLAB, right after collision and before streaming):
Fx = Fx + cx(i)*( f_star(i, xf) + f_star(opp(i), xb));
Fy = Fy + cy(i)*( f_star(i, xf) + f_star(opp(i), xb));
where xf are border nodes and xb are solid nodes (see gif file if you need) and
cx = [ 0, 1, 0, -1, 0, 1, -1, -1, 1];
cy = [ 0, 0, 1, 0, -1, 1, 1, -1, -1];
opp = [ 1, 4, 5, 2, 3, 8, 9, 6, 7];
I hope you can provide any help. Any help or support is pretty much appreciated.
Best regards and many thanks in advance.