Non‐Newtonian fluids - gnomeCreative/HYBIRD GitHub Wiki
Non-Newtonian fluids
In LBM, a non-Newtonian fluid requires a formulation with a variable viscosity. The code uses a simplified approach to this problem, adapting Eq.~\ref{eq:mu} so that it can take into account the spatial variability of $\nu$. Before doing that, it is useful to express the lattice viscosity in dimensional terms, i.e. using the spacial discretization $\Delta S$, the time step $\Delta t$ and the reference density $\rho_\textrm{ref}$:
$\nu(x,t)=\frac{\tau(x,t)-1/2}{3} \frac{\rho_\mathrm{ref}\Delta S^2}{\Delta t}$.
Inverting this equation, one obtains a constitutive law for the relaxation time:
$\tau(x,t)=\frac{1}{2}+3\nu(x,t) \frac{\Delta t }{\rho_\mathrm{ref}\Delta S^2}$.
For many non-Newtonian rheologies, the viscosity is defined as a function of the shear rate $\dot{\gamma}$. Unlike in traditional CFD solvers, where the computation of $\dot{\gamma}$ needs the reconstruction of spatial derivatives, in LBM it can be computed locally from the distribution function as
$\dot{\gamma}_{ab} (x,t) = \frac{3}{2\tau(x,t)} \sum_i c_{i,b} c_{i,a} (f_i (x,t) -f^\textrm{eq}_{i}(x,t))
$
where the Einstein notation convention has been used for the indices $a$ and $b$. The capability of LBM to compute the shear rate locally gives a great computational advantage, again simplifying its implementation in parallel architectures.
Many non-Newtonian models, however, require the viscosity to vary within very large ranges, often diverging to $+\infty$ or vanishing to zero. In LBM term, this means that the relaxation time would need also to vary within the range $\left[0.5,+ \infty\right]$. This however causes stability issues, because the relaxation time should not be larger than $1$, and always strictly larger than $0.5$. In the literature, various alternative solution to this problem are available. The simplest solution, and the easier to implement, is to limit $\tau$ between two values $\tau_\textrm{min}$ and $\tau_\textrm{max}$ (see Svec et al., 2019). The limit values are determined empirically, and are taken to be $\tau_\textrm{min}=0.5005$ and $\tau_\textrm{max}=1.0$. In dimensional form, we can also determine the related minimum and maximum values of viscosity:
$\mu_\mathrm{min}=\frac{\tau_\mathrm{min}-1/2}{3} \frac{\rho_\mathrm{ref}\Delta S^2}{\Delta t}$.
$\mu_\mathrm{max}=\frac{\tau_\mathrm{max}-1/2}{3} \frac{\rho_\mathrm{ref}\Delta S^2}{\Delta t}$.
Note that, while the values of $\tau_\textrm{min}$ and $\tau_\textrm{max}$ are fixed (or, at least, have limited variability), the values of $\mu_\textrm{min}$ and $\mu_\textrm{max}$ can be controlled by the user by changing the time and space discretizations $\Delta S$ and $\Delta t$. A discussion about this and its effect on the accuracy of the simulations is given in Tutorial 2.