# Topology optimization of thermal fluid flows with an adjoint Lattice Boltzmann Method

Florian Dugast, Yann Favennec, Christophe Josset, Yilin Fan, Lingai Luo

► To cite this version:

Florian Dugast, Yann Favennec, Christophe Josset, Yilin Fan, Lingai Luo. Topology optimization of thermal fluid flows with an adjoint Lattice Boltzmann Method. Journal of Computational Physics, 2018, 365, pp.376-404. 10.1016/j.jcp.2018.03.040. hal-02368140

HAL Id: hal-02368140

https://hal.science/hal-02368140

Submitted on 9 Jun 2021

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
# Topology optimization of thermal fluid flows with an adjoint Lattice Boltzmann Method

Florian Dugast, Yann Favennec, Christophe Josset *, Yilin Fan, Lingai Luo

Laboratoire de Thermique et Énergie de Nantes, UMR CNRS 6607, La Chantrerie, Rue Christian Pauc, BP 50609, 44306 Nantes Cedex 03, France

This paper presents an adjoint Lattice Boltzmann Method (LBM) coupled with the Level-Set Method (LSM) for topology optimization of thermal fluid flows. The adjoint-state formulation implies discrete velocity directions in order to take into account the LBM boundary conditions. These boundary conditions are introduced at the beginning of the adjoint-state method as the LBM residuals, so that the adjoint-state boundary conditions can appear directly during the adjoint-state equation formulation. The proposed method is tested with 3 numerical examples concerning thermal fluid flows, but with different objectives: minimization of the mean temperature in the domain, maximization of the heat evacuated by the fluid, and maximization of the heat exchange with heated solid parts. This latter example, treated in several articles, is used to validate our method. In these optimization problems, a limitation of the maximal pressure drop and of the porosity (number of fluid elements) is also applied. The obtained results demonstrate that the method is robust and effective for solving topology optimization of thermal fluid flows.

## 1. Introduction

The determination of optimal designs is an important objective in many engineering problems. Basically, three categories of optimization are classified [1,2]: size, shape or topology optimization. In size optimization, only the dimension of geometric parameters can be modified, while in shape optimization the boundary of the geometry can evolve. Topology optimization goes one step further, permitting the modification of the connectivity between different parts of the geometry, i.e. the creation of holes or more complex structures. As a result, it has the highest number of degrees of freedom, but it is also the most complicated.

The basic idea of topology optimization is to optimize a material allocation problem in which the material can have different properties. One of the first applications concerns the structural mechanical optimization, with compliance minimization [3,4]. Bendsøe [3] used the density approach for the material distribution: 0 for void and 1 for solid elements. To solve the discontinuities at the interface of the two materials, some homogenization methods have been employed including the well known Solid Isotropic Material with Penalization (SIMP) method [5].

Borrvall and Petersson [6] pioneered in fluid topology optimization problems by following the same approach as Bendsøe [3], with a geometry composed of solid or fluid nodes. This approach has then been applied by many researchers for topology optimization of fluid flow without heat transfer [7–12], or for coupled heat transfer and fluid flow (thermal fluid

<footnote>* Corresponding author.
E-mail address: christophe.josset@univ-nantes.fr (C. Josset).</footnote>
flow) problems [13–17]. The flow field (forward problem) can be found by solving the Navier–Stokes equations via finite volume or finite element methods, but the computational cost is important for large domains. The computation time of the forward problem is particularly essential in topology optimization because it must be solved at each optimization iteration. Recently, Lattice Boltzmann Method (LBM) has become an interesting alternative for solving fluid flow problems [18,19]. This method works at a mesoscopic scale where the displacement and collision of particles are solved via the Boltzmann equation. The moments of the distribution function associated with the Boltzmann equation can give access to the macroscopic variables (density, velocity and pressure) of the fluid. It can also be applied to thermal flows by computing a second distribution function for the heat transfer [20–22]. Owing to its high parallel computing performance, LBM can be implemented efficiently on GPU cards [23–25], providing less computation time. Moreover, the boundary conditions are easy to handle and well suited for topology optimization problems, in which the boundaries can be complex.

Once the forward problem is solved, the geometry (fluid/solid repartition) is to be updated at each optimization iteration. Local criteria-based methods like evolutionary algorithms or cellular automaton [26–28] are easy to implement because they are gradient-free. But the connection between the local criteria and the cost function to be minimized can be hard to find, and the improvement of the cost function at each optimization iteration is not ensured. Contrary to local criteria-based methods, the meta-heuristic methods, like Genetic Algorithm, are based on the cost function only, and are well suited to find a global optimum. But, in topology optimization, the number of design variables is large, and the computational time using these methods would be too prohibitive for real problems. To cope with such difficulties, the alternative is to use a gradient-type method because it requires only one forward problem solution and one gradient computation for each optimization iteration [29]. This gradient can sometimes be difficult to compute, so an adjoint-state method is usually used to overcome this obstacle. The adjoint-state method avoids the calculation of the derivative of the state variable with respect to all design variables by direct differentiation, which would be too expensive to compute for a large number of design variables [30,31]. An additional equation for the adjoint state is then necessary, but its solution has the same computational cost as that for the forward problem.

Tekitek [32] first proposed an adjoint-state Lattice Boltzmann equation limited to a parameter identification problem. In a pioneering work for LBM topology optimization, Pingen [2] found similar optimal configurations with LBM and adjoint-state method compared to the work of Borrvall and Petersson [6], using a finite element method. Also, a thermal flow LBM topology optimization method has been proposed by Pingen [15]. In [2] and [15], the adjoint state is calculated after discretization of the Lattice Boltzmann equation via a large sparse matrix. This is a time and memory consuming opera-tion which goes against the simplicity of LBM. Following the approach of Pingen, Kirk [33] implemented a LBM topology optimization method for a transient flow. Yonekura [34] and Nørgaard [35] also worked on LBM transient flows. In these works, it was required to store the state variables of the forward problem in all time iterations for the adjoint-state calcula-tion, which constituted a bottleneck. Then, Krause [36] presented in a fluid flow control problem a continuous adjoint-state LBM to avoid dealing with the matrix operations, as it was required in [2]. Yaji formulated a LBM fluid flow topology op-timization method [37] with velocity discrete Boltzmann equation to derive the adjoint states, and Liu [38] used discrete adjoint-state LBM, but with the Multiple Relaxation Time (MRT) collision operator. In both works, the LBM boundary con-ditions were very simple (bounce-back or periodic), while commonly-used velocity and pressure boundary conditions [19] were not treated. Then, Yaji [39] proposed a topology optimization method for thermal fluid flows where the velocity di-rections were discretized in the adjoint-state LBM to introduce commonly-used boundary conditions (prescribed velocity or pressure for the fluid flow, prescribed temperature or heat flux for the thermal problem). In [39], the optimization prob-lem was solved with the SIMP method. This approach allows intermediate densities between the two material densities, resulting in a smoother transition on the fluid/solid interface. Even if the intermediate densities are penalized such that 0-1 solutions are encouraged, some regions (called grayscales) can still subsist, and the optimal design is not clearly defined. Some filtering techniques have been proposed to cope with such an issue, but they add some random parameters which are not convenient to use. To address this issue, the Level-Set Method (LSM) [40–42] can be employed to define the material distribution. LSM also provides a smooth transition between fluid and solid for the gradient calculation but the interface between the two materials is clearly defined by the zero contour of a Level-Set Function (LSF), and the target structure is modified by updating the LSF only. The evolution of the LSF is usually calculated by an Hamilton Jacobi equation with the topological derivatives obtained by a sensitivity analysis. During the optimization process, the LSF can become too flat or too steep, resulting in numerical instabilities. To prevent this problem, the LSF should be close to a signed distance function $\Psi$, respecting $|\nabla\Psi| = 1$. This requirement cannot always be ensured by the Hamilton Jacobi equation. Therefore, classical LSM usually require re-initializations during the optimization process. An additional partial differential equation, given by [43], needs to be solved for the LSF re-initialization, and this process can cause inconsistencies like interface shifting [44,45]. Diffusive terms have been introduced in LSF by the Allen–Cahn equation [46,47] to avoid reinitialization [48–50], allowing a smooth transition at the interface between the two materials. With this feature, LSM is very close to the phase field method, as noticed in [51]. More details on the LSM can be found in the review study of Van Dijk [51].

In this paper, we present an adjoint-state LBM for the topology optimization of thermal fluid flows. Different from the work of Yaji [39], LSM is used instead of SIMP, to obtain a clearer fluid/solid interface and so to avoid grayscales. For convec-tive problems, it is therefore possible to easily implement fluid and solid parts with very different thermal properties (for example water and steel). This is more difficult with the SIMP method where intermediate material properties would not have any physical meaning. We have restricted the range of the LSF to the interval $[-1: 1]$ in order to avoid re-initializations during the optimization process, as suggested by [50]. It should be noted that contrary to the LSF used in [37,50,52,53], our
method does not need any regularization term in order to obtain optimal solutions. Concerning the adjoint-state formulation, the discrete boundary conditions are included at the beginning of the adjoint-state method as the LBM residuals, so that the adjoint-state boundary conditions can appear directly during the adjoint-state equation formulation. Keeping the boundary conditions in terms of residuals allows us to make the derivation of the boundary conditions in a general way, so that it could be simple to modify the adjoint-state calculations if the boundary conditions of the forward problem are to be modified. Expressing boundary conditions as residuals has already been made in [29], but, to the authors knowledge, for periodic and bounce-back conditions only, and not for prescribed velocity, or pressure boundary conditions, which are more complex to deal with. Furthermore, the incompressible LBM model [54,55] is used to improve the accuracy of the LBM forward problem, which also simplifies the calculation of the adjoint equilibrium distribution function for the adjoint state. It also improves the stability of the adjoint states at higher Reynolds numbers (up to 50).

To sum up, the major novelty of this paper lies in: (1) the solution of thermal fluid flow topology optimization problems using an adjoint-state LBM coupled with the LSM, (2) the new introduction of the LBM boundary conditions in the adjoint-state formulation, and (3) the use of the LBM incompressible model that improves the forward problem accuracy, and simplifies the adjoint-state calculations.

This paper is organized as follows. Section 2 presents the forward LBM problem for thermal fluid flows. Section 3 presents the formulation of adjoint states, and the calculation of the related boundary conditions. In section 4, the proposed method is tested with 3 numerical examples concerning thermal fluid flows, with different objectives: minimization of the mean temperature in a domain for the first case, and maximization of the heat exchange for the second and the third case. For the second case, the hot temperature is prescribed on top and bottom walls while for the third case, the heat source is generated by solid parts. This latter example, already presented in several articles [17,39,53], serves as a comparison to validate our method. In these optimization problems, a limitation of the maximal pressure drop and of the porosity (void volume of fluid) is also applied. The effectiveness of the optimization method is evaluated through a systematic parametric study for the two first cases. Section 5 provides a detailed discussion on various interesting issues. Finally, in section 6, major conclusions achieved and perspectives of the study are presented.

## 2. Forward modeling based on the Lattice Boltzmann Method

### 2.1. Lattice Boltzmann Equation for fluid flow

The concept of LBM is based on a kinetic model describing the flow field at a mesoscopic scale. In this method, the fluid flow is not considered as a continuous matter but as an aggregation of particles moving and interacting with each other in the computational domain. The Boltzmann equation is used to describe the macroscopic behavior of the fluid by a distribution function $f = f(x, t, c)$ such as [56,57]:

$$ \frac{\partial f}{\partial t} + \mathbf{c} \cdot \nabla f = \Omega(f) \qquad (1) $$

in which $f$ represents the probability for a particle to be at the position $x$, at time $t$, and with velocity $c$. The operator $\Omega$ deals with collisions between particles. Since it is difficult to take collisions into account, a simple operator has been introduced by Bhatnagar-Gross-Krook (BGK) [58,59]:

$$ \Omega = -\frac{1}{\tau} (f - f^{eq}) \qquad (2) $$

It means that collisions allow the relaxation of the distribution function $f$ towards an equilibrium state $f^{eq}$. $\tau$ represents the mean time between two collisions, which is related to the fluid viscosity:

$$ \nu = \frac{\tau - 0.5}{3} \qquad (3) $$

In (1), $c$ represents a velocity that needs to be expressed in discrete directions. For 2D problems, 9 velocity directions are necessary for calculating the flow field, this yields the so-called D2Q9 scheme [60,61], as shown on Fig. 1. These directions will be represented by $i$ and, for readability considerations, the following notation is introduced: $f_i(x, t) = f(x, t, c_i)$. In kinetic theory, when a gas is in thermodynamic equilibrium, it is modeled with an equilibrium distribution function called the maxwellian distribution. In LBM, this equilibrium function is obtained by a second-order Taylor expansion of the maxwellian distribution.

### 2.2. Incompressible D2Q9 model

The equilibrium distribution function $f^{eq}$ is usually written as:

$$ f_i^{eq} = \omega_i \rho \left[ 1 + 3(c_i \cdot u) + \frac{9}{2}(c_i \cdot u)^2 - \frac{3}{2}u^2 \right] \qquad (4) $$
<figure><img src="image_2.png" /><figcaption>Fig. 1. Discrete velocity directions.</figcaption></figure>

with $\rho$ and $\mathbf{u}$ the density and the fluid velocity, respectively. These quantities can be obtained by the moments of $f$ [62]:

$$ \rho(\mathbf{x}, t) = \sum_{i=0}^{8} f_i(\mathbf{x}, t) \qquad (5) $$

$$ \rho \mathbf{u}(\mathbf{x}, t) = \sum_{i=0}^{8} \mathbf{c}_i f_i(\mathbf{x}, t) \qquad (6) $$

For each direction, the weight $\omega_i$ is defined as follows [63]:

$$ \omega_i = \begin{cases} \frac{4}{9} & \text{for } i = 0 \\ \frac{1}{9} & \text{for } i = 1-4 \\ \frac{1}{36} & \text{for } i = 5-8 \end{cases} \qquad (7) $$

In this model, a compressibility effect is introduced in the Lattice Boltzmann method. If the density fluctuations are small, the incompressible equations can be recovered. Nevertheless, a LBM incompressible model has been proposed by He and Luo [54] in order to deal directly with incompressible fluids. In this model, the density $\rho$ is equal to $\rho_0 + \delta\rho$. With $\rho_0 = 1$, the equilibrium distribution function becomes [55,64]:

$$ f_i^{eq} = \omega_i \left[ \rho + 3(\mathbf{c}_i \cdot \mathbf{u}) + \frac{9}{2}(\mathbf{c}_i \cdot \mathbf{u})^2 - \frac{3}{2}\mathbf{u}^2 \right] \qquad (8) $$

with

$$ \mathbf{u}(\mathbf{x}, t) = \sum_{i=0}^{8} \mathbf{c}_i f_i(\mathbf{x}, t) \qquad (9) $$

The pressure is also defined with the moments of $f$ such as:

$$ p(\mathbf{x}, t) = c_s^2 \rho(\mathbf{x}, t) \qquad (10) $$

with $c_s = 1/\sqrt{3}$, the lattice speed of sound. The fluid velocity needs to be very low compared to $c_s$ for the LBM to be valid. The streaming step consists in the propagation of the information to the neighbor nodes. Some populations on the boundaries will be therefore unknown after this step. The calculation of these populations is performed by applying boundary conditions. A schematic representation of such boundary conditions will be given later on, in section 4 (see Fig. 2).

The following boundary conditions for LBM are now expressed for the fluid flow. Let us introduce the partition $\partial X = \partial X_1 \cup \partial X_2 \cup \partial X_3$. $\partial X_1$ represents the inlet with a prescribed velocity, $\partial X_2$ stands for the outlet with a prescribed pressure, and $\partial X_3$ corresponds to no-slip walls.

As shown in Fig. 1, and later in Fig. 2, the unknown distribution functions at the inlet are $f_1$, $f_5$ and $f_8$ (in the directions such as $\mathbf{c}_i \cdot \mathbf{n} < 0$, with $\mathbf{n}$ the outward unit normal vector). We can then impose a prescribed velocity ($u_{in}$, $v_{in}$), by rewriting Eqs. (5) and (9):

$$ \rho = f_0 + f_1 + f_2 + f_3 + f_4 + f_5 + f_6 + f_7 + f_8 \qquad (11) $$

$$ u_{in} = f_1 - f_3 + f_5 - f_6 - f_7 + f_8 \qquad (12) $$

$$ v_{in} = f_2 - f_4 + f_5 + f_6 - f_7 - f_8 \qquad (13) $$
To solve this system, an additional equation is necessary because the density $\rho$ is also unknown. Following [19], the bounce-back rule is applied for the non-equilibrium part of the distribution functions, normal to the boundary:

$$f_1 - f_1^{eq} = f_3 - f_3^{eq} \qquad (14)$$

After proper arrangements, with $v_{in} = 0$, we finally obtain:

