The primary source for the implementation of the Casson model can be found [here](https://doi.org/10.1007/s10955-005-8415-x)
%% Cell type:code id: tags:
``` python
stencil=LBStencil(Stencil.D3Q27)
W=41
L=1*W
domain_size=(L,W,W)
omega=1.0
nu=lattice_viscosity_from_relaxation_rate(omega)
driving_force=0.0001
```
%% Cell type:markdown id: tags:
The only parameter of the model is the so-called yield_stress. The main idea is that no strain rate is observed below some stress. However, this leads to the problem that the modified relaxation rate might no longer lead to stable LBM simulations. Thus an upper and lower limit for the shear relaxation rate must be given. All the parameters are combined in the `CassonsParameters` dataclass
where $\lvert \dot{\gamma} \rvert$ is the shear strain rate, $\sigma$ is the shear stress, $\nu$ is a constant viscosity $\rho$ is the density and $\Delta t$ is the lattice timestep size. The strain rate tensor is computed in the same way as in `Tutorial 06: Modifying a LBM method: Smagorinsky model`.
In order to calculate the adapted viscosity the following equation is used: