1 Introduction

The variational approach to shape and topology optimization can be developed, e.g., within the speed and the topological derivative methods. In particular, the topological derivative method is used to this end [1,2,3]. Our aim in this paper is to improve the convergence of the biomimetic approach to compliance optimization and multiple load cases by an application of the speed method. This means that we introduce a variational problem for which the proposed optimality criterion of biomimetic approach becomes a necessary optimality condition. Such an approach is known in the theory of free boundary problems.

The field of structural optimization is still a relatively new area but with many applications in the automotive, aerospace, civil engineering, machine design and other engineering fields. The classical approach to structural optimization can be found, e.g., in the monographs [4, 5]. Many researchers must face challenges related to structural optimization. One of the crucial ones is to develop structural optimization methods that are appropriate for multiple load issues.

From an engineer’s point of view, single load case problems are rather rare. A more common problem, but also more challenging in terms of mechanical design, is the one of structural optimization under multiple loads. The biomimetic optimization method should be useful as, in real life, multiple independent loads are always present.

It is widely believed that the trabecular bone adapts its form to mechanical loads following Wolff’s law [6, 7]. A healthy tissue of the trabecular bone has a very sophisticated structure. The tissue forms a network of beams called trabeculae, and this structure is capable of handling a wide range of loads. The length of a trabecula can be 100 or 200 \(\upmu \hbox {m}\), whereas its diameter is approximately 50 \(\upmu \hbox {m}\). This structure is continually rebuilding itself so that the whole bone tissue is replaced within a few years. The process is called trabecular bone adaptation or remodeling.

Wolff’s law is not a mechanical law as such but rather the hypothesis that the trabecular bone is a self-optimizing material. In addition, other researchers suggested [8, 9] that the trabecular tissue can adapt its structural form in reaction to external loads. In this sense, it is a problem which resembles structural optimization, especially topology optimization.

The strain energy density on the structural surface also appears in the area of optimization research, which is distant from biomechanical studies [10, 11]. The most important theorem concerning the energy density on the structural surface states that for the stiffest design, the energy density must be constant along the designed shape. The new formulation of biomimetic optimization based on the trabecular bone phenomenon used in [12] was established with the use of the shape derivative concept. The mathematical analysis of the so-called speed method in shape optimization is performed, e.g., in [13].

2 Structural Design with Multiple Load Cases

A multiple load problem arises when a real-life design has to be developed. In topology optimization, a common procedure uses minimization of a weighted sum of different loads. The compliance for each load case is computed, and then, the multi-load problem is replaced by minimization of the weighted sum of the compliances under each load, as first presented by Sigmund [14]. For optimization of the worst possible case, another approach is needed. One of the possible methods is the bound formulation approach [15,16,17]. The main feature of the approach is the introduction of an upper bound for other objectives and minimizing the upper bound. Another approach uses the aggregation technique [18, 19]. The main advantage of the constraint aggregation method is that all load cases contribute throughout the optimization process, owing to which the process does not lead to local minima.

Relying on the approach presented in [12], using biomechanical models of the trabecular bone remodeling directly as a base for structural optimization, we will discuss a design with multiple load cases. In general, there is no solution to the problem of stiffest design (compliance minimization). If the volume of an object is increasing, the compliance is decreasing. Hence, in the standard approach to energy-based topology optimization, an additional constraint has to be added. Usually, the volume of material is limited. When using volume constraints, additional stress constraints should be introduced. As a result, topology optimization has to be separated from shape and size optimization within the numerical procedure [17]. In the case of the biomimetic approach, the role of an additional constraint is played by the strain energy density on the structural surface, and the volume or structural mass results from the optimization procedure. In the standard SIMP topology optimization method, the volume constraint is used. Also, in the stress-based topology optimization approach [20, 21], the volume constraint is present. To start the optimization procedure, the volume constraint has to be imposed. In the biomimetic approach, instead of imposing a volume constraint, we parameterize shapes by the assumed energy density, which may be quite accurately predicted from yield criteria.

3 Problem Setting

Let us define the compliance functional

$$\begin{aligned} \mathcal{C}(\varOmega ;{\mathbf {t}}) = \int _{\varGamma _1} {\mathbf {t}}\cdot {\mathbf {u}}\, \mathrm{d}s\end{aligned}$$
(1)

for the standard elasticity system

$$\begin{aligned} \mathbf {div}\,\varvec{\sigma }({\mathbf {u}})&=0\quad \text {in}\quad \varOmega , \end{aligned}$$
(2)
$$\begin{aligned} \varvec{\sigma }({\mathbf {u}})\cdot {\mathbf {n}}&={\mathbf {t}}\quad \text {on}\quad \varGamma _1, \end{aligned}$$
(3)
$$\begin{aligned} \varvec{\sigma }({\mathbf {u}})\cdot {\mathbf {n}}&=0 \quad \text {on}\quad \varGamma _v, \end{aligned}$$
(4)
$$\begin{aligned} {\mathbf {u}}&=0 \quad \text {on}\quad \varGamma _0. \end{aligned}$$
(5)

Here, \(\partial \varOmega = \varGamma _0 \cup \varGamma _1 \cup \varGamma _v\) and \({\mathbf {t}}\) is a constant vector of traction forces. This functional depends on the shape of \(\varOmega \), and \(\varGamma _v\) is a part of its boundary subject to modification.

Now, suppose we want to take into account two possible loads (\({\mathbf {t}}_1\), \({\mathbf {t}}_2\)) acting on \(\varGamma _1\), the rest of the formulation remaining intact. This gives rise to two compliances

$$\begin{aligned} \mathcal{C}(\varOmega ;{\mathbf {t}}_1),\qquad \mathcal{C}(\varOmega ;{\mathbf {t}}_2) \end{aligned}$$

and two solutions \({\mathbf {u}}_1\), \({\mathbf {u}}_2\). We wish to minimize somehow both compliances by modifying \(\varGamma _v\) under the volume constraint

$$\begin{aligned} \int _{\varOmega } \, \mathrm{d}x-V_0 \le 0. \end{aligned}$$
(6)

We have described this setting in the classical way in order to start similarly to other considerations concerning multiple load problems. In the numerical procedure we propose, shape and topology optimization is performed without volume constraint and under the assumed energy density.

The assumption of constant strain energy density for the stiffest design [12] was justified in the same setting, but for a single load. The derivative of the Lagrange function gives (at the stationary point) the following condition for the stiffest design configuration:

$$\begin{aligned} \varvec{\sigma }({\mathbf {u}}):\varvec{\varepsilon }({\mathbf {u}}) = \lambda = \mathrm {const}. \end{aligned}$$
(7)

Similar results were presented previously by other researchers [11]. Our result is based on the shape derivative concept which does not need any additional assumptions. The value of \(\lambda \) is not known, but the assumed value of the strain energy density on the part of the boundary subject to modification could be related to material properties. Changing that value results in a change of the structural form—topology and volume. In this way, the final structural volume results from the optimization procedure. Instead of imposing a volume constraint, we parameterize shapes by energy density, which may be quite accurately predicted from yield criteria.

4 Insensitivity Zone Concept

The biomimetic approach based on trabecular bone remodeling allows comprising optimization of size, shape and topology in one numerical procedure, where the lazy zone concept is an important component of the algorithm. The lazy zone concept was originally proposed by Carter [22], as an enhancement of the mechanostat theory of Frost [23]. The concept was also exploited by other researchers [9, 24]. The stiffest design is obtained by adding or removing material on the structural surface in virtual space, mimicking the natural process of trabecular bone remodeling [25]. Bone mass increases above a certain level of mechanical stimulation (measured by the strain energy density on the tissue surface) and decreases below a certain energy level. When the strain energy density on the structural surface is between these two levels, the bone mass is maintained, and this rate of bone mechanical stimulation is called adaptation or lazy zone because then the bone does not react to changes in the mechanical stimulation level. The processes of resorption and formation are coupled in basic multicellular units, regions smaller than the single trabecula where a sequence of successive bone tissue resorption and formation occurs, and this is a local change. However, bone formation depends on global mechanical stimulation of the whole bone [8, 9].

5 Heuristic Algorithm

The numerical results of [26] show a similarity between trabecular bone remodeling and structural optimization. The results have no biological background, but have been rigorously proven mechanically and mathematically. Nonetheless, trabecular bone remodeling models could be used to realize the optimization procedure.

Our heuristic algorithm is as follows:

  • it is assumed that the energy density \(\varvec{\sigma }({\mathbf {u}}): \varvec{\varepsilon }({\mathbf {u}})\) has a constant value \(\lambda \) on \(\varGamma _v\);

  • if at a given point on \(\varGamma _v\) this density is greater than \(\lambda +s\), then the boundary is moved outside;

  • if at a given point on \(\varGamma _v\) this density is smaller than \(\lambda -s\), then the boundary is moved inside;

  • these steps are repeated until equilibrium is achieved;

  • the value of \(\lambda \) is modified if the final design is unsatisfactory.

Since apart from the boundary modification there is a need to take into account the increase or decrease in the surface area itself, an additional step is introduced to the algorithm. The \(\kappa \) curvature is incorporated into the procedure in the following way. The improvement of descent direction should result from the partially heuristic modification.

  • If \(\kappa > 0\) and \(F > {\bar{F}}\), then after a biomimetic modification the boundary is additionally moved inside \(\varOmega \) by 50% of the biomimetic step.

  • If \(\kappa < 0\) and \(F > {\bar{F}}\), then after a biomimetic modification the boundary is additionally moved outside \(\varOmega \) by 50% of the biomimetic step.