$$\left\{
\begin{aligned}
\rho &= u_{in} + f_0 + f_2 + f_4 + 2(f_3 + f_6 + f_7) \\
f_1 &= f_3 + \frac{2}{3}u_{in} \\
f_5 &= f_7 + \frac{1}{6}u_{in} + \frac{1}{2}(f_4 - f_2) \\
f_8 &= f_6 + \frac{1}{6}u_{in} - \frac{1}{2}(f_4 - f_2)
\end{aligned}
\right.
\qquad (15)$$

The same procedure can be applied for the outlet, with $\rho$ the prescribed density (i.e. pressure), and the velocity $u$ to be determined. At the solid walls, the no-slip boundary condition is enforced with the bounce-back rule. The collision step is not applied for the distribution functions $f$ in the solid nodes, because of the zero velocity for these nodes. This boundary condition (15) has been derived for the incompressible model. For the compressible model, the derivation gives:

$$\left\{
\begin{aligned}
\rho &= (f_0 + f_2 + f_4 + 2(f_3 + f_6 + f_7))/(1 - u_{in}) \\
f_1 &= f_3 + \frac{2}{3}\rho u_{in} \\
f_5 &= f_7 + \frac{1}{6}\rho u_{in} + \frac{1}{2}(f_4 - f_2) \\
f_8 &= f_6 + \frac{1}{6}\rho u_{in} - \frac{1}{2}(f_4 - f_2)
\end{aligned}
\right.
\qquad (16)$$

For solving the topology optimization problem later on, it will be necessary to differentiate these expressions with respect to $f_i$. In (15), there is a linear relationship between the velocity and $f_i$. Contrarily, in (16), $\rho$ being linear in $f_i$, there is no more linear relationship between $u_{in}$ and $f_i$. This constitutes one reason why the derivation of the boundary conditions in adjoint states will be later on simplified using the incompressible model over the compressible model. A comparison between the compressible and the incompressible LBM models will be presented in section 4.

## 2.3. Lattice Boltzmann Equation for the heat transfer

For the computation of the temperature field within the domain, a second distribution function $g$ is introduced. This function appears similar to $f$ (used for the flow field) in form, except for the equilibrium distribution function $g_i^{eq}$:

$$g_i^{eq} = \omega_i T (1 + 3\mathbf{c}_i \cdot \mathbf{u}) \qquad (17)$$

The temperature $T$ and the heat flux $q$ are given by:

$$T(\mathbf{x}, t) = \sum_{i=0}^{8} g_i(\mathbf{x}, t) \qquad (18)$$

$$\mathbf{q}(\mathbf{x}, t) = \sum_{i=0}^{8} \mathbf{c}_i g_i(\mathbf{x}, t) - T \mathbf{u} \qquad (19)$$

Differing from the relaxation time $\tau$ used for the fluid flow, $\tau_g$ is related to the diffusivity $\kappa$ of the medium:

$$\kappa = \frac{\tau_g - 0.5}{3} \qquad (20)$$

Similarly, we introduce the partition $\partial X: \partial X_1 \cup \partial X_2 \cup \partial X_4 \cup \partial X_5$ characterizing the thermal aspects of the boundary conditions. $\partial X_1$ represents the fluid inlet with a prescribed temperature, $\partial X_2$ stands for the outlet with an outflow boundary condition, $\partial X_4$ corresponds to adiabatic solid walls, and $\partial X_5$ accounts for another prescribed temperature.

Following [65], the unknown distribution functions are assumed to be equilibrium distribution functions with the temperature $T'$ to be determined. For instance, the boundary conditions on $\partial X_1$ are:

$$\left\{
\begin{aligned}
g_1 &= \frac{1}{9} T'(1 + 3u) \\
g_5 &= \frac{1}{36} T'(1 + 3u) \\
g_8 &= \frac{1}{36} T'(1 + 3u)
\end{aligned}
\right.
\qquad (21)$$

For the prescribed inlet temperature, $T'$ is calculated by (18) with $T = T_{in}$. For the outlet boundary condition, $T'$ is calculated by (19) with $q = 0$. For adiabatic solid walls, the outlet boundary condition can be used with $u = 0$.
It is important to note that the LBM is a time evolution scheme that computes transient flows. It requires a sufficient number of iterations to reach the steady-state regime. Each iteration consists in one collision step, one streaming step, and the application of boundary conditions.

## 2.4. Forward problem

To summarize, the solution of the forward problem is computed by two state variables, f and g, which correspond to the LBM distribution functions, for the fluid flow problem, and the heat transfer problem, respectively. The computation of f and g is realized by solving the forward model that is composed of:

* $R_i^f$, $i = 0, ..., 8$, which stand for the residuals of the LBM fluid flow problem. These residuals read, $\forall i$:

$$R_i^f(f, \alpha) = \frac{\partial f_i}{\partial t} + \mathbf{c}_i \cdot \nabla f_i + \frac{1}{\tau}(f_i - f^{eq}(f, \alpha)) = 0 \quad (22)$$

* $P_i^f$, $i = 0, ..., 8$, which stand for the residuals of the LBM fluid flow boundary conditions. One has to make the distinction between the different parts on the boundary:

- on the inlet $\partial X_1$:

$$\left\{
\begin{aligned}
P_1^f &= f_1 - f_3 - \frac{2}{3}u_{\text{in}} = 0 \\
P_5^f &= f_5 - f_7 - \frac{1}{6}u_{\text{in}} - \frac{1}{2}(f_4 - f_2) = 0 \\
P_8^f &= f_8 - f_6 - \frac{1}{6}u_{\text{in}} + \frac{1}{2}(f_4 - f_2) = 0
\end{aligned}
\right.
\quad (23)$$

- on the outlet $\partial X_2$:

$$\left\{
\begin{aligned}
P_3^f &= f_3 - f_1 + \frac{2}{3}u = 0 \\
P_7^f &= f_7 - f_5 + \frac{1}{6}u + \frac{1}{2}(f_4 - f_2) = 0 \\
P_6^f &= f_6 - f_8 + \frac{1}{6}u - \frac{1}{2}(f_4 - f_2) = 0
\end{aligned}
\right.
\quad (24)$$

with

$$u = -\rho_{\text{out}} + f_0 + f_2 + f_4 + 2(f_1 + f_5 + f_8) \quad (25)$$

- on other walls $\partial X \setminus (\partial X_1 \cup \partial X_2)$:

$$P_{(c_i \cdot n < 0)}^f = f_{c_i \cdot n < 0} - f_{(c_i \cdot n > 0)} = 0 \quad (26)$$

* $R_i^g$, $i = 0, ..., 8$, which stand for the residuals of the LBM heat transfer problem. These residuals read, $\forall i$:

$$R_i^g(f, g, \alpha) = \frac{\partial g_i}{\partial t} + \mathbf{c}_i \cdot \nabla g_i + \frac{1}{\tau_g(\alpha)}(g_i - g^{\text{eq}}(f, g, \alpha)) = 0 \quad (27)$$

* $P_i^g$, $i = 0, ..., 8$, which stand for the residuals of the LBM heat transfer boundary conditions. One has to make the distinction between the different parts on the boundary:

- on the inlet $\partial X_1$:

$$\left\{
\begin{aligned}
P_1^g &= g_1 - \frac{1}{9}T'(1 + 3u) = 0 \\
P_5^g &= g_5 - \frac{1}{36}T'(1 + 3u) = 0 \\
P_8^g &= g_8 - \frac{1}{36}T'(1 + 3u) = 0
\end{aligned}
\right.
\quad (28)$$

with

$$T' = \frac{6(T_{\text{in}} - g_0 - g_2 - g_3 - g_4 - g_6 - g_7)}{(1 + 3u)} \quad (29)$$

- on the outlet $\partial X_2$ and Adiabatic walls (with $u = 0$) $\partial X \setminus (\partial X_1 \cup \partial X_2)$:

$$\left\{
\begin{aligned}
P_3^g &= g_3 - \frac{1}{9}T'(1 - 3u) = 0 \\
P_6^g &= g_6 - \frac{1}{36}T'(1 - 3u) = 0 \\
P_7^g &= g_7 - \frac{1}{36}T'(1 - 3u) = 0
\end{aligned}
\right.
\quad (30)$$

with

$$T' = \frac{6(g_1 + g_5 + g_8)}{(1 + 3u)} \quad (31)$$
### 3. Adjoint-state Lattice Boltzmann Method (ALBM) for topology optimization of convective fluid flows

#### 3.1. General process

Before deriving the full adjoint-state model, we give first the general process, adopting the methodology and the notations of Gunzburger [66], which are commonly used in the scientific community of optimal control and optimization of fluid flows. A general optimization problem is composed of different elements:

* the state $\phi$ – in the following derivation, this global state gathers all previously defined states, i.e., $f_i$ and $g_i$, $\forall i = 0, \dots, 8$;

* the control variables (or design parameters) $\alpha$;

* the cost function $\mathcal{J}(\phi)$ to be minimized;

* the constraint equations $F(\phi, \alpha) = 0$ – in the following derivation, this global constraint gathers all the residuals previously defined in section 2.4, i.e. equations (22)–(31).

Following Gunzburger [66], the definition of the optimization problem reads: “find the controls $\alpha$ and the state $\phi$ such that $\mathcal{J}(\phi)$ is minimized, subject to the constraint $F(\phi, \alpha) = 0$”. To enforce the constraints, a convenient way is to use the Lagrange multiplier method [67]. With $\xi$ the Lagrange multiplier (or adjoint state), the Lagrange function is defined as:

$$ \mathcal{L}(\phi, \alpha, \xi) = \mathcal{J}(\phi) + \langle F(\phi, \alpha), \xi \rangle \quad (32) $$

with $\langle \cdot, \cdot \rangle$ an appropriate inner product. At this stage, with (32), the optimization problem can be considered as unconstrained. It can be solved by searching $\alpha$, $\phi$, and $\xi$ such that $\mathcal{L}(\phi, \alpha, \xi)$ is a stationary point. This particular point satisfies the condition:

$$ \delta \mathcal{L} = \frac{\partial \mathcal{L}}{\partial \xi} \delta \xi + \frac{\partial \mathcal{L}}{\partial \phi} \delta \phi + \frac{\partial \mathcal{L}}{\partial \alpha} \delta \alpha = 0 \quad (33) $$

where $\delta \mathcal{L}$, $\delta \xi$, $\delta \phi$ and $\delta \alpha$ stand for arbitrary variations [68]. Three terms appear in the right hand side of (33):

* the first term, i.e., the differential with respect to the adjoint-state variable, $\partial \mathcal{L}/\partial \xi$, which gives back the constraint equations $F(\phi, \alpha)$, which means that the equations of the forward model are to be satisfied;

* the second term, i.e., the differential with respect to the state, $\partial \mathcal{L}/\partial \phi$, which gives the adjoint-state equation;

* the third term, i.e., the differential with respect to the control variables (optimization parameters), $\partial \mathcal{L}/\partial \alpha$, which gives the optimality conditions.

The different steps of the optimization algorithm are [66]:

1. solve the forward model, i.e., the constraint equation, in order to find the state $\phi$;

2. solve the adjoint-state model, in order to determine the adjoint state $\xi$;

3. solve the optimality conditions in order to find the derivative of the cost function with respect to the design parameters, i.e. the cost function gradient;

4. update the design parameters via a gradient-type algorithm.

The first step being presented in details in the previous section, we now focus on the derivation of the adjoint-state model before expressing the cost function gradient.

Note that, theoretically, the derivative of the cost function with respect to the design parameters could be performed thanks to a finite difference approximation. However, this would require to solve as many equations as the number of design parameters. It is not usable in topology optimization problems which usually involve thousands of parameters. In fact, the strength of the adjoint-state method is that only a single adjoint-state model has to be solved (added to the forward model) in order to determine completely the cost function gradient, regardless of the number of design parameters.

#### 3.2. Optimization settings

The general framework presented in the previous paragraph will be applied to the thermo-fluid topology optimization problem. The different elements of the proposed optimization problem become:

* the set of state variables $f$ and $g$, i.e., the LBM distribution functions for the fluid flow problem, and the heat transfer problem, respectively. These state variables were denoted compactly as $\phi$ in the previous subsection;

* the set of adjoint-state variables $f^*$ and $g^*$, denoted generically $\xi$ in the previous subsection. Similarly to $f$ and $g$, $f^*$ and $g^*$ are composed of 9 elements $f_i^*$ and $g_i^*$;
* the set of control variables (or design parameters) α. This set represents the material distribution. The spatial domain is discretized into N elements and there is one design parameter per element:

$$ \alpha(\mathbf{x}_k) = \begin{cases} 1 & \text{if } \mathbf{x}_k \text{ is a fluid element;} \\ 0 & \text{if } \mathbf{x}_k \text{ is a solid element.} \end{cases} \qquad (34) $$

This definition of α implies a crisp description of the fluid and solid domains. This also allows the use of the bounce-back boundary rule on all no-slip walls (interfaces).

* the cost function $\mathcal{J}$. In order to set-up the full derivation of the adjoint-state model, and of the cost function gradient, we start from a given objective for the optimization problem. It consists in the minimization of the mean temperature within a heated domain, while a cooling fluid is passing through it. The cost function $\mathcal{J}$ is evaluated after convergence of the forward model, i.e., at $t = t_f$. The cost function being the mean temperature, it is expressed as:

$$ \mathcal{J}(g_i) = \frac{1}{2N^2} \int_X \sum_{j=0}^{8} g_j \sum_{j=0}^{8} g_j dX \qquad (35) $$

in which X stands for the spatial domain of integration. Two additional terms, $\mathcal{J}_1$ and $\mathcal{J}_2$ are introduced in the cost function in order to control the maximal pressure drop allowed, and the porosity:

$$ \mathcal{J}_1(f_i) = \lambda_1 \Delta p_{max} \exp \left( \frac{\Delta p}{\Delta p_{max}} \right) \qquad (36) $$

$$ \mathcal{J}_2(\alpha) = \lambda_2 V_{max} \exp \left( \frac{V}{V_{max}} \right) \qquad (37) $$

with

$$ \Delta p = \frac{1}{\int_{\partial X_1} dX} \left[ \frac{1}{3} \int_{\partial X_1} \sum_{i=0}^{8} f_i(t_f) \, dX - \frac{1}{3} \int_{\partial X_2} \sum_{i=0}^{8} f_i(t_f) \, dX \right] \qquad (38) $$

$$ V = \int_X \alpha(t_f) \, dX \qquad (39) $$

and $\lambda_1 \in \mathbb{R}^+$, $\lambda_2 \in \mathbb{R}^+$ are user-defined values used for controlling the relative importance of the different contributions $\mathcal{J}$, $\mathcal{J}_1$, and $\mathcal{J}_2$. The pressure is given by (10) and $p_{out} = 1/3$ is the reference pressure, so the pressure drop function is calculated only at the inlet of the domain.

The three terms $\mathcal{J}$, $\mathcal{J}_1$, and $\mathcal{J}_2$ are gathered in the augmented cost function $\mathcal{J}^+$ such as:

$$ \mathcal{J}^{+}(g, f, \alpha) = \mathcal{J}(g) + \mathcal{J}_{1}(f) + \mathcal{J}_{2}(\alpha) \qquad (40) $$

Incorporating all previously defined residuals into the Lagrangian functional, while taking care of their domain of definition, gives:

$$ \mathcal{L}(f_i, g_i, \alpha, f_i^*, g_i^*) = \mathcal{J}^+ + \int_0^{t_f} \int_X \sum_{i=0}^{8} R_i^f f_i^* dt \, dX + \int_0^{t_f} \int_{\partial X} \sum_{i=0}^{8} P_i^f f_i^* dt \, dX \\ + \int_0^{t_f} \int_X \sum_{i=0}^{8} R_i^g g_i^* dt \, dX + \int_0^{t_f} \int_{\partial X} \sum_{i=0}^{8} P_i^g g_i^* dt \, dX \qquad (41) $$

### 3.3. Derivation of the adjoint-state problem

In this section, we derive the adjoint-state problem. Only the fluid flow adjoint-state is derived carefully, the derivation of the heat transfer adjoint-state being similar. Three mathematical properties are useful for the derivation:

**Property 1.** Integration by parts for the time derivative operator, taking into account that the differential at initial time is zero, i.e., $\delta f(t = 0) = 0$, with $\delta f$ an arbitrary variation:

$$ \int_0^{t_f} \frac{\partial \delta f}{\partial t} dt = \int_0^{t_f} -\frac{\partial f^*}{\partial t} \delta f dt + f^* \delta f (t = t_f) \qquad (P1) $$
**Property 2.** Green theorem for the spatial gradient operator, $\forall i = 0, ..., 8$:

$$ \int_X \mathbf{c}_i \cdot \nabla \delta f_i f_i^* dX = - \int_X \mathbf{c}_i \cdot \nabla f_i^* \delta f_i dX + \int_{\partial X} \mathbf{c}_i \cdot \mathbf{n} f_i^* \delta f_i dX \quad (P2) $$

**Property 3.** Index permutation

$$ \sum_{i=0}^{8} \sum_{j=0}^{8} f_i^* \frac{\partial f_i^{eq}}{\partial f_j} \delta f_j = \sum_{i=0}^{8} \sum_{j=0}^{8} f_j^* \frac{\partial f_j^{eq}}{\partial f_i} \delta f_i \quad (P3) $$

Differentiating the Lagrangian functional with respect to the states $f_i$ gives, applying the chain-rule:

$$ \begin{aligned} \sum_{j=0}^{8} \frac{\partial \mathcal{L}}{\partial f_j} \delta f_j = & \underbrace{\sum_{j=0}^{8} \delta f_j \frac{\partial \mathcal{J}_1}{\partial f_j}}_{(I)} \\ & + \underbrace{\int_0^{t_f} \int_X \sum_{j=0}^{8} \sum_{i=0}^{8} \delta f_j \frac{\partial R_i^f}{\partial f_j} f_i^* dt dX}_{(II)} \\ & + \underbrace{\int_0^{t_f} \int_{\partial X} \sum_{j=0}^{8} \sum_{i=0}^{8} \delta f_j \frac{\partial P_i^f}{\partial f_j} f_i^* dt dX}_{(III)} \\ & + \underbrace{\int_0^{t_f} \int_X \sum_{j=0}^{8} \sum_{i=0}^{8} \delta f_j \frac{\partial R_i^g}{\partial f_j} g_i^* dt dX}_{(IV)} \\ & + \underbrace{\int_0^{t_f} \int_{\partial X} \sum_{j=0}^{8} \sum_{i=0}^{8} \delta f_j \frac{\partial P_i^g}{\partial f_j} g_i^* dt dX}_{(V)} = 0 \end{aligned} \quad (42) $$

The terms (II) and (IV) will be used for the definition of the fluid flow adjoint-state variables within the domain (this derivation is given in section 3.4), while the terms (I), (III) and (V) will be used for the definition of the fluid flow adjoint-state variables on the borders (this derivation is given in section 3.5).

### 3.4. Fluid flow adjoint-state equations within the domain

Let us firstly expand the second term, i.e., (II), using the properties (P1), (P2), and (P3), taking also into account that $\partial f_i / \partial f_j = 0$ if $i \neq j$:

$$ \begin{aligned} (II) = & \underbrace{\int_0^{t_f} \int_X \sum_{i=0}^{8} \delta f_i \left( -\frac{\partial f_i^*}{\partial t} - \mathbf{c}_i \cdot \nabla f_i^* + \frac{1}{\tau} \left( f_i^* - \sum_{j=0}^{8} \frac{\partial f_j^{eq}}{\partial f_i} f_j^* \right) \right) dt dX}_{(IIa)} \\ & + \underbrace{\int_0^{t_f} \int_X \sum_{i=0}^{8} \delta f_i \mathbf{c}_i \cdot \mathbf{n} f_i^* dt dX}_{(IIb)} + \underbrace{\int_X \sum_{i=0}^{8} \delta f_i f_i^* dX(t=t_f)}_{(IIc)} \end{aligned} \quad (43) $$
Let us expand the fourth term, i.e., (IV):

$$
\begin{align}
(\text{IV}) &= \int_0^{t_f} \int_X \sum_{j=0}^8 \sum_{i=0}^8 -\delta f_j \frac{1}{\tau_g} \frac{\partial g_i^{eq}}{\partial f_j} g_i^* dt \, dX \tag{44} \\
&= \int_0^{t_f} \int_X \sum_{j=0}^8 \sum_{i=0}^8 -\delta f_i g_j^* \frac{3\omega_j T}{\tau_g} \mathbf{c}_j \cdot \frac{\mathbf{c}_i - \mathbf{u}}{\rho} dt \, dX \nonumber
\end{align}
$$

The combination of the two contributions, i.e., the terms (II) and (IV), gives the adjoint-state equations within the whole
spatial domain ($\forall \mathbf{x} \in X$), and within the whole time domain ($\forall t \in [0, t_f]$):

$$
-\frac{\partial f_i^*}{\partial t} - \mathbf{c}_i \cdot \nabla f_i^* + \frac{1}{\tau} (f_i^* - f_i^{eq,*}) + Q_i = 0 \quad \forall i \tag{45}
$$

with

$$
f_i^{eq,*} = \sum_{j=0}^{8} \frac{\partial f_j^{eq}}{\partial f_i} f_j^* \quad \text{and} \quad Q_i = \sum_{j=0}^{8} -g_j^* \left( \frac{3\omega_j T}{\tau_g} \right) \mathbf{c}_j \cdot \frac{\mathbf{c}_i - \mathbf{u}}{\rho} \tag{46}
$$

The initial condition, which applies at the final time, and within the whole spatial domain ($\forall \mathbf{x} \in X$), is given by the term
(IIc) involved in (43):

$$
f_i^*(t_f) = 0 \quad \forall \mathbf{x}, \forall i \tag{47}
$$

The term (IIb), which involves an integration over the border, and which has not been used yet, will be integrated in the
derivation of the adjoint-state boundary conditions, see next section.

3.5. Inlet boundary conditions of $f_i^*$

The derivation of the boundary conditions to be applied on the adjoint-state variables is detailed only for the inlet, i.e. $\forall \mathbf{x} \in \partial X_1$, the derivation being similar for other conditions. On the inlet, the unknown adjoint-state distributions are $f_3^*, f_6^*$ and $f_7^*$ (in the opposite directions than that of the forward model). The boundary conditions are obtained combining the three terms (I), (III) and (V) involved in (42), with also the term (IIb) involved in (43). As being a specific case for the inlet boundary condition, $P_i^g$ does not depend on $f_j$, so the term (V) involved in (42) vanishes, and, consequently, the inlet boundary condition is written as, $\forall i$:

$$
\underbrace{\sum_{i=0}^{8} \delta f_i \frac{\partial \mathcal{J}_1}{\partial f_i} (t=t_f)}_{(I)} + \underbrace{\int_0^{t_f} \int_{\partial X_1} \sum_{i=0}^{8} \sum_{j=0}^{8} \delta f_i \frac{\partial P_j^f}{\partial f_i} f_j^* dt \, dX}_{(\text{III})} - \underbrace{\int_0^{t_f} \int_{\partial X_1} \sum_{i=0}^{8} \delta f_i \mathbf{c}_i \cdot \mathbf{n} f_i^* dt \, dX}_{(\text{IIb})} = 0 \quad (48)
$$

The inlet boundary conditions for the fluid flow model, given by (23), are to be differentiated to derive the term (III) of (48). Note that for the adjoint state, the unknown directions are the ones that satisfy ($\mathbf{c}_i \cdot \mathbf{n} > 0$). For these directions this scalar product equals one, so (48) is rewritten to:

$$
\left\{
\begin{aligned}
\delta f_3 \frac{\partial \mathcal{J}_1}{\partial f_3} (t = t_f) &+ \int_0^{t_f} \int_{\partial X_1} \delta f_3 \left( \frac{\partial P_1^f}{\partial f_3} f_1^* + \frac{\partial P_5^f}{\partial f_3} f_5^* + \frac{\partial P_8^f}{\partial f_3} f_8^* + f_3^* \right) dt \, dX = 0 \\
\delta f_6 \frac{\partial \mathcal{J}_1}{\partial f_6} (t = t_f) &+ \int_0^{t_f} \int_{\partial X_1} \delta f_6 \left( \frac{\partial P_1^f}{\partial f_6} f_1^* + \frac{\partial P_5^f}{\partial f_6} f_5^* + \frac{\partial P_8^f}{\partial f_6} f_8^* + f_6^* \right) dt \, dX = 0 \\
\delta f_7 \frac{\partial \mathcal{J}_1}{\partial f_7} (t = t_f) &+ \int_0^{t_f} \int_{\partial X_1} \delta f_7 \left( \frac{\partial P_1^f}{\partial f_7} f_1^* + \frac{\partial P_5^f}{\partial f_7} f_5^* + \frac{\partial P_8^f}{\partial f_7} f_8^* + f_7^* \right) dt \, dX = 0
\end{aligned}
\right.
$$
Finally, the boundary conditions to be applied for the fluid flow adjoint-state problem, on the inlet ($\partial X_1$), read, for $\forall t$:

$$ 
\left\{
\begin{aligned}
f_3^* &= -\frac{\lambda_1}{3 \int_{\partial X_1} dX} \exp\left(\frac{\Delta p}{\Delta p_{max}}\right) (t_f) + f_1^* \\
f_6^* &= -\frac{\lambda_1}{3 \int_{\partial X_1} dX} \exp\left(\frac{\Delta p}{\Delta p_{max}}\right) (t_f) + f_8^* \\
f_7^* &= -\frac{\lambda_1}{3 \int_{\partial X_1} dX} \exp\left(\frac{\Delta p}{\Delta p_{max}}\right) (t_f) + f_5^*
\end{aligned}
\right.
\qquad (49) $$

A similar derivation would give the boundary conditions, for the fluid flow adjoint-state problem, on the outlet ($\partial X_2$):

$$ 
\left\{
\begin{aligned}
f_1^* &= f_3^* - \frac{1}{3}(4f_3^* + f_6^* + f_7^*) - \frac{1}{3}\left(\frac{T}{\rho_{\text{out}}(1+3u)}\right)(4g_3^* + g_6^* + g_7^*) \\
f_5^* &= f_7^* - \frac{1}{3}(4f_3^* + f_6^* + f_7^*) - \frac{1}{3}\left(\frac{T}{\rho_{\text{out}}(1+3u)}\right)(4g_3^* + g_6^* + g_7^*) \\
f_8^* &= f_6^* - \frac{1}{3}(4f_3^* + f_6^* + f_7^*) - \frac{1}{3}\left(\frac{T}{\rho_{\text{out}}(1+3u)}\right)(4g_3^* + g_6^* + g_7^*)
\end{aligned}
\right.
\qquad (50) $$

as well as on other boundaries, i.e., on ($\partial X \setminus (\partial X_1 \cup \partial X_2)$):

$$ f_{(c_i \cdot n > 0)} = f_{(c_i \cdot n < 0)} \qquad (51) $$

It is seen that the use of the incompressible model is interesting to get a simple calculation of the equilibrium distribution function for the adjoint state $f^*$. In fact, when we use the LBM incompressible model for the forward problem, the modification in the equilibrium distribution function in the forward problem implies a modification of the adjoint-state formulation, in the equilibrium distribution function, and in the boundary conditions. Numerical simulations have shown that this modification also improves the stability of the adjoint-state calculation, until Re=50, while it was limited to Re=25 with the compressible LBM model. However, it should be noted that both the incompressible and the compressible models give the same solution for the forward problem and the backward adjoint-state problem, so the optimized geometries are the same.

### 3.6. Heat transfer adjoint-state $g_i^*$

The derivation of the heat transfer adjoint-state model being very similar to the fluid flow one, the full derivation is avoided. The heat transfer adjoint-state equation reads:

$$ -\frac{\partial g_i^*}{\partial t} - c_i \cdot \nabla g_i^* + \frac{1}{\tau_g} (g_i^* - g_i^{eq,*}) + Q^g (t = t_f) = 0 \quad \forall \mathbf{x}, \forall t, \forall i \qquad (52) $$

with

$$ g_i^{eq,*} = \sum_{j=0}^{8} \frac{\partial g_j^{eq}}{\partial g_i} g_j^* \quad \text{and} \quad Q^g = \frac{T}{N^2} \qquad (53) $$

The initial condition, given at final time, reads:

$$ g_i^*(t_f) = 0 \quad \forall \mathbf{x}, \forall i \qquad (54) $$

The boundary condition corresponding to a prescribed temperature, on $\partial X_1$, is:

$$ g_3^* = g_6^* = g_7^* = -\frac{1}{6}(4g_1^* + g_5^* + g_8^*) \qquad (55) $$

The adjoint-state associated to an outflow boundary condition, (adiabatic if $u = 0$) on $\partial X_2$, is:

$$ g_1^* = g_5^* = g_8^* = \frac{1}{6} \left( \frac{1-3u}{1+3u} \right) (4g_3^* + g_6^* + g_7^*) \qquad (56) $$

### 3.7. Gradient calculation and update of the geometry

Once the adjoint states $f^*$ and $g^*$ are known, the gradient of the augmented cost function with respect to the design variables is given by the differentiated Lagrangian functional with respect to these parameters, i.e., $\partial \mathcal{L}/\partial \alpha$. Noticing that the control parameters are not involved in boundary condition equations, but only in the other two residuals of the forward model, one has:
$$ \frac{\partial \mathcal{L}}{\partial \alpha} = \frac{\partial \mathcal{J}_2}{\partial \alpha} + \int_0^{t_f} \int_X \sum_{i=0}^{8} f_i^* \frac{R_i^f}{\partial \alpha} dt dX + \int_0^{t_f} \int_X \sum_{i=0}^{8} g_i^* \frac{R_i^g}{\partial \alpha} dt dX \quad (57) $$

In the residuals of the forward problem, the three expressions depending explicitly on $\alpha$ are:

$$ f_i^{eq} = \omega_i \left( \rho + 3(\mathbf{c}_i \cdot \alpha \mathbf{u}) + \frac{9}{2}(\mathbf{c}_i \cdot \alpha \mathbf{u})^2 - \frac{3}{2} \alpha \mathbf{u}^2 \right) \quad (58) $$

$$ g_i^{eq} = \omega_i T (1 + 3(\mathbf{c}_i \cdot \alpha \mathbf{u})) \quad (59) $$

$$ \frac{1}{\tau_g} = \frac{\alpha}{\tau_f} + \frac{1 - \alpha}{\tau_s} \quad (60) $$

with $\tau_f$ and $\tau_s$ the relaxation times for the distribution function $g$ for the fluid, and the solid, respectively. In consequence, we have:

$$ \frac{\partial R_i^f}{\partial \alpha} = \frac{\partial}{\partial \alpha} \left( \frac{-f_i^{eq}}{\tau} \right) = \frac{-\omega_i}{\tau} \left( 3(\mathbf{c}_i \cdot \mathbf{u}) + \frac{9}{2}(\mathbf{c}_i \cdot \mathbf{u})^2 - \frac{3}{2} \mathbf{u}^2 \right) \quad (61) $$

$$ \begin{aligned} \frac{\partial R_i^g}{\partial \alpha} &= \frac{\partial}{\partial \alpha} \left( \frac{1}{\tau_g} (g_i - g_i^{eq}) \right) = \frac{\partial}{\partial \alpha} \left( \frac{1}{\tau_g} (g_i - g_i^{eq}) - \frac{1}{\tau_g} \left( \frac{\partial g_i^{eq}}{\partial \alpha} \right) \right) \\ &= (g_i - g_i^{eq}) \left( \frac{1}{\tau_f} - \frac{1}{\tau_s} \right) - \left( \frac{3\omega_i T \mathbf{c}_i \cdot \mathbf{u}}{\tau_g} \right) \end{aligned} \quad (62) $$

Next, the first term in (57) is:

$$ \frac{\partial \mathcal{J}_2}{\partial \alpha} = \lambda_2 \exp \left( \frac{V}{V_{max}} \right) \quad (63) $$

The augmented cost function gradient, which is a function of the space, is then identified to:

$$ \begin{aligned} \nabla \mathcal{J}^+ &= \lambda_2 \exp \left( \frac{V}{V_{max}} \right) + \int_0^{t_f} \sum_{i=0}^{8} f_i^* \left( \frac{-\omega_i}{\tau} \left( 3(\mathbf{c}_i \cdot \mathbf{u}) + \frac{9}{2}(\mathbf{c}_i \cdot \mathbf{u})^2 - \frac{3}{2} \mathbf{u}^2 \right) \right) dt \\ &\quad + \int_0^{t_f} \sum_{i=0}^{8} g_i^* \left( (g_i - g_i^{eq}) \left( \frac{1}{\tau_f} - \frac{1}{\tau_s} \right) - \left( \frac{3\omega_i T \mathbf{c}_i \cdot \mathbf{u}}{\tau_g} \right) \right) dt \\ &= \lambda_2 \exp \left( \frac{V}{V_{max}} \right) + A \end{aligned} \quad (64) $$

Following [37] and [52], the weight $\lambda_2 \in \mathbb{R}^+$, which is in the third part of the augmented cost function in (40) is redimensioned at each iteration such as:

$$ \lambda_2 = - \frac{\int_X A \, dX}{\int_X dX} \quad (65) $$

Let us point that, for a solid part, i.e. with $\mathbf{u} = 0$, it is seen from (61) that the contribution $\partial R_i^f / \partial \alpha$ is zero. Further, if the two relaxation times $\tau_f$ and $\tau_s$ are equal, then the second term $\partial R_i^f / \partial \alpha$, introduced in (62), is also zero. In this specific case only, the gradient $\nabla \mathcal{J}^+$ on solid parts cannot be different from zero; a solid will always remain a solid part. A trick which makes possible the evolution from solid to fluid is to slightly modify the gradient, at location $\mathbf{x}$, taking account of the gradient in the vicinity of $\mathbf{x}$, i.e. neighboring nodes. This allows the possible evolution from solid to fluid in cases where $\tau_s = \tau_f$.

The material distribution $\alpha$ is represented by a level-set function (LSF) $\Psi(\mathbf{x})$. The zero contour of this LSF delimits the interface between the solid and the fluid, such that:

$$ \alpha(\mathbf{x}) = \begin{cases} 0 & \text{if } \Psi(\mathbf{x}) < 0 \\ 1 & \text{if } \Psi(\mathbf{x}) \ge 0 \end{cases} \quad (66) $$

The update of the solid/fluid distribution $\alpha$ is performed via the evolution of the LSF $\Psi$, such as:

$$ \frac{\partial \Psi}{\partial t} = -K \nabla \mathcal{J}^+ \quad (67) $$
<figure><img src="image_3.png" /><figcaption>Fig. 2. Initial configuration of the optimization problem.</figcaption></figure>

with K the step size in the gradient direction. This expression is the same as used in Yamada [50], but without the regularization term. The regularization is supposed to smooth the LSF to avoid too complex designs, but it can also lead to an over simplification of optimal solutions. We decided not to use any regularization tool. We will show in our results that it is possible to reach optimized designs without adding any regularization term. During the optimization process, the LSF is maintained between [-1; 1], in order to avoid the reinitialization of the LSF, as suggested by [50].

## 4. Test cases and results

The geometry and the configuration of the test cases are shown on Fig. 2. The 2D square domain is enclosed by no-slip walls. The gray and white layers are fixed solid and fluid parts respectively. The fluid enters at the inlet on the left boundary, with a parabolic velocity profile, and exits at the right outlet, as outflow. For both top and bottom walls, a segment at the center is defined as a heat source, with a constant temperature of 100 °C. The inlet fluid temperature is prescribed at 20 °C.

The length of the heated segment at the bottom wall (40 elements) is longer than that at the top wall (20 elements), in order to introduce an asymmetric effect. Other segments of walls are defined as adiabatic, with no heat exchange. The bounce-back boundary condition is applied on interior walls on $∂X_3$. The temperature for $∂X_5$ is prescribed only on exterior walls, and the heat is transfered to the fluid domain by conduction.

The different steps of the topology optimization method presented in the previous section are summarized in the flowchart on Fig. 3. The convergence criterion of the forward and adjoint-state LBM problems is:

$$ \left| \frac{a_{n+10000} - a_n}{a_n} \right| < 10^{-4} \qquad (68) $$

with a the velocity and temperature fields for the LBM forward problem and the adjoint states $f^*$ and $g^*$ for the adjoint-state problems. The convergence criterion of the optimization problem is:

$$ \left| \frac{\mathcal{J}_{n+10} - \mathcal{J}_n}{\mathcal{J}_n} \right| < 10^{-4} \qquad (69) $$

where $\mathcal{J}_n$ is the cost function at iteration n. Calculations were performed on a NVIDIA Quadro K6000 GPU card for taking advantage of the LBM algorithm parallelism. For a domain with $100 \times 100$ elements, the computation time is about $20 \times 10^3$ LBM iterations per second while approximately $100 \times 10^3$ iterations are required to satisfy the convergence criterion for the forward problem. More iterations can be necessary for the adjoint-state problems, but at each optimization iteration, the final states of the LBM forward and adjoint-state problems are used for the initialization of the next LBM solution, in order to reduce the computation time.

Normally, for the adjoint-states calculation, one needs to store the macroscopic values of the forward problem, at each LBM iteration, which is prohibitive in terms of memory requirement. Here, we work with steady-state problems, so, as stated by [38], we can use the final iteration of the forward problem only, for all time iterations of the adjoint-states calculation.

In (67), the value of K (descent parameter of the LSF) has been chosen after multiple convergence tests. A value of 0.1 was found appropriate to reach an optimization convergence with a reasonable number of iterations.

Three numerical examples are presented in order to validate the optimization method. All cases treat thermal flow topology optimization problems, with different objectives: minimization of the mean temperature in a domain for the first case, maximization of the heat exchange for the second and the third case. For the second case, the hot temperature is prescribed on top and bottom walls. For the third case, the heat source is generated by solid parts. For the two first cases, the reference condition is based on the following parameters:
<figure><img src="image_4.png" /><figcaption>Fig. 3. Flowchart.</figcaption></figure>

- fluid: water (constant physical properties at T=45 °C);

- solid: constant thermal properties of water;

- spatial discretization for the domain: 100 × 100 elements;

- Reynolds number at the inlet: 25;

- maximal pressure drop allowed: ΔPmax = 20 × initial pressure (full fluid geometry), i.e. Cmax = 20;

- porosity limitation: none;

- initialization: full fluid.

The influence of these factors on optimization results will be tested and discussed in following sub-sections through a detailed parametric study. For the following results of optimized fluid/solid distributions, red streamlines represent the velocity vectors. The velocity field is given in Lattice Boltzmann units (LB), the pressure field is given in Pa and the temperature field is given in °C. For the third case, the parameters have been chosen to be close from the example given by Yaji [39], as a validation test case. They will be detailed in the section dedicated to this case.

For all the test cases related to the proposed topology optimization method, we use the LBM incompressible model, presented in sub-section 2.2, in the forward and adjoint-state problems, to simplify the adjoint-state calculations and improve the accuracy of the forward LBM problem. This latter point is now illustrated with a numerical example.

A simple poiseuille flow example has been computed on a 2D square domain (60 × 60 elements) with a Reynolds number of 25, in order to evaluate the improvement of the incompressible model over the compressible one. A parabolic velocity profile is prescribed on x = 0, with $u_{max}$ = 0.04. It corresponds to a LBM viscosity of 0.096. The no-slip boundary condition is prescribed with the Zou and He algorithm [19] on y = 0 and y = L. At the outlet (x = L), the pressure is specified, with ρ = 1. The following error is used to gauge the accuracy of both the compressible and the incompressible model:

$$e = \frac{\sum_{i=1}^{N} |u_i - u_i^{th}|}{N} \qquad (70)$$

with N the number of nodes, and $u_i^{th}$ the horizontal component of the velocity field given by the theoretical model. The evolution of this error with respect to LBM iterations is given in Fig. 4.

With the incompressible model, 2800 LBM iterations are required to reach an error of 10⁻³. In the compressible model, 5000 LBM iterations are required to reach the same error. The computational time has been shortened by using the incompressible model. It is essential as the LBM algorithm is used at each optimization iteration. Also, the convergence order for the error is almost multiplied by two, in favor of the incompressible model.
<figure><img src="image_5.png" /><figcaption>Fig. 4. Error $e$ on the horizontal component of the velocity field for the compressible and the incompressible models, with respect to LBM iterations count.</figcaption></figure>

<figure><img src="image_6.png" /><figcaption>Fig. 5. Case 1 – convergence plot of the cost function and the pressure drop ratio (left) and evolution of the fluid/solid distribution for iterations 0, 50, 100 and 250 (right).</figcaption></figure>

### 4.1. Case 1: minimization of the mean temperature

The convergence of the cost function and the pressure drop ratio is presented in Fig. 5 (left). For the pressure drop ratio, $\Delta p/\Delta p_{max}$ is plotted on the y secondary axis. One can see that after about 150 optimization iterations, the cost function and the pressure drop ratio remain stable. One may observe that the mean temperature in the domain decreases with the introduction of the solid material. The evolution of the fluid/solid distribution as a function of optimization iterations is also shown on Fig. 5 (right). It can be noticed on Fig. 6 that the solid introduced in the domain divides the initial fluid path into two streams to guide the fluid flow towards the top and bottom parts of the domain, where the temperature is higher, and needs to be decreased. The solid material also induces an increase of the pressure, as shown in Fig. 6 (right). Note that the asymmetric setting of top and bottom heat sources results in a slight asymmetry of the solid part. The initial and final temperature fields are shown on Fig. 7. Though the maximum temperature in the domain is 100°C, the maximum value of the colorbar in Fig. 7 has been fixed to 60°C in order to obtain a better color contrast. From this figure, it is seen that
<figure><img src="image_7.png" /><figcaption>Fig. 6. Case 1 – final velocity magnitude field in LB units (left) and final pressure field in Pa (right).</figcaption></figure>

<figure><img src="image_8.png" /></figure>

<figure><img src="image_9.png" /><figcaption>Fig. 7. Case 1 – initial temperature field (left) and final temperature field (right) in °C.</figcaption></figure>

<figure><img src="image_10.png" /></figure>

the mean temperature has been drastically decreased from the initial geometry to the optimized one. These results indicate that the proposed adjoint-state method is capable of solving such an optimization problem. In order to further evaluate the effectiveness and the robustness of the method, a systematic parametric study was also performed, with following results.

### 4.1.1. Spatial discretization

Firstly, the influence of the spatial discretization of the computational domain on the optimized geometry was studied. Three different spatial discretizations (with 60×60, 100×100 and 200×200 elements) were used. The corresponding optimized geometries are shown in Fig. 8. It can be observed that the optimized geometries have similar forms. When the spatial discretization is finer, the solid part becomes slenderer and occupies less space of the domain, with a mean temperature further reduced (see Table 1). This indicates that a finer spatial discretization is favorable for obtaining better results, but at the cost of a longer computational time. It can also be noticed that, for the case with 200×200 elements, there are two little solid parts in top and bottom of the domain in front of the main solid shape. One of the reasons might be that the spatial discretization with 200×200 elements permits, for this case, a more detailed description of the physical phenomena, which cannot be revealed with a coarser spatial discretization. Another reason could be the presence of local minima: several different geometries can give the same efficiency.

### 4.1.2. Geometry initialization

The influence of the initialization was tested by using different initial geometries of the solid material: full fluid, 2 big disks, and 9 small disks regularly located in the domain. The initial and obtained final shapes are shown in Fig. 9. The final geometries obtained with 2 and 9 disks initializations are not exactly the same as with the full fluid initialization. The number of optimization iterations is also more important. Nevertheless, the values of the cost function for the three config-
<figure><img src="image_11.png" /><figcaption>Fig. 8. Case 1 – influence of the spatial discretization: 60×60 elements (left), 100×100 elements (center) and 200×200 elements (right).</figcaption></figure>

<table><caption>**Table 1**
Case 1 – spatial discretization results.</caption><thead><tr><th>Number of elements</th><th>60×60</th><th>100×100</th><th>200×200</th></tr></thead><tbody><tr><td>Optimization iterations</td><td>250</td><td>260</td><td>880</td></tr><tr><td>Porosity</td><td>95.7 %</td><td>97.3 %</td><td>98.5 %</td></tr><tr><td>Cost function (°C)</td><td>29.75</td><td>29.16</td><td>28.98</td></tr></tbody></table>

<figure><img src="image_12.png" /><figcaption>Fig. 9. Case 1 – influence of the geometry initialization on the optimized geometry. Top: initial distributions; bottom: final distributions; left: full fluid; center: 2 big disks; right: 9 small disks.</figcaption></figure>

<table><caption>**Table 2**
Case 1 – geometry initialization results.</caption><thead><tr><th>Number of disks</th><th>0</th><th>2</th><th>9</th></tr></thead><tbody><tr><td>Optimization iterations</td><td>260</td><td>2240</td><td>1180</td></tr><tr><td>Cost function (°C)</td><td>29.16</td><td>29.39</td><td>29.31</td></tr></tbody></table>

urations are in the same line (between 29.16 and 29.39 °C), so that we may consider that the impact of these initialization patterns on the optimized geometry is acceptable (see Table 2). Based on the results of these tests, the following examples will use a spatial discretization with 100×100 elements and a full fluid initialization.

### 4.1.3. Pressure drop limitation

The pressure drop limitation is studied, which is an important factor to avoid impractical designs ([69], [39]). It affects the quantity and repartition of solid material so that the final geometry obtained could be really different. The impact of the maximum pressure drop on the optimized shape was tested with $C_{max} = 20, 10$, and $5$. The results obtained are presented
<figure><img src="image_13.png" /><figcaption>Fig. 10. Case 1 – influence of the pressure drop limitation on the optimized geometry: C<sub>max</sub> = 20 (left), C<sub>max</sub> = 10 (center) and C<sub>max</sub> = 5 (right).</figcaption></figure>

<caption>**Table 3**</caption>

Case 1 – pressure drop limitation results.

<table><thead><tr><th>C<sub>max</sub></th><th>20</th><th>10</th><th>5</th></tr></thead><tbody><tr><td>Optimization iterations</td><td>260</td><td>250</td><td>233</td></tr><tr><td>Porosity</td><td>97.3 %</td><td>97.73 %</td><td>99 %</td></tr><tr><td>Cost function (°C)</td><td>29.16</td><td>29.44</td><td>30.15</td></tr></tbody></table>

<figure><img src="image_14.png" /><figcaption>Fig. 11. Case 1 – influence of the solid medium properties: insulating medium (left), water (center) and conductive medium (right).</figcaption></figure>

in Fig. 10, and Table 3. One can see that when C<sub>max</sub> decreases, the two branches going up and down are shorter, implying that the fluid paths are wider on the top and on the bottom of the domain. This makes sense, because the wider the fluid path, the lower the velocity magnitude and the total pressure drop.

From Table 3, it is seen that the mean temperature of the domain increases while decreasing C<sub>max</sub>. This can be explained by the fact that the stronger limitation (smaller tolerable pressure drop) restricts the allowed quantity of solid material. This behavior is a typical Pareto front in a multi-objective optimization, where the two objectives would be the minimization of the mean temperature, and the minimization of the pressure drop. These objectives can be opposed so that a compromise is to be found.

### 4.1.4. Solid medium properties

In the previous studies, the solid medium was assumed to have the same thermal properties as water. Two other numerical examples were tested with different thermal properties of the solid medium: an insulating medium (k = 0.16 W/(m.K)) and a conductive medium (k = 44.5 W/(m.K)). Results obtained are reported on Fig. 11 and in Table 4.

The final temperature fields for the insulating and conductive media are shown on Fig. 12. The modification of the solid thermal properties is also applied to the solid layers surrounding the fluid channel, in gray in Fig. 11. For the conductive medium, it implies that the heat is diffused on a bigger length of top and bottom walls. This explains the large difference of the cost function values (given in Table 4). Concerning the solid introduced in the optimization domain, more solid elements are present for the case with conductive medium, and a solid bar is introduced at the outlet, increasing the velocity and decreasing the temperature in this area.
<table><caption>**Table 4**
Case 1 – solid medium properties results.</caption><thead><tr><th>Solid medium properties</th><th>Insulating medium</th><th>Water</th><th>Conductive medium</th></tr></thead><tbody><tr><td>Optimization iterations</td><td>130</td><td>260</td><td>140</td></tr><tr><td>Thermal conductivity (W/(m.K))</td><td>0.16</td><td>0.63</td><td>44.5</td></tr><tr><td>Porosity</td><td>97.3 %</td><td>97.3 %</td><td>95 %</td></tr><tr><td>Cost function (°C)</td><td>25.11</td><td>29.16</td><td>41.62</td></tr></tbody></table>

<figure><img src="image_15.png" /><figcaption>**Fig. 12.** Case 1 – final temperature field for different solid medium properties: insulating medium (left) and conductive medium (right).</figcaption></figure>

<figure><img src="image_16.png" /><figcaption>**Fig. 13.** Case 1 – influence of the inlet Reynolds number on the optimized geometry: Re = 10 (left), Re = 25 (center) and Re = 50 (right).</figcaption></figure>

<table><caption>**Table 5**
Case 1 – Reynolds number results.</caption><thead><tr><th>Re</th><th>10</th><th>25</th><th>50</th></tr></thead><tbody><tr><td>Optimization iterations</td><td>190</td><td>270</td><td>170</td></tr><tr><td>Cost function (°C)</td><td>34.32</td><td>29.16</td><td>26.72</td></tr></tbody></table>

### 4.1.5. Reynolds number

The influence of the inlet Reynolds Number is presented in Fig. 13 and in Table 5. As indicated in Table 5, the mean temperature for the optimal geometries is lower when the Reynolds number is higher. In fact, the increase of the velocity helps to cool down the hot regions of the domain. For the three Reynolds numbers, the edges of the solid geometry at the top and at the bottom are at the same place. Nevertheless, the curvature of the solid geometry is more important when the Reynolds number is higher. For Re=50, a second solid part is introduced in front of the major solid part. In this configuration, the fluid flow is directed more efficiently towards the top and bottom regions of the domain.
<figure><img src="image_17.png" /><figcaption>Fig. 14. Case 1 – influence of the porosity limitation: no limitation (left), 80 % of fluid (center) and 50 % (right).</figcaption></figure>

<table><caption>**Table 6**
Case 1 – porosity limitation results.</caption><thead><tr><th>Porosity limitation</th><th>None</th><th>80 %</th><th>50 %</th></tr></thead><tbody><tr><td>Optimization iterations</td><td>260</td><td>270</td><td>270</td></tr><tr><td>Cost function (°C)</td><td>29.16</td><td>28.45</td><td>30.5</td></tr></tbody></table>

### 4.1.6. Porosity limitation

Finally, the impact of the porosity limitation was studied. The objective is to prescribe the porosity of the domain, i.e. the quantity of fluid or solid elements. The results are presented in Fig. 14 and in Table 6.

The limitations on pressure drop and porosity can enter into conflict depending on the chosen maximal allowed pressure drop. For the presented cases, the value $C_{max} = 20$ is large enough to have both pressure and porosity limitations satisfied. The cost function value for the case with a fluid volume of 50 % is higher than for the other cases, because solid parts are added on optimization domain corners, to satisfy the porosity limitation. In this study, the solid has the same thermal properties as water, so a solid cell is equivalent to a fluid cell with a null velocity. But, in this convective problem, the velocity is very important in order to reduce the mean temperature, so it explains the poor efficiency of the configuration with a porosity of 50 %. Also, the cost function value for the porosity of 80 % is lower than without limitation. This issue will be discussed in section 5.

## 4.2. Case 2: maximization of the heat exchange with heated top and bottom walls

For this numerical example, the heat exchange efficiency will be characterized by the amount of heat evacuated by the fluid flow. This power is given by:

$$W_f = \dot{q}_f \rho_f C_{p,f} (\bar{T}_{f,out} - \bar{T}_{f,in}) \quad (71)$$

with the flow-rate $\dot{q}_f$, the density $\rho_f$, the heat capacity $C_{p,f}$, and the mean inlet temperature $\bar{T}_{f,in}$ being all constant values. $\bar{T}_{f,out}$ is written as:

$$\bar{T}_{f,out} = \frac{1}{\dot{q}_f} \int_{\partial X_2} \mathbf{n} \cdot \mathbf{u} \, dX \quad (72)$$

For this purpose, the topology optimization problem concerns the maximization of the cost function, defined by the mean of the square of the product $u \times T$ at the fluid outlet $\partial X_2$, with $u$ the horizontal component of the velocity. The cost function $J$ previously defined in (35), is to be replaced by:

$$J(f_i, g_i) = -\frac{1}{2N^2} \int_{\partial X_2} \sum_{j=0}^{8} c_j f_j \sum_{j=0}^{8} g_j \sum_{j=0}^{8} c_j f_j \sum_{j=0}^{8} g_j dX \quad (73)$$

With the change of cost function definition, some modifications are necessary in the calculation of the augmented cost function gradient, but these are quite simple and easy to implement (e.g., (52)), indicating the adaptability of the proposed method for topology optimization. The convergence plot of the cost function and pressure drop ratio and the evolution of fluid/solid distribution as a function of the optimization iterations are presented in Fig. 15. It can be seen that compared to the first case, much more optimization iterations are required to reach the final geometry. After iteration 200, some very
<figure><img src="image_18.png" /><figcaption>**Fig. 15.** Case 2 – convergence plot of the cost function and the pressure drop ratio (left) and evolution of the fluid/solid distribution for iterations 0, 300, 800 and 900 (right).</figcaption></figure>

<figure><img src="image_19.png" /><figcaption>**Fig. 16.** Case 2 – final velocity magnitude field in LB units (left) and final temperature field in °C (right).</figcaption></figure>

small solid elements are added in the right part of the computational domain in addition to the major solid part in front of the optimization domain. These elements could help to drive the flow toward the outlet.

At the beginning of the optimization process, the fluid flow is divided in two paths near the inlet to go towards the top and bottom walls of the domain, where hot temperatures are prescribed. In the meantime, a solid line obstructs a part of the fluid outlet. This phenomenon is not a numerical artifact, but a deduced result smartly achieved by the optimization algorithm. The partial solid bar serves to reduce the width of the fluid outlet, and contribute to the raise of the fluid velocity on the bottom part of the outlet, as seen in Fig. 18 and in Fig. 16 (left). The solid bar also modifies the temperature field, as shown in Fig. 17, which is to be compared to Fig. 16 (right). Even though the velocity is null behind the bar, the cost function is augmented compared to the no-bar configuration (see Table 7). Note that this comparison, while interesting, is limited by the fact that the pressure drop is increased by a factor of 3.6 due to the partial obstruction of the fluid outlet by the solid bar. Similar to the first case, a parametric study was performed to test the influence of some parameters on the optimized geometries.
<figure><img src="image_20.png" /><figcaption>Fig. 17. Temperature field of the final shape without the solid bar.</figcaption></figure>

<figure><img src="image_21.png" /><figcaption>Fig. 18. Comparison of $u \times T$ for the three different shapes.</figcaption></figure>

<table><caption>**Table 7**
Cost function value with different geometries.</caption><thead><tr><th>Geometry</th><th>Initial shape</th><th>Final shape</th><th>Final shape without solid bar</th></tr></thead><tbody><tr><td>Cost function<br>(LB units × °C)</td><td>0.6933</td><td>0.7734</td><td>0.7713</td></tr></tbody></table>

### 4.2.1. Pressure drop limitation

Firstly, the impact of the pressure drop limitation was tested. Fig. 19 and Table 8 indicate the influence of the pressure drop limitation on the fluid/solid repartition, and on the cost function. It can be observed that the quantity of the solid part is reduced for $C_{max} = 10$ and 5 compared to $C_{max} = 20$, as it was already seen for the first case.

For $C_{max} = 5$, the maximal allowed pressure drop has been reached by the partial obstruction of the fluid outlet. This also confirms the fact that the obstruction of the fluid outlet is considered as a priority to augment the cost function. It can be seen from Table 8 that a higher amount of heat power can be evacuated by a higher allowable pressure drop, a tendency that is also expected.

### 4.2.2. Porosity limitation

Concerning the influence of the porosity limitation, the configuration with a porosity of 80 % has a higher cost function value than that obtained with no porosity limitation. This phenomenon has already been observed for the first case, and will be discussed later in section 5.

From a physical point of view, one can see on Fig. 20 that, with a higher quantity of solid material for the 80 % porosity condition (center) than for the unconstrained configuration (left), the velocity magnitude is more important close to the top and bottom walls, where the temperature is high, so the heat evacuated by the fluid is also higher. On the same figure,
<figure><img src="image_22.png" /><figcaption>Fig. 19. Case 2 – influence of pressure drop ratio: C<sub>max</sub> = 20 (left), C<sub>max</sub> = 10 (center) and C<sub>max</sub> = 5 (right).</figcaption></figure>

<table><caption>**Table 8**
Case 2 – pressure drop limitation results.</caption><thead><tr><th>C<sub>max</sub></th><th>20</th><th>10</th><th>5</th></tr></thead><tbody><tr><td>Optimization iterations</td><td>990</td><td>900</td><td>600</td></tr><tr><td>Porosity</td><td>98 %</td><td>99 %</td><td>99.7 %</td></tr><tr><td>Cost function (LB units × °C)</td><td>0.7549</td><td>0.7243</td><td>0.68</td></tr></tbody></table>

<figure><img src="image_23.png" /><figcaption>Fig. 20. Case 2 – influence of the porosity limitation: no limitation (left), 80 % of fluid (center) and 50 % of fluid (right).</figcaption></figure>

<table><caption>**Table 9**
Case 2 – porosity limitation results.</caption><thead><tr><th>Porosity limitation</th><th>None</th><th>80 %</th><th>50 %</th></tr></thead><tbody><tr><td>Optimization iterations</td><td>990</td><td>950</td><td>850</td></tr><tr><td>Cost function (LB units × °C)</td><td>0.7549</td><td>0.7653</td><td>0.7023</td></tr></tbody></table>

the fluid/solid distribution for a porosity of 50 % is also presented. The cost function value is the lowest, as written in Table 9. The efficiency of this configuration is penalized by the fact that solid parts near the hot walls act as a resistance for transmitting the heat to the fluid. We can notice that the lower fluid channel is larger than the upper one, due to a hot temperature prescribed on a longer length on the bottom part of the domain.

### 4.3. Case 3: Maximization of the heat exchange with heated solid parts

This case has been used in several articles dealing with topology optimization of convective problems [17,39,53]. It thus constitutes a good test case to validate the method presented in this paper. In this case, an amount of heat is generated in the solid domain, such as:

$$Q = \beta \left( 1 - \frac{T}{T_{\text{max}}} \right) \qquad (74)$$
<figure><img src="image_24.png" /><figcaption>Fig. 21. Case 3 – convergence plot of the cost function and the pressure drop ratio (left) and evolution of the fluid/solid distribution for iterations 0, 35, 50 and 200 (right).</figcaption></figure>

<figure><img src="image_25.png" /><figcaption>Fig. 22. Case 3 – level set function evolution for different iterations counts.</figcaption></figure>

with $T_{max}$ a reference temperature and $\beta$ a heat flux coefficient, which controls the magnitude of the heat source ($\beta = 0$ in the fluid domain). The heat generated by a solid cell is therefore limited by $T_{max}$. The cost function $J$ is now defined as:

$$J = \int_{X} \beta \left( 1 - \frac{T}{T_{max}} \right) dX \qquad (75)$$

The objective is to maximize this cost function $J$ with a limitation on the maximal pressure drop allowed. From a physical point of view, solid parts have to be introduced inside the domain because $\beta = 0$ for the fluid cells. But the fluid flow must be able to cool down some solid cells, otherwise all solid cells would be at $T_{max}$. In this case, the cost function is also equal to zero. To be able to compare results, we will use the same input parameters as Yaji [39]: $Re = 7$ ($\nu = 0.8$), $Pr = 6$, $\beta = 0.1$ and $C_{max} = 10$. The heat transfer problem is performed in both fluid and solid domains. The fluid and solid thermal properties are the same. The fluid enters with a cold inlet temperature ($T = 0$) and all solid walls are adiabatic. The reference temperature was not given in [39], but we found $T_{max} = 15$ to give a similar cost function value for Yaji's configuration. The domain is a 200 × 200 elements square. The fluid enters with a parabolic velocity profile, and the inlet is composed of 64 nodes located at the middle of the square. All walls are adiabatic. The optimized geometry is presented in Fig. 21.

As expected, we observed an increase of the cost function value with respect to the iterations count. Several solid parts are introduced inside the domain in order to generate the heat. On Fig. 22, one can see the evolution of the LSF for several iteration counts during the optimization. The iteration counts are the same as for the fluid/solid distribution presented in Fig. 21 so it is possible to compare both plots. Initially, the LSF is equal to 1 everywhere (full fluid) and the introduction of solid shapes is due to the decrease of the LSF in some regions of the computational domain. Although the LSF is continuous for each iteration, one can obtain a crisp definition of the fluid/solid geometry by taking the zero contour of the LSF as fluid/solid interface. As mentioned above, the LSF is limited to the range [-1; 1] so, at the end of the optimization (iteration 200), we observe almost a binary pattern with -1 for the solid and 1 for the fluid parts. The temperature field is shown on
<figure><img src="image_26.png" /><figcaption>Fig. 23. Case 3 – final velocity magnitude field in LB units (left) and final temperature field in °C (right).</figcaption></figure>

<figure><img src="image_27.png" /><figcaption>Fig. 24. Case 3 – influence of $β$ on the fluid/solid geometry.</figcaption></figure>

<table><caption>**Table 10**
Case 3 – results and comparison with [39].</caption><thead><tr><th>β</th><th>0.01</th><th>0.1</th><th>0.3</th></tr></thead><tbody><tr><td>T<sub>max</sub></td><td>5</td><td>15</td><td>18</td></tr><tr><td>Cost function</td><td>0.60</td><td>2.02</td><td>2.53</td></tr><tr><td>Cost function Yaji</td><td>0.60</td><td>2.00</td><td>2.52</td></tr></tbody></table>

Fig. 23. The cold fluid at the inlet is rapidly heated by the heat generating parts. As a consequence, the outlet temperature of the fluid is much higher than the inlet temperature. It demonstrates an important heat transfer between the solid and the fluid, which was the objective of this optimization problem. One can notice that the objective of the second case and the third case is similar. In the second case, the heat is coming from the top and bottom walls, as in this third case, it is coming from the solid parts. Nevertheless, in both cases, the idea is to increase the heat transfer, and so the fluid temperature increases when the fluid is going through the channel.

Next, the influence of the heat flux coefficient $β$ is evaluated, whose results are presented in Fig. 24. One can see that the solid parts are bigger for $β = 0.01$ than for $β = 0.3$. It seems to be a good behavior because, for the same flow rate, it is easier to cool down a solid part with a lower heat source. As a result, it is possible to introduce bigger solid parts before reaching $T_{max}$ inside the solid. Table 10 shows the comparison between these results and Yaji's on the same configuration. It was difficult to obtain exactly the same case because of some unknown parameters ($T_{max}$ or the viscosity of the fluid). In fact, to get a good comparison, different geometries from Yaji [39] have been extracted and re-computed with our LBM algorithm to get the cost function value from Yaji's cases. Nevertheless, one can see that the results are very close, despite the fact that the fluid/solid repartitions are clearly not the same (Yaji's geometries are represented in Fig. 25).
<figure><img src="image_28.png" /><figcaption>Fig. 25. Fluid/solid repartition obtained by Yaji [39] – influence of $β$.</figcaption></figure>

<figure><img src="image_29.png" /><figcaption>Fig. 26. Comparison of the temperature fields for both cases: initial (left); case 1 – final (center) and case 2 – final (right).</figcaption></figure>

# 5. Discussion

## 5.1. Comparison between the optimized shapes obtained for different objectives

One can notice some similarities between the optimal shapes obtained for the first two cases. Both shapes tend to divide the fluid flow into two streams, but not at the same location in the domain (2/3 of the length for the first case, and 1/3 for the second case). In the first case, one can see with the velocity streamlines for the final step on Fig. 26 that the fluid goes from the inlet towards the hot regions to cool down these areas. In the second case, the fluid passes also through the top and bottom walls but the heat is then diffused inside the domain, limiting the heat exchange between the fluid and the hot walls. For the first case, the cooling is focused on the upper-right and bottom-right corners of the domain next to the outlet, to keep a small mean temperature. Since the second case aims at maximizing the heat power evacuated, the local temperature is not a matter of concern, and some hot zones are present in these areas, as a consequence of the partial obstructing of the outlet.

## 5.2. Existence of local minima

Concerning the porosity limitation, the unconstrained condition was expected to give the best solid geometry with respect to the cost function. Nevertheless, we could observe that the geometry obtained with the fluid volume at 80 % was more efficient for both cases (see Tables 6 and 9). It means that the optimal configuration obtained with no limitation is at a local optimum of the cost function, which is an intrinsic property of gradient-type methods. This observation can also be linked to the initialization study. Even if the study of initialization did not reveal any other local minimum, as it has been observed in the reference case, it cannot be ensured that all initializations will lead to the same result. A possible solution for future work to avoid finding local minima would be to work with hybrid method coupling meta-heuristic and gradient algorithms.

## 5.3. Update of the fluid/solid distribution

The geometry is modified at each optimization step by updating the LSF, with a simple steepest descent step and a constant step size ($K=0.1$). In this study, the optimization method requires an important number of iterations to converge
(about 250 iterations for the first case and 1000 for the second case) so more advanced schemes (Newton's method for example) and the use of a line-search algorithm [29,67] could be implemented to improve the convergence process.

## 5.4. Physical properties dependency with temperature

For simplification reasons, we used here an LBM with constant physical properties for both the fluid and the solid media. In reality, they could vary significantly with temperature and have a non negligible impact on the optimized geometry. The modification of the relaxation times depending on the temperature in the LBM could be a solution to improve the model.

# 6. Conclusion

A gradient-type method has been developed for topology optimization of thermal fluid flow problems. The forward problem is solved by LBM, and the calculation of the augmented cost function gradient is performed with an adjoint-state method in order to deal with a large number of design variables. The update of the geometry at each optimization iteration is realized by the LSM. This method implies a crisp definition of the fluid/solid interface at each optimization iteration, avoiding grayscales and problems which goes with it. Moreover, the evolution equation used for the LSF in this paper is very simple, because it does not involve any regularization term. Three thermal fluid flow optimization examples with different cost functions have been tested to illustrate the adaptiveness of the method. A comparison with the example used by Yaji was performed in order to validate the method. The results demonstrate that the proposed optimization method could be an effective approach for topology optimization of thermal fluid flows. As stated in the article, the comparison with other works was difficult to perform because of some unknown parameters. In this paper, all the necessary data is given. Based on that, the authors think it could be interesting, as a general perspective, to use one of the presented test cases as a benchmark for topology optimization of convective problems.

The LBM boundary conditions are introduced at the beginning of the adjoint-state method. In this way, the adjoint-state boundary conditions appear naturally during the calculation of adjoint states. It allows a flexibility of the algorithm for different problems with an easy modification of boundary conditions, and cost function. Then, the use of the incompressible LBM model, not only improves the accuracy of the forward problem, but also permits an easier adjoint-state calculation and a better stability of the adjoint state.

Some results have shown the existence of local optima of the cost function. In this paper, we use a simple steepest descent method with a constant step size. An improvement of the line search method is a possible way to obtain better results that will be addressed in future research. Finally, the presented method is limited to 2D and laminar flows. Another research direction is the extension of the optimization method to 3D domains, and with higher Reynolds numbers.

# Acknowledgements

The authors thank the French Ministry of Higher Education and Research for funding this research. The authors thank the reviewers for their useful remarks, improving the quality of this paper.

# References

[1] G. Marck, Topological Optimization of Heat and Mass Transfer, Ph.D. thesis, 2012.

[2] G. Pingen, Optimal Design for Fluidic Systems: Topology and Shape Optimization with the Lattice Boltzmann Method, Ph.D. thesis, 2008.

[3] M.P. Bendsøe, Optimal shape design as a material distribution problem, Struct. Optim. 1 (4) (1989) 193-202, https://doi.org/10.1007/BF01650949.

[4] O. Sigmund, On the design of compliant mechanisms using topology optimization, Mech. Struct. Mach. 25 (4) (1997) 493-524, https://doi.org/10.1080/08905459708945415.

[5] O. Sigmund, K. Maute, Topology optimization approaches, Struct. Multidiscip. Optim. 48 (2013) 1031-1055, https://doi.org/10.1007/s00158-013-0978-6.

[6] T. Borrvall, J. Petersson, Topology optimization of fluids in Stokes flow, Int. J. Numer. Methods Fluids 41 (2003) 77-107, https://doi.org/10.1002/fld.426.

[7] A. Gersborg-Hansen, O. Sigmund, R. Haber, Topology optimization of channel flow problems, Struct. Multidiscip. Optim. 30 (3) (2005) 181-192, https://doi.org/10.1007/s00158-004-0508-7.

[8] A. Evgrafov, Topology optimization of slightly compressible fluids, Z. Angew. Math. Mech. 86 (1) (2006) 46-62, https://doi.org/10.1002/zamm.200410223.

[9] S. Kreissl, G. Pingen, K. Maute, An explicit level set approach for generalized shape optimization of fluids with the lattice Boltzmann method, Int. J. Numer. Methods Fluids 65 (2011) 496-519, https://doi.org/10.1002/fld.

[10] V.J. Challis, J.K. Guest, Level set topology optimization of fluids in Stokes flow, Int. J. Numer. Methods Eng. 79 (10) (2009) 1284-1308, https://doi.org/10.1002/nme.2616.

[11] Y. Deng, Z. Liu, P. Zhang, Y. Liu, Y. Wu, Topology optimization of unsteady incompressible Navier-Stokes flows, J. Comput. Phys. 230 (17) (2011) 6688-6708, https://doi.org/10.1016/j.jcp.2011.05.004.

[12] G. Pingen, A. Evgrafov, K. Maute, Adjoint parameter sensitivity analysis for the hydrodynamic lattice Boltzmann method with applications to design optimization, Comput. Fluids 38 (4) (2009) 910-923, https://doi.org/10.1016/j.compfluid.2008.10.002.

[13] T. Bruns, Topology optimization of convection-dominated, steady-state heat transfer problems, Int. J. Heat Mass Transf. 50 (15-16) (2007) 2859-2873, https://doi.org/10.1016/j.ijheatmasstransfer.2007.01.039.

[14] E. Dede, Multiphysics topology optimization of heat transfer and fluid flow systems, in: COMSOL Conference, 2009.

[15] G. Pingen, D. Meyer, Topology optimization for thermal transport, in: Proceedings of the ASME Fluids Engineering Division Summer Conference 1 (PTS A-C), 2009, pp. 2237-2243.

[16] G. Marck, M. Nemer, J. Harion, Topology optimization of heat and mass transfer problems: laminar flow, Numer. Heat Transf., Part B, Fundam. 63 (2013) 508-539, https://doi.org/10.1080/10407790.2013.772001.
[17] T. Matsumori, T. Kondoh, A. Kawamoto, T. Nomura, Topology optimization for fluid-thermal interaction problems under constant input power, Struct. Multidiscip. Optim. 47 (4) (2013) 571-581, https://doi.org/10.1007/s00158-013-0887-8.

[18] S. Succi, R. Benzi, F. Higuera, The lattice Boltzmann equation: a new tool for computational fluid-dynamics, Physica D 47 (1-2) (1991) 219-230, https://doi.org/10.1016/0167-2789(91)90292-H.

[19] Q. Zou, X. He, On pressure and velocity boundary conditions for the lattice Boltzmann BGK model, Phys. Fluids 9 (1997) 1591, https://doi.org/10.1063/1.869307.

[20] X. He, S. Chen, G.D. Doolen, A novel thermal model for the Lattice Boltzmann Method in incompressible limit, J. Comput. Phys. 146 (1) (1998) 282-300, https://doi.org/10.1006/japh.1998.6057.

[21] Y. Peng, C. Shu, Y. Chew, Simplified thermal lattice Boltzmann model for incompressible thermal flows, Phys. Rev. E 68 (2) (2003) 026701, https://doi.org/10.1103/PhysRevE.68.026701.

[22] Y. Yan, Y. Zu, Numerical simulation of heat transfer and fluid flow past a rotating isothermal cylinder – A LBM approach, Int. J. Heat Mass Transf. 51 (9-10) (2008) 2519-2536, https://doi.org/10.1016/j.ijheatmasstransfer.2007.07.053.

[23] F. Kuznik, C. Obrecht, G. Rusaouen, J.-J. Roux, LBM based flow simulation using GPU computing processor, Comput. Math. Appl. 59 (7) (2010) 2380-2392, https://doi.org/10.1016/j.camwa.2009.08.052.

[24] J. Tölke, Implementation of a Lattice Boltzmann kernel using the compute unified device architecture developed by nVIDIA, Comput. Vis. Sci. 13 (1) (2010) 29-39, https://doi.org/10.1007/s00791-008-0120-2.

[25] Y. Ye, K. Li, Entropic Lattice Boltzmann Method based high Reynolds number flow simulation using CUDA on GPU, Comput. Fluids 88 (2013) 241-249, https://doi.org/10.1016/j.compfluid.2013.08.005.

[26] L. Luo, D. Tondeur, Optimal distribution of viscous dissipation in a multi-scale branched fluid distributor, Int. J. Therm. Sci. 44 (12) (2005) 1131-1141, https://doi.org/10.1016/j.ijthermalsci.2005.08.012.

[27] R. Boichot, L. Luo, Y. Fan, Tree-network structure generation for heat conduction by cellular automaton, Energy Convers. Manag. 50 (2) (2009) 376-386, https://doi.org/10.1016/j.enconman.2008.09.003.

[28] L. Wang, Y. Fan, L. Luo, Heuristic optimality criterion algorithm for shape design of fluid flow, J. Comput. Phys. 229 (20) (2010) 8031-8044, https://doi.org/10.1016/j.jcp.2010.07.006.

[29] E. Vergnault, P. Sagaut, An adjoint-based lattice Boltzmann method for noise control problems, J. Comput. Phys. 276 (2014) 39-61, https://doi.org/10.1016/j.jcp.2014.07.027.

[30] Y. Favennec, V. Labbé, F. Bay, Induction heating processes optimization – A general optimal control approach, J. Comput. Phys. 187 (1) (2003) 68-94, https://doi.org/10.1016/S0021-9991(03)00081-0.

[31] O. Balima, Y. Favennec, D. Rousse, Optical tomography reconstruction algorithm with the finite element method: an optimal approach with regularization tools, J. Comput. Phys. 251 (2013) 461-479, https://doi.org/10.1016/j.jcp.2013.04.043.

[32] M. Tekitek, M. Bouzidi, F. Dubois, P. Lallemand, Adjoint lattice Boltzmann equation for parameter identification, Comput. Fluids 35 (8-9) (2006) 805-813, https://doi.org/10.1016/j.compfluid.2005.07.015.

[33] A. Kirk, S. Kreissl, G. Pingen, K. Maute, Lattice Boltzmann Topology Optimization for Transient Flow, 2011, pp. 1-8.

[34] K. Yonekura, Y. Kanno, A flow topology optimization method for steady state flow using transient information of flow field solved by lattice Boltzmann method, Struct. Multidiscip. Optim. 51 (1) (2014) 159-172, https://doi.org/10.1007/s00158-014-1123-x.

[35] S. Nørgaard, O. Sigmund, B. Lazarov, Topology optimization of unsteady flow problems using the lattice Boltzmann method, J. Comput. Phys. 307 (2016) 291-307, https://doi.org/10.1016/j.jcp.2015.12.023.

[36] M.J. Krause, G. Thäter, V. Heuveline, Adjoint-based fluid flow control and optimisation with lattice Boltzmann methods, in: Computers and Mathematics with Applications, vol. 65, 2013, pp. 945-960.

[37] K. Yaji, T. Yamada, M. Yoshino, T. Matsumoto, K. Izui, S. Nishiwaki, Topology optimization using the lattice Boltzmann method incorporating level set boundary expressions, J. Comput. Phys. 274 (2014) 158-181, https://doi.org/10.1016/j.jcp.2014.06.004.

[38] G. Liu, M. Geier, Z. Liu, M. Krafczyk, T. Chen, Discrete adjoint sensitivity analysis for fluid flow topology optimization based on the generalized lattice Boltzmann method, Comput. Math. Appl. 68 (10) (2014) 1374-1392, https://doi.org/10.1016/j.camwa.2014.09.002.

[39] K. Yaji, T. Yamada, M. Yoshino, T. Matsumoto, K. Izui, S. Nishiwaki, Topology optimization in thermal-fluid flow using the lattice Boltzmann method, J. Comput. Phys. 307 (2016) 355-377, https://doi.org/10.1016/j.jcp.2015.12.008.

[40] J.A. Sethian, A. Wiegmann, Structural boundary design via level set and immersed interface methods, J. Comput. Phys. 163 (2000) 489-528, https://doi.org/10.1006/japh.2000.6581.

[41] M.Y. Wang, X. Wang, D. Guo, A level set method for structural topology optimization, Comput. Methods Appl. Mech. Eng. 192 (1-2) (2003) 227-246, https://doi.org/10.1016/S0045-7825(02)00559-5.

[42] G. Allaire, F. Jouve, A.-M. Toader, Structural optimization using sensitivity analysis and a level-set method, J. Comput. Phys. 194 (2004) 363-393, https://doi.org/10.1016/j.jcp.2003.09.032.

[43] M. Sussman, P. Smereka, S. Osher, A level set approach for computing solutions to incompressible two-phase flow, J. Comput. Phys. 114 (1) (1994) 146-159, https://doi.org/10.1006/japh.1994.1155.

[44] D. Hartmann, M. Meinke, W. Schröder, The constrained reinitialization equation for level set methods, J. Comput. Phys. 229 (5) (2010) 1514-1535, https://doi.org/10.1016/j.jcp.2009.10.042.

[45] B. Zhu, X. Zhang, S. Fatikow, Structural topology and shape optimization using a level set method with distance-suppression scheme, Comput. Methods Appl. Mech. Eng. 283 (2015) 1214-1239, https://doi.org/10.1016/j.cma.2014.08.017.

[46] S.M. Allen, J.W. Cahn, A microscopic theory for antiphase boundary motion and its application to antiphase domain coarsening, Acta Metall. 27 (6) (1979) 1085-1095, https://doi.org/10.1016/0001-6160(79)90196-2.

[47] A. Takezawa, S. Nishiwaki, M. Kitamura, Shape and topology optimization based on the phase field method and sensitivity analysis, J. Comput. Phys. 229 (7) (2010) 2697-2718, https://doi.org/10.1016/j.jcp.2009.12.017.

[48] Chunming Li, Chenyang Xu, Changfeng Gui, M. Fox, Level set evolution without re-initialization: a new variational formulation, in: 2005 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR'05) 1 (2005) 430-436, https://doi.org/10.1109/CVPR.2005.213.

[49] Z. Liu, J. Korvink, R. Huang, Structure topology optimization: fully coupled level set method via FEMLAB, Struct. Multidiscip. Optim. 29 (6) (2005) 407-417, https://doi.org/10.1007/s00158-004-0503-z.

[50] T. Yamada, K. Izui, S. Nishiwaki, A. Takezawa, A topology optimization method based on the level set method incorporating a fictitious interface energy, Comput. Methods Appl. Mech. Eng. 199 (2010) 2876-2891, https://doi.org/10.1016/j.cma.2010.05.013.

[51] N.P. van Dijk, K. Maute, M. Langelaar, F. van Keulen, Level-set methods for structural topology optimization: a review, Struct. Multidiscip. Optim. 48 (3) (2013) 437-472, https://doi.org/10.1007/s00158-013-0912-y.

[52] M. Otomori, T. Yamada, K. Izui, S. Nishiwaki, Matlab code for a level set-based topology optimization method using a reaction diffusion equation, Struct. Multidiscip. Optim. (2014) 1159-1172, https://doi.org/10.1007/s00158-014-1190-z.

[53] K. Yaji, T. Yamada, S. Kubo, K. Izui, S. Nishiwaki, A topology optimization method for a coupled thermal-fluid problem using level set boundary expressions, Int. J. Heat Mass Transf. 81 (2015) 878-888, https://doi.org/10.1016/j.ijheatmasstransfer.2014.11.005.

[54] X. He, L.-S. Luo, Lattice Boltzmann model for the incompressible Navier-Stokes equation, J. Stat. Phys. 88 (1997) 927-944, https://doi.org/10.1023/B:JOSS.0000015179.12689.e4.
[55] D. Lagrava, O. Malaspinas, J. Latt, B. Chopard, Advances in multi-domain lattice Boltzmann grid refinement, J. Comput. Phys. 231 (14) (2012) 4808-4822,
https://doi.org/10.1016/j.jcp.2012.03.015.

[56] D.a. Wolf-Gladrow, Lattice-gas Cellular Automata and Lattice Boltzmann Models — An Introduction, PoLAR, 2000, p. 308.

[57] S. Succi, The Lattice Boltzmann Equation for Fluid Dynamics and Beyond, vol. 222, 2001.

[58] P. Bhatnagar, E. Gross, M. Krook, A model for collision processes in gases. I. Small amplitude processes in charged and neutral one-component systems, Phys. Rev. 94 (3) (1954) 511–525, https://doi.org/10.1103/PhysRev.94.511.

[59] S. Marié, Etude de la méthode Boltzmann sur le Réseau pour les simulations en aéroacoustique, Thèse UPMC 170, 2008.

[60] S. Chen, G.D. Doolen, Lattice Boltzmann method for fluid flows, Annu. Rev. Fluid Mech. 30 (1) (1998) 329–364, https://doi.org/10.1098/rsta.2011.0109.

[61] U. Frisch, B. Hasslacher, Y. Pomeau, Lattice-gas automata for the Navier–Stokes equation, Phys. Rev. Lett. 56 (14) (1986) 1505–1508, https://doi.org/10.1103/PhysRevLett.56.1505.

[62] G. Pingen, A. Evgrafov, K. Maute, Topology optimization of flow domains using the lattice Boltzmann method, Struct. Multidiscip. Optim. 34 (2007) 507–524, https://doi.org/10.1007/s00158-007-0105-7.

[63] Y.H. Qian, D. D'Humières, P. Lallemand, Lattice BGK models for Navier-Stokes equation, Europhys. Lett. 17 (1992) 479.

[64] Q. Zou, S. Hou, S. Chen, G.D. Doolen, A improved incompressible lattice Boltzmann model for time-independent flows, J. Stat. Phys. 81 (1-2) (1995) 35-48, https://doi.org/10.1007/BF02179966.

[65] T. Inamuro, M. Yoshino, H. Inoue, R. Mizuno, F. Ogino, A Lattice Boltzmann Method for a binary miscible fluid mixture and its application to a heat-transfer problem, J. Comput. Phys. 179 (2002) 201–215, https://doi.org/10.1006/jcph.2002.7051.

[66] M. Gunzburger, Adjoint equation-based methods for control problems in incompressible, viscous flows, Flow Turbul. Combust. 65 (3-4) (2000) 249–272,
https://doi.org/10.1023/A:1011455900396.

[67] J. Nocedal, S.J. Wright, Numerical Optimization, 2nd edition, Springer, New York, NY, USA, 2006.

[68] M. Bergmann, L. Cordier, J.P. Brancher, Optimal rotary control of the cylinder wake using proper orthogonal decomposition reduced-order model, Phys. Fluids 17 (9) (2005) 1–21, https://doi.org/10.1063/1.2033624.

[69] D. Makhija, G. Pingen, R. Yang, K. Maute, Topology optimization of multi-component flows using a multi-relaxation time lattice Boltzmann method, Comput. Fluids 67 (2012) 104–114, https://doi.org/10.1016/j.compfluid.2012.06.018.