I'm struggling to get a working LBM reaction-diffusion implementation. I have a pretty weak mathematics and physics background, and thus I'm having a hard time understanding the notations around the BGK operator. I would like to know if I understood the basics correctly.
Right now, what I'm doing is the following (v is the diffusive species I'm interested in), on a D2Q5 grid, in pseudo-code:
v[0, :] = initial_condition t = 0 while t < t_max: for each node x: compute a pseudo (pre-collision?) dv[x]/dt using the forward Euler method for each node x: real dv[x]/dt = 1/3 * dv[x]/dt + 1/6 * dv[left of x]/dt + 1/6 * dv[right of x]/dt + 1/6 * dv[above x]/dt + 1/6 * dv[below x]/dt (if x is on a domain boudary, use bounce-back condition) v[t, x] += dv[x]/dt t += dt
Is this correct, theory-wise, or am I missing something?
Thanks for any help. I'm happy to share my code if anyone wants to go this far to help me. Once I'll have it working (probably in python), I will distribute it without conditions.