Thus, the curvature term locally enhances or diminishes the purely biomimetic modification of the structure. Numerical experiments seem to confirm this claim, and the speed method furnishes a better descent direction compared to the already published results.

6 Multiple-Objective Problems

The systematic approach proposed in this article consists in formulating two versions of scalarized multiple-objective problems.

Problem 1

$$\begin{aligned} J_1(\varOmega )=\max \big [ \mathcal{C}(\varOmega ;{\mathbf {t}}_1), \mathcal{C}(\varOmega ;{\mathbf {t}}_2) \big ] \longrightarrow \text {min} \end{aligned}$$

subject to

$$\begin{aligned} \int _{\varOmega } \, \mathrm{d}x-V_0 \le 0. \end{aligned}$$

Problem 2

$$\begin{aligned} J_2(\varOmega )=\alpha _1 \mathcal{C}(\varOmega ;{\mathbf {t}}_1)+\alpha _2 \mathcal{C}(\varOmega ;{\mathbf {t}}_2) \longrightarrow \text {min} \end{aligned}$$

subject to

$$\begin{aligned} \int _{\varOmega } \, \mathrm{d}x-V_0 \le 0 \end{aligned}$$

where \(\alpha _1+\alpha _2=1\), \(\alpha _i \ge 0\).

The problems will be transformed suitably and analyzed using the speed method.

7 Definition of the Speed Method

Let \({\mathbf {V}}({\mathbf {x}})\) be a smooth vector field defined on \(\mathrm {I\!R}^3\) and \(T_t:\mathrm {I\!R}^3 \rightarrow \mathrm {I\!R}^3\) the transformation defined by

$$\begin{aligned} T_t({\mathbf {x}})= {\mathbf {x}}+ t{\mathbf {V}}({\mathbf {x}}), \quad {\mathbf {x}}\in \mathrm {I\!R}^{3}, \quad t\in [0, \varepsilon ], \quad \varepsilon >0. \end{aligned}$$

Let also \(\varOmega _0 \subset \mathrm {I\!R}^3 \) be a certain domain and \(\varOmega _t=T_t(\varOmega _0)\). Note that \(T_0(\varOmega _0)=\varOmega _0\). Next, we take a function \(u_t({\mathbf {x}})\) defined on \(\varOmega _t\) and depending on it explicitly or, for example, as a solution of the elasticity boundary value problem posed in \(\varOmega _t\).

Using this notation, we define in \(\varOmega _0\) the shape derivative of \(u_t\) with respect to the (fixed) vector field \({\mathbf {V}}({\mathbf {x}})\) by

$$\begin{aligned} u_0'({\mathbf {x}})=\lim _{t\downarrow 0} \frac{u_t({\mathbf {x}})-u_0({\mathbf {x}})}{t}. \end{aligned}$$
(8)

Here, we need in fact an extension of \(u_t\) to \(\varOmega _0\).

The shape derivative is used to analyze the behavior of domain functionals depending on both \(\varOmega _t\) and \(u_t\). Their general form is

$$\begin{aligned} J_{\varOmega }(\varOmega _t) = \int _{\varOmega _t} F_1(u_t({\mathbf {x}})) \, \mathrm{d}x\end{aligned}$$
(9)

and, denoting \(\varGamma _t=\partial \varOmega _t\),

$$\begin{aligned} J_{\varGamma }(\varOmega _t) = \int _{\varGamma _t} F_2(u_t({\mathbf {x}})) \, \mathrm{d}s. \end{aligned}$$
(10)

If we define the shape derivatives of these functionals in the direction of the field \({\mathbf {V}}({\mathbf {x}})\) as

$$\begin{aligned} J_{\varOmega }'(\varOmega _0)&=\lim _{t\downarrow 0} \frac{J_{\varOmega }(\varOmega _t)-J_{\varOmega }(\varOmega _0)}{t}, \end{aligned}$$
(11)
$$\begin{aligned} J_{\varGamma }'(\varOmega _0)&=\lim _{t\downarrow 0} \frac{J_{\varGamma }(\varOmega _t)-J_{\varGamma }(\varOmega _0)}{t}, \end{aligned}$$
(12)

then it can be proved that

$$\begin{aligned} J_{\varOmega }'(\varOmega _0)&=\int _{\varOmega _0} F'(u_0({\mathbf {x}}))u_0'({\mathbf {x}})\, \mathrm{d}x\nonumber \\&\quad + \int _{\varGamma _0} F(u_0({\mathbf {x}})) {\mathbf {V}}({\mathbf {x}})\cdot {\mathbf {n}}({\mathbf {x}}) \, \mathrm{d}s \end{aligned}$$
(13)

and

