The unit conversion is an important part between the Lattice Unit and Physical Unit.

Basics

The numerical parameters, including lattice spacing, Re number, and kinematic viscosity, are computed as follows:

$$\delta_x = \frac{L_x}{N_x-1}$$ $$Re=\frac{UL_x}{\nu}=\frac{U_lb(N_x-1)}{\nu_{lb}}$$ $$\dashrightarrow \nu_{lb}=\frac{U_lb(N_x-1)}{Re}$$

Alternatively, define the kinematic viscosity:

$$U = \frac{\delta_x}{\delta_t}U_{lb}$$ $$\nu_{lb}=\nu\frac{\delta_t}{{\delta_x}^2}$$

Setup of a simulation

Pick Nx (number of lattice sites) and calculate: $$\delta_x = \frac{L_x}{N_x-1}$$ Pick: $$U_{lb} « 1$$ and calculate time step: $$\delta_t = \delta_x\frac{U_{lb}}{U}$$

Now, calculate kinematic viscosity and relaxation factor:

$$\nu_{lb}=\nu\frac{\delta_t}{{\delta_x}^2}$$ $$\dashrightarrow \omega=1/(3\nu_{lb}+1/2)$$

Evaluation of simulation results

Evaluate the physical variables from the numerical values, including fluid velocity and pressure:

$$U = \frac{\delta_x}{\delta_t}U_{lb}$$ $$p=\rho_0\frac{1}{3}\nu\frac{{\delta_x}^2}{\delta_t}(\rho_{lb}-1)$$

Code examples in Palabos:

template <typename Real, typename Int>
Numerics<Real, Int>& Numerics<Real, Int>::initLrefReUlb(Int l_ref_lu_,
                                                           Real re, Real u_lb_,
                                                           Int lx_lu, Int ly_lu,
                                                           Int lz_lu) {
    l_ref_lu = l_ref_lu_;
    setTau(3. * (u_lb_ * l_ref_lu_ / re) + 0.5);
    setUlb(u_lb_);
    lx_domain = lx_lu;
    ly_domain = ly_lu;
    lz_domain = lz_lu;
    is_initialized = true;
    dimless->initReLxLyLz(l_ref_lu_ * u_lb_ / getNulu(tau), lx_lu / l_ref_lu_,
                          ly_lu / l_ref_lu_, lz_lu / l_ref_lu_);
    return *this;
}

template <typename Real, typename Int>
Numerics<Real, Int>& Numerics<Real, Int>::initLrefReTau(Int l_ref_lu_,
                                                           Real re, Real tau_,
                                                           Int lx_lu, Int ly_lu,
                                                           Int lz_lu) {
    l_ref_lu = l_ref_lu_;
    setTau(tau_);
    setUlb(re * getNulu(tau_) / l_ref_lu_);
    lx_domain = lx_lu;
    ly_domain = ly_lu;
    lz_domain = lz_lu;
    is_initialized = true;
    dimless->initReLxLyLz(l_ref_lu_ * u_lb / getNulu(tau), lx_lu / l_ref_lu_,
                          ly_lu / l_ref_lu_, lz_lu / l_ref_lu_);
    return *this;
}

A PDF file can be found at: LINK