$$\begin{aligned} J_{\varGamma }'(\varOmega _0)&=\int _{\varGamma _0} \bigg [ F'(u_0({\mathbf {x}})) u_0'({\mathbf {x}}) + \frac{\partial F(u_0({\mathbf {x}}))}{\partial {\mathbf {n}}} \nonumber \\&\quad + \kappa ({\mathbf {x}})F(u_0({\mathbf {x}})){\mathbf {V}}({\mathbf {x}})\cdot {\mathbf {n}}({\mathbf {x}}) \bigg ] \, \mathrm{d}s. \end{aligned}$$
(14)

Here, \(\kappa ({\mathbf {x}})\) denotes the average curvature of the surface \(\varGamma _0\) at the point \({\mathbf {x}}\), namely

$$\begin{aligned} \kappa ({\mathbf {x}}) = \frac{1}{R_1({\mathbf {x}})} +\frac{1}{R_2({\mathbf {x}})} \end{aligned}$$

where \(R_1({\mathbf {x}})\) and \(R_2({\mathbf {x}})\) are the principal curvatures at this point.

8 Problem Transformation

Problem 1 may be transformed into an equivalent form:

Problem 1a

$$\begin{aligned} F_1(s,\varOmega ) = s \longrightarrow \text {min} \end{aligned}$$

subject to

$$\begin{aligned} \int _{\varOmega } \, \mathrm{d}x-V_0&\le 0,\\ \mathcal{C}(\varOmega ;{\mathbf {t}}_1) -s&\le 0,\\ \mathcal{C}(\varOmega ;{\mathbf {t}}_2) -s&\le 0. \end{aligned}$$

The corresponding Lagrange function has the form

$$\begin{aligned} \begin{aligned} L_1(s,\varOmega ; \lambda _0, \lambda _1, \lambda _2)&= s + \lambda _0 \bigg (\int _{\varOmega } \, \mathrm{d}x-V_0\bigg ) \\&\qquad + \lambda _1 (\mathcal{C}(\varOmega ;{\mathbf {t}}_1) -s) + \lambda _2 (\mathcal{C}(\varOmega ;{\mathbf {t}}_2) -s). \end{aligned} \end{aligned}$$
(15)

Problem 2 does not need transforming, and the corresponding Lagrange function has the form

$$\begin{aligned} L_2(\varOmega ; \lambda _0) = \alpha _1 \mathcal{C}(\varOmega ;{\mathbf {t}}_1) + \alpha _2\mathcal{C}(\varOmega ;{\mathbf {t}}_2) + \lambda _0 \bigg (\int _{\varOmega } \, \mathrm{d}x-V_0 \bigg ). \end{aligned}$$
(16)

Next, one may formulate the Kuhn–Karush–Tucker conditions for both problems. To this end, we shall need shape derivatives of compliances.

Let us rewrite the state equation in the weak form

$$\begin{aligned} -\int _{\varOmega } \varvec{\sigma }({\mathbf {u}}):\varvec{\varepsilon }(\varvec{\varphi }) \, \mathrm{d}x+ \int _{\varGamma _1} {\mathbf {t}}\cdot \varvec{\varphi }\, \mathrm{d}s= 0. \end{aligned}$$
(17)

Here, \({\mathbf {u}},\, \varvec{\varphi }\, \in {\mathbf {H}}^1_{\varGamma _0}(\varOmega )\). Then, we take the shape derivative of the compliance using the speed method (denoted by \((\bullet )'\)):

$$\begin{aligned}{}[ \mathcal{C}(\varOmega ,{\mathbf {t}}) ]' = \int _{\varGamma _1} {\mathbf {t}}\cdot {\mathbf {u}}' \, \mathrm{d}s, \end{aligned}$$
(18)

and the shape derivative of the weak formulation of the state equation

$$\begin{aligned} -\int _{\varOmega } \varvec{\sigma }({\mathbf {u}}'):\varvec{\varepsilon }(\varvec{\varphi }) \, \mathrm{d}x-\int _{\varGamma _v}\varvec{\sigma }({\mathbf {u}}):\varvec{\varepsilon }(\varvec{\varphi }) {\mathbf {V}}\cdot {\mathbf {n}}\, \mathrm{d}s= 0. \end{aligned}$$
(19)

After substituting \(\varvec{\varphi }:= {\mathbf {u}}'\) in the weak state equation and \(\varvec{\varphi }:= {\mathbf {u}}\) in its shape derivative, we get

$$\begin{aligned}{}[ \mathcal{C}(\varOmega ,{\mathbf {t}}) ]' = -\int _{\varGamma _v}\varvec{\sigma }({\mathbf {u}}):\varvec{\varepsilon }({\mathbf {u}}) {\mathbf {V}}\cdot {\mathbf {n}}\, \mathrm{d}s. \end{aligned}$$
(20)

The Kuhn–Karush–Tucker conditions for Problem 1a are

$$\begin{aligned}&\partial _s L_1(s,\varOmega ; \lambda _0, \lambda _1, \lambda _2) = 1 -\lambda _1 - \lambda _2 = 0, \end{aligned}$$
(21)
$$\begin{aligned}&\quad [ L_1(s,\varOmega ; \lambda _0, \lambda _1, \lambda _2) ]' \nonumber \\&= \int _{\varGamma _v}\big [ \lambda _0 - \lambda _1 \varvec{\sigma }({\mathbf {u}}_1):\varvec{\varepsilon }({\mathbf {u}}_1) - - \lambda _2 \varvec{\sigma }({\mathbf {u}}_2):\varvec{\varepsilon }({\mathbf {u}}_2) \big ] {\mathbf {V}}\cdot {\mathbf {n}}\, \hbox {d}s =0. \end{aligned}$$
(22)

Hence

$$\begin{aligned}&\lambda _1+\lambda _2 =1,\\&\lambda _1 \varvec{\sigma }({\mathbf {u}}_1):\varvec{\varepsilon }({\mathbf {u}}_1) + \lambda _2 \varvec{\sigma }({\mathbf {u}}_2):\varvec{\varepsilon }({\mathbf {u}}_2) = \lambda _0. \end{aligned}$$

In the case of symmetry, when interchanging \({\mathbf {t}}_1\) and \({\mathbf {t}}_2\) does not change the problem, and we have \(\lambda _1=\lambda _2=0.5\), the optimality condition reads

$$\begin{aligned} \frac{1}{2} \varvec{\sigma }({\mathbf {u}}_1):\varvec{\varepsilon }({\mathbf {u}}_1) + \frac{1}{2} \varvec{\sigma }({\mathbf {u}}_2):\varvec{\varepsilon }({\mathbf {u}}_2) = \lambda _0 =\text {const.} \end{aligned}$$
(23)

Obviously, we do not know the value of \(\lambda _0\).

The same conditions for Problem 2 are obtained immediately:

$$\begin{aligned} \alpha _1 \varvec{\sigma }({\mathbf {u}}_1):\varvec{\varepsilon }({\mathbf {u}}_1) + \alpha _2 \varvec{\sigma }({\mathbf {u}}_2):\varvec{\varepsilon }({\mathbf {u}}_2) = \lambda _0 =\text {const.} \end{aligned}$$
(24)

9 Shape Modification Using Shape Derivative Without Volume Constraint

Let us define a function F(z) penalizing the deviation of z from 0 and taking into account the insensitivity zone:

$$\begin{aligned} F(z) = {\left\{ \begin{array}{ll} (z + s)^2, &{}\quad z < -s, \\ 0, &{}\quad - s \le z \le s,\\ (z - s)^2, &{}\quad z > s. \end{array}\right. } \end{aligned}$$
(25)

Using this function, we replace the heuristic strategy by minimization of the functional

$$\begin{aligned} J_{\lambda }(\varOmega ) = \int _{\varGamma _v} F( \varrho ({\mathbf {u}}_1,{\mathbf {u}}_2) ) \, \mathrm{d}s, \end{aligned}$$
(26)

where for Problem 1a,

$$\begin{aligned} \varrho ({\mathbf {u}}_1,{\mathbf {u}}_2)=\frac{1}{2} \varvec{\sigma }({\mathbf {u}}_1):\varvec{\varepsilon }({\mathbf {u}}_1) + \frac{1}{2} \varvec{\sigma }({\mathbf {u}}_2):\varvec{\varepsilon }({\mathbf {u}}_2) - \lambda _0, \end{aligned}$$

while for Problem 2,

$$\begin{aligned} \varrho ({\mathbf {u}}_1,{\mathbf {u}}_2)= \alpha _1 \varvec{\sigma }({\mathbf {u}}_1):\varvec{\varepsilon }({\mathbf {u}}_1) + \alpha _2 \varvec{\sigma }({\mathbf {u}}_2):\varvec{\varepsilon }({\mathbf {u}}_2) - \lambda _0. \end{aligned}$$

For simplicity, we shall consider Problem 1a. After taking the shape derivative of the functional (observe that \(F'=\hbox {d}F/\hbox {d}z\)), we have

$$\begin{aligned} J_{\lambda }(\varOmega ) ' = \int _{\varGamma _v} F'( \varrho ({\mathbf {u}}_1,{\mathbf {u}}_2)) \varrho '({\mathbf {u}}_1,{\mathbf {u}}_2) \, \mathrm{d}s+ \int _{\varGamma _v}\bigg [ \frac{\partial F}{\partial n} + \kappa F\bigg ] {\mathbf {V}}\cdot {\mathbf {n}}\, \mathrm{d}s, \end{aligned}$$
(27)

where

$$\begin{aligned} \varrho '({\mathbf {u}}_1,{\mathbf {u}}_2)=\varvec{\sigma }({\mathbf {u}}_1'):\varvec{\varepsilon }({\mathbf {u}}_1) +\varvec{\sigma }({\mathbf {u}}_2'):\varvec{\varepsilon }({\mathbf {u}}_2). \end{aligned}$$

Here, \(\kappa \) is the average curvature at the given point on \(\varGamma _v\) and

$$\begin{aligned} \frac{\partial F}{\partial n} = F'( \varrho ({\mathbf {u}}_1,{\mathbf {u}}_2)) \frac{\partial }{\partial n}( \varrho ({\mathbf {u}}_1,{\mathbf {u}}_2) ). \end{aligned}$$
(28)

In order to get rid of \({\mathbf {u}}_1'\) and \({\mathbf {u}}_2'\), we introduce adjoint equations for \({\mathbf {p}}_1\) and \({\mathbf {p}}_2\) in the weak form

$$\begin{aligned} - \int _{\varOmega } \varvec{\sigma }({\mathbf {p}}_1 ): \varvec{\varepsilon }(\varvec{\varphi })\, \mathrm{d}x-\int _{\varGamma _v} F'(\varrho ({\mathbf {u}}_1,{\mathbf {u}}_2) ) \varvec{\sigma }({\mathbf {u}}_1 ):\varvec{\varepsilon }(\varvec{\varphi }) \, \mathrm{d}s= 0 \end{aligned}$$
(29)

and

$$\begin{aligned} - \int _{\varOmega } \varvec{\sigma }({\mathbf {p}}_2 ): \varvec{\varepsilon }(\varvec{\varphi })\, \mathrm{d}x-\int _{\varGamma _v} F'(\varrho ({\mathbf {u}}_1,{\mathbf {u}}_2) ) \varvec{\sigma }({\mathbf {u}}_2 ):\varvec{\varepsilon }(\varvec{\varphi }) \, \mathrm{d}s= 0 \end{aligned}$$
(30)

where \({\mathbf {p}}_1,\, {\mathbf {p}}_2,\, \varvec{\varphi }\, \in {\mathbf {H}}^1_{\varGamma _0}(\varOmega )\). Then, substituting again \(\varvec{\varphi }:= {\mathbf {p}}_1\) or \(\varvec{\varphi }:= {\mathbf {p}}_2\) in the shape derivative of the weak state equations and \(\varvec{\varphi }:= {\mathbf {u}}_1 ' \) or \(\varvec{\varphi }:= {\mathbf {u}}_2 ' \) in the adjoint equations, we obtain

$$\begin{aligned}&\int _{\varGamma _v} F'( \varrho ({\mathbf {u}}_1,{\mathbf {u}}_2) ) \varrho '({\mathbf {u}}_1,{\mathbf {u}}_2) \, \mathrm{d}s\nonumber \\&\quad =\int _{\varGamma _v} [\varvec{\sigma }({\mathbf {u}}_1 ):\varvec{\varepsilon }({\mathbf {p}}_1)+ \varvec{\sigma }({\mathbf {u}}_2 ):\varvec{\varepsilon }({\mathbf {p}}_2)] {\mathbf {V}}\cdot {\mathbf {n}}\, \mathrm{d}s. \end{aligned}$$
(31)

As a result,

$$\begin{aligned} J_{\lambda }(\varOmega ) ' = \int _{\varGamma _v} \bigg [\varvec{\sigma }({\mathbf {u}}_1 ):\varvec{\varepsilon }({\mathbf {p}}_1)+ \varvec{\sigma }({\mathbf {u}}_2 ):\varvec{\varepsilon }({\mathbf {p}}_2) + \frac{\partial F}{\partial n} + \kappa F \bigg ] {\mathbf {V}}\cdot {\mathbf {n}}\, \mathrm{d}s. \end{aligned}$$
(32)

When the expression in square brackets is negative, we should add material (\( {\mathbf {V}}\cdot {\mathbf {n}}> 0 \)); otherwise, material has to be removed (\( {\mathbf {V}}\cdot {\mathbf {n}}< 0 \)).

Nevertheless, in such a form the algorithm may have a tendency to liquidate the variable part of the boundary \(\varGamma _v\) altogether. To control this unwanted behavior, we introduce the averaged versions of \(J_{\lambda }\) and F:

$$\begin{aligned} {\bar{J}}_{\lambda }&=\frac{J_{\lambda }}{\int _{\varGamma _v} \, \mathrm{d}s}, \end{aligned}$$
(33)
$$\begin{aligned} {\bar{F}}&=\frac{\int _{\varGamma _v} F \, \mathrm{d}s}{\int _{\varGamma _v} \, \mathrm{d}s}. \end{aligned}$$
(34)

Observe that for \(| \varGamma _v|=\int _{\varGamma _v} \, \mathrm{d}s\) we have

$$\begin{aligned} | \varGamma _v|' =\int _{\varGamma _v} \kappa {\mathbf {V}}\cdot {\mathbf {n}}\, \mathrm{d}s. \end{aligned}$$

Hence, the shape derivative of the averaged functional may be expressed as

$$\begin{aligned} \begin{aligned} {\bar{J}}'_{\lambda }&= \frac{1}{| \varGamma _v|^2}\big [J'_{\lambda }(\varOmega ) | \varGamma _v| - J_{\lambda }(\varOmega )| \varGamma _v|' \big ]\\&=\frac{1}{| \varGamma _v|}\int _{\varGamma _v}\bigg [\varvec{\sigma }({\mathbf {u}}_1 ):\varvec{\varepsilon }({\mathbf {p}}_1)+ \varvec{\sigma }({\mathbf {u}}_2 ):\varvec{\varepsilon }({\mathbf {p}}_2) + \frac{\partial F}{\partial n} + \kappa F \bigg ] {\mathbf {V}}\cdot {\mathbf {n}}\, \mathrm{d}s\\&\qquad - \frac{1}{| \varGamma _v|} {\bar{F}}\int _{\varGamma _v} \kappa {\mathbf {V}}\cdot {\mathbf {n}}\, \mathrm{d}s. \end{aligned} \end{aligned}$$

As a result, the final formula has the form

$$\begin{aligned} {\bar{J}}'_{\lambda }=\frac{1}{| \varGamma _v|}\int _{\varGamma _v} \bigg [\varvec{\sigma }({\mathbf {u}}_1 ):\varvec{\varepsilon }({\mathbf {p}}_1)+ \varvec{\sigma }({\mathbf {u}}_2 ):\varvec{\varepsilon }({\mathbf {p}}_2) + \frac{\partial F}{\partial n} + \kappa (F-{\bar{F}}) \bigg ] {\mathbf {V}}\cdot {\mathbf {n}}\, \mathrm{d}s. \end{aligned}$$
(35)

We assume that the heuristic algorithm for Problem 1a is realized as follows, taking into account the first three terms in (35):

  • it is assumed that the energy density \(\varvec{\sigma }({\mathbf {u}}): \varvec{\varepsilon }({\mathbf {u}})\) has a constant value \(\lambda _0\) on \(\varGamma _v\);

  • the energy densities \(\varvec{\sigma }({\mathbf {u}}_1): \varvec{\varepsilon }({\mathbf {u}}_1)\) and \(\varvec{\sigma }({\mathbf {u}}_2): \varvec{\varepsilon }({\mathbf {u}}_2)\) are computed for loads \({\mathbf {t}}_1\) and \({\mathbf {t}}_2\) acting on the same boundary \(\varGamma _1\);

  • the average energy density is \(\frac{1}{2} \varvec{\sigma }({\mathbf {u}}_1):\varvec{\varepsilon }({\mathbf {u}}_1) + \frac{1}{2} \varvec{\sigma }({\mathbf {u}}_2):\varvec{\varepsilon }({\mathbf {u}}_2) \) for loads \({\mathbf {t}}_1\) and \({\mathbf {t}}_2\);

  • if at a given point on \(\varGamma _v\) this density is greater than \(\lambda _0+s\), the boundary is moved outside;

  • if at a given point on \(\varGamma _v\) this density is smaller than \(\lambda _0-s\), the boundary is moved inside;

  • these steps are repeated until equilibrium is achieved;

  • the value of \(\lambda _0\) is modified if the final design is unsatisfactory.

The last term in (35), involving the curvature \(\kappa \), is incorporated into the procedure in the following way:

  • If \(\kappa > 0\) and \(F > {\bar{F}}\), then after a biomimetic modification the boundary is additionally moved inside \(\varOmega \) by 50% of the biomimetic step.

  • If \(\kappa < 0\) and \(F > {\bar{F}}\), then after a biomimetic modification the boundary is additionally moved outside \(\varOmega \) by 50% of the biomimetic step.

The insensitivity range parametrized by s is needed to ensure existence of equilibrium.

For Problem 2 the algorithm will be the same, with \(\frac{1}{2} \varvec{\sigma }({\mathbf {u}}_1):\varvec{\varepsilon }({\mathbf {u}}_1) + \frac{1}{2} \varvec{\sigma }({\mathbf {u}}_2):\varvec{\varepsilon }({\mathbf {u}}_2) \) replaced by \(\alpha _1 \varvec{\sigma }({\mathbf {u}}_1):\varvec{\varepsilon }({\mathbf {u}}_1) + \alpha _2 \varvec{\sigma }({\mathbf {u}}_2):\varvec{\varepsilon }({\mathbf {u}}_2)\).

10 Numerical Examples

The heuristic biomimetic procedure is based directly on the biomechanical model of the trabecular bone remodeling phenomenon.

Fig. 1
figure 1

Two load cases for the square design domain. Left: Force set P; right: force set Q. All loads are of the same magnitude

Fig. 2
figure 2

The problem with square design domain with a central square rigid support; selected steps of the optimization procedure for the multiple load cases

To compute the strain energy density on the structural surface, the finite element method is used. (The details of the numerical environment can be found in [12].) For the multiple load case simulation, the problem with a square design domain with a central square rigid support was chosen. The reason was the existence of an exact analytical solution examined in many papers [27,28,29].

Two different load cases were examined, depicted in Fig. 1. The forces in each case are of the same magnitude. Material parameters were taken as follows: Young’s modulus \(2\times 10^{11}\) Pa, Poisson’s ratio 0.3 and the size of the insensitivity zone 80–180 MPa. Since the biomimetic method works in 3-D only, the design domain is in fact 3-dimensional, but due to very small thickness it can be treated as quasi 2-dimensional.

The results (selected steps) of the optimization procedure for the multiple load cases for force sets P and Q are presented in Fig. 2. The optimal configuration obtained is similar to the results presented previously by other researchers.

To compare our approach with other results derived by a more classical approach, a widely investigated T-bracket structure was chosen. The T-bracket problem model is presented in Fig. 3. Two load cases were analyzed. The forces for both load cases were of the same magnitude, and the material parameters were taken as in the previous example. For this example, 82 iterations were needed. The structural evolution was based on shape gradient approximation by the speed method, and it was separated from the finite element method computations. Each iteration included generation of a mesh (tetrahedral elements) and finite element calculations for each load case. The computational time for the initial configuration of 93,120 elements was 10 s (wall-clock time) for the mesh generation and 25 s for the finite element calculations for each load case. For the final configuration, there were 42,396 elements, 5 s for meshing and 20 s for structural calculation. The calculations were carried out with the use of our own mesh generation tool Cosmoprojector and the parallel finite element solver based on Message Passing Interface (MPI). The computations were run on 4 CPUs with the use of the cluster (16 GB RAM per node). The details of the mesh generation method can be found in [12].

The results for the T-bracket structure problem analyzed in [30] with the level set method are very similar to the results presented in Fig. 4.

Fig. 3
figure 3

The T-bracket problem model. Left: Force located on the left part of the domain; right: force located on the right part of the domain. All loads are of the same magnitude

Fig. 4
figure 4

The T-bracket structure problem; selected steps of the optimization procedure for the multiple load cases

Fig. 5
figure 5

The box design domain. Left: The horizontal bending force; right: the vertical bending force

In order to test the procedure for 3-D problems, two different load cases were examined, and the design domains are presented in Fig. 5. It was assumed that all nodes of the back wall of the domain box could be fixed (clamped wall), and the bending force was applied to the middle of the opposite, front wall. The first load case was with a vertical bending force, and the second with the same definition of boundary conditions and a horizontal bending force. All loads were of the same magnitude. Material parameters and the size of the insensitivity zone were assumed to be as in the previous example.

Selected steps of the optimization procedure are presented in Fig. 6.

Fig. 6
figure 6

The box starting domain (isometric view); selected steps of the optimization procedure for the multiple load cases for the 3-D problem

Fig. 7
figure 7

The stick starting domain (isometric view); selected steps of the optimization procedure for the multiple load cases for the 3-D problem

The biomimetic optimization system, as in the case of living creatures, is 3-dimensional, and the definition of the design domain is not needed. Moreover, the definition of boundary conditions could be different for each step of the simulation. Instead of starting the computations from a box domain, it is possible to start from just a stick, connecting the clamped wall (the potential surface, where no displacement boundary conditions could be defined) as a starting configuration. The results under such assumptions are presented in Fig. 7.

11 Conclusions

In this paper, a new formulation of biomimetic optimization based on trabecular bone remodeling applied to a multiple load problem is presented. The stiffest design is obtained by adding or removing material on the structural surface in virtual space. Three elements complete the formula driving the process of adding or removing material: non-local influence of boundary modification, spatial variability of the function penalizing deviation from the assumed strain energy density on the structural surface and measuring the increase or decrease in the area of the surface itself, by measuring the surface curvature. The structural evolution is based on shape gradient approximation by the speed method, and it is separated from finite element method computations. The finite element method is used to compute the distribution of the strain energy density only. An important advantage of our approach is that optimization results are in the form of a functional configuration. Accordingly, the assumed value of the strain energy density on the part of the boundary subject to modification can be related to material properties. Instead of imposing a volume constraint, we parameterize shapes by energy density, which may be quite accurately predicted from yield criteria. The functional configurations during the process of optimization allow including size, shape and topology optimization in one numerical procedure.

The 2-D result for the common benchmark is in line with previous results by other researchers [27,28,29]. The 3-D result shows the configuration for a real material. In view of the above, our 3-D results with two perpendicular bending forces as multiple loads could be a good benchmark for testing other approaches to multiple load optimization.