1 Introduction

Compliant mechanisms are structures that utilize elastic deformation to transmit input forces or displacements to output forces or displacements. Compared to rigid body mechanisms (e.g., hinged link), their advantages are smooth shape movements and less part counts and lubrications, which offer cost-effective manufacturing and maintenance. The simplest design is a single-input-single-output (SISO) compliant mechanism, and topology optimization for the SISO compliant mechanism has been extensively studied (Sigmund 1997; Deepak et al. 2009; Ansola et al. 2010). The main objectives for the optimal design of a SISO compliant mechanism are based on displacement and force transmissions, e.g., maximizing the displacement at a known output port (or geometric and mechanical advantage). In practice, compliant mechanisms with multiple input and output ports are common in MEMS applications. This type of structure is termed multi-input-multi-output (MIMO) compliant mechanisms, and topology optimization for MIMO compliant mechanisms has attracted considerable interest in the past decade (Saxena 2005; Zhu et al. 2013, 2018; Alonso et al. 2014). In addition, compliant mechanism design problems considering multiple degrees of freedom rather than multiple output ports were also studied recently (Kirmse et al. 2021; Koppen 2022) for shape adaptation or morphing applications.

Pressure-actuated compliant mechanisms (Panganiban et al. 2010; Vasista and Tong 2012; Lu and Tong 2021b) are expected to provide smoother and more compatible movement and shape changes in matching with surrounding structures, compared to those actuated via concentrated point load(s) (SISO or MIMO), which is particularly important in, for example, soft robotic grippers (Lu and Tong 2022b) or morphing structures (Vasista and Tong 2012). However, even the design of a compliant mechanism with single-output and single-pressure input is challenging since the pneumatic or hydraulic pressures applied to the structure are design-dependent surface loadings that evolve with designs. As the locations and directions of pressure can change with designs due to the evolutions of interface boundary, major difficulties include (Hammer and Olhoff 2000; Chen and Kikuchi 2001; Chen et al. 2001; Du and Olhoff 2004; Sigmund and Clausen 2007; Zhang et al. 2008; Deaton and Grandhi 2013) the sensitivity of the load vector and tracking and modeling of the fluid–structure interface (pressure load-carrying boundary). Thus, the investigations on pressure-actuated compliant mechanisms are very limited. In the existing works, the hydrostatic incompressible fluid assumption is applied (Panganiban et al. 2010; Vasista and Tong 2012, 2013; de Souza and Silva 2020), which employs incompressible fluid material to transfer pressure loads to structures (Sigmund and Clausen 2007). Alternative methods to deal with the design-dependent pressures have been developed recently, such as the Darcy method (Kumar et al. 2020; Kumar and Langelaar 2021, 2022) or work equivalent loading method (Lu and Tong 2021b). To the authors’ best knowledge, there is no attempt to consider compliant mechanism designs with multiple outputs and under multiple design-dependent pressure inputs. This work aims to study topology optimization of multiple design-dependent-input-multiple-output (MDDIMO) compliant mechanisms.

Moreover, compliant mechanisms can be composed of multi-material, and the topology optimization methods developed for single-material SISO or MIMO compliant mechanisms can be extended to multi-material design problems. For example, topology optimization via density-based method (Sigmund 2001; Yin and Ananthasuresh 2001), level-set method (Wang et al. 2005; Yulin and Xiaoming 2004), genetic algorithm (GA) (Saxena 2005), and sequential element rejection and admission (SERA) method have been studied. In addition, composite materials and fiber orientation optimization can also be considered for compliant mechanisms. Until recent years, the simultaneous optimization of topology and material orientations for compliant mechanisms was studied in the literature (Lee et al. 2018; Lu and Tong 2021a). This paper attempts to introduce the concurrent optimization of multi-material topology and material orientations for MIMO and MDDIMO compliant mechanisms to potentially improve the structural performances (displacement and force transmissions) of compliant mechanisms. As introducing multi-material and material orientations allows the materials to be anisotropic and heterogeneous, the freedoms of displacement and force transmission can be improved.

The most common and well-studied method to design material orientations is using gradient-based optimization algorithms, such as the discrete material optimization (DMO) method (Stegmann and Lund 2005; Duan et al. 2015; Wu et al. 2017; Xu et al. 2019). However, since the material orientation problems are highly nonconvex, gradient-based solvers may lead to local optimal solutions (Luo et al. 2020). An alternative approach is deriving analytical solutions from mathematical optimality criteria to directly calculate the optimal orientation, which can avoid the use of gradient-based algorithms and lower the risk for local optimum. With this concept, principal strain methods (Pedersen 1990), principal stress methods (Díaz and Bendsøe 1992), strain-based methods (Pedersen 1989, 1990, 1991), stress-based methods (Cheng et al. 1994), and energy-based methods (Luo and Gea 1998) were introduced. However, all these analytical methods were investigated for orthotropic material and minimum compliance problems. As the works on material orientation optimization and concurrent design of topology and orientations for compliant mechanisms are limited, in this study, we develop an analytical approach for the material orientation optimization of MIMO compliant mechanisms and combine the method with multi-material topology optimization.

In this paper, we first propose and formulate the MDDIMO compliant mechanism design problem, similar to the existing MIMO. Next, the concurrent optimization of multi-material topology and material orientations for the MDDIMO compliant mechanisms are mathematically formulated and numerically implemented by an extended MIST method. The optimal material orientations are directly calculated via an analytical solution derived for fully anisotropic materials and MIMO compliant mechanisms, without using searching (e.g., evolutionary) or optimization (e.g., gradient-based) algorithms, which can significantly save computational cost. In the topology optimization with multiple design-dependent pressure loadings, we only consider the structure subject to fluidic pressure loads (without modeling of fluid field) and apply the fluidic pressures directly on the interface elements as work equivalent nodal forces (Lu and Tong 2021b). A novel element-based searching scheme is also proposed for tracking multiple fluid–structure interfaces. Numerical examples, including benchmark problems and MDDIMO compliant mechanism design cases, are presented to validate the present extended MIST algorithm.

2 Problem formulation

2.1 Problem statement

Consider an elastic body \(\Omega\) subjected to multiple input loadings (\({{\text{F}}}_{{\text{in}},i}\), where\(i={1,2}\dots {N}_{{\text{in}}}\)), as shown in Fig. 1, including design-dependent or independent loads, such as pressures or concentrated forces. The elastic body that produces displacement transmissions of multiple selected output ports (\({u}_{{\text{out}},j}\), where\(j={1,2}\dots {N}_{{\text{out}}}\)) forms a MIMO compliant mechanism. It should be noted that in the existing MIMO compliant mechanism problems, only design-independent (predefined) concentrated forces are considered as input loadings. In contrast, in this work, one or multiple design-dependent loadings (e.g., fluidic pressures) are involved as input loadings. Thus, the new problem is termed Multi-Design-Dependent-Input-Multi-Output (MDDIMO) compliant mechanisms.

Fig. 1
figure 1

Design domain of a multi-material MDDIMO compliant mechanism

For a SISO compliant mechanism, regardless of the input load types (e.g., even design-dependent pressures), the optimization problem is defined as finding the topology of the elastic body that maximizes the output displacement (\({u}_{{\text{out}}}\)) subject to the equilibrium equation and material volume constraint. Moreover, using the unit dummy load concept from Frecker et al. (1997), the objective function (output displacement \({u}_{{\text{out}}}\)) can be expressed as the mutual strain energy (MSE) as follows:

$$\begin{array}{c}{\text{min}}:J=-{u}_{{\text{out}}}=-{\text{MSE}}=-{{\mathbf{U}}_{{\text{in}}}}^{{\text{T}}} {\mathbf{K}} {\mathbf{U}}_{{\text{out}}}\end{array}$$
(1)

where J represents the objective function, \(\mathbf{U}\) is the displacement vector with subscripts in and out denoting the input and output load cases, and K is the global stiffness matrix.

In this formulation (Lu and Tong 2021b), the output load case is a unit dummy load applied at the output port with an artificial spring attached, while the input load case \({{\text{F}}}_{{\text{in}},i}\) is the actual real load (e.g., design-dependent pressure or concentrated force) applied to the compliant mechanism. Furthermore, this method for SISO compliant mechanisms under design-dependent pressures can be extended to MDDIMO problems. For the conventional MIMO compliant mechanism problem (under predefined concentrated forces) (Alonso et al. 2014), the objective function J can be defined similar to Eq. (1) as Eq. (2a). The objective function J is stated as the weighted sum of all possible MSE combinations of input and output load cases (\(i={1,2}\dots {N}_{{\text{in}}}\) and \(j={1,2}\dots {N}_{{\text{out}}}\)), with \({{\text{MSE}}}_{i, j}\) and \({w}_{i, j}\) referring to the mutual strain energy and the corresponding weighting factor for the ith input and the jth output load cases (\({\sum }_{i=1}^{{N}_{{\text{in}}}}{\sum }_{j=1}^{{N}_{{\text{out}}}}{w}_{i, j}=1\)). Please note in the conventional MIMO problems, the input and output cases are both unit virtual (or pseudo) forces, while the input load cases are the real design-dependent or predefined loadings in the MDDIMO problem considered in this work. Thus, the topology optimization of MDDIMO compliant mechanisms can be mathematically formulated as finding the material distribution of the body \(\Omega\) (including topology and orientation) that

$$\begin{array}{c}min: J=-{\sum }_{i=1}^{{N}_{{\text{in}}}}{\sum }_{j=1}^{{N}_{{\text{out}}}}{w}_{i, j}{{\text{MSE}}}_{i, j} \end{array}$$
(2a)
$$\begin{array}{c}s.t.: \left\{\begin{array}{l}\mathbf{K}{\mathbf{U}}_{{\text{in}}}^{i}={\mathbf{F}}_{{\text{in}}}^{i}\\ \mathbf{K}{\mathbf{U}}_{{\text{out}}}^{j}={\mathbf{F}}_{{\text{out}}}^{j}\\ {\int }_{\Omega }d\Omega \le {V}_{f}V\end{array}\right. \end{array}$$
(2b–d)

where the \({\mathbf{F}}_{{\text{in}}}^{i}\) is the load vector for the real input load cases, \({\mathbf{F}}_{{\text{out}}}^{j}\) is the load vector of the virtual output load cases, with superscript \(i={1,2}\dots {N}_{{\text{in}}}\) and \(j={1,2}\dots {N}_{{\text{out}}}\) being the number of input or output load cases, respectively, and \({V}_{f}\) and \(V\) represent the prescribed volume fraction and the total volume of \(\Omega\).

To conduct structural analysis using the finite element method (FEM), the design domain \(\Omega\) is discretized with a finite number (\({N}_{e}\)) of elements with regular fixed-grid mesh, with \({\Omega }_{e}\) denoting the subdomain of the eth element. Thus, the global stiffness matrix K is expressed accordingly as follows:

$$\begin{array}{c}{\mathbf{K}}=\sum_{e=1}^{{N}_{e}}{\int }_{{\Omega }_{e}} {\mathbf{B}}^{{\text{T}}}{\mathbf{D}}_{e}\mathbf{B}d{\Omega }_{e} \end{array}$$
(3)

where B is the strain–displacement matrix and \({\mathbf{D}}_{e}\) denotes the constitutive matrix of the eth element. The matrix \({\mathbf{D}}_{e}\) relates to the material model and properties.

2.2 Material model

In this work, we consider compliant mechanisms composed of multi-material and composite materials. Since composite materials are involved, the material (or fiber) orientation at the center of each finite element \({\Omega }_{e}\) is defined as \({\theta }_{e}\) (Lund 2009; Nomura et al. 2015; Papapetrou et al. 2020; Lu and Tong 2022a). As shown in Fig. 2, the element can be composed of one or multiple materials, and each can be anisotropic, orthotropic, or isotropic. However, only one fiber orientation \({\theta }_{e}\) is assigned to each element, which indicates if more than one anisotropic material is involved in one element (see Fig. 2b), all materials share one orientation \({\theta }_{e}\). Therefore, the element elastic constitutive matrix \({\mathbf{D}}_{e}\) can be expressed using coordinate transformation as follows:

$$\begin{array}{c}{\mathbf{D}}_{e}= T{\left({\theta }_{e}\right)}^{{\text{T}}} {\mathbf{D}}_{e}^{0} T\left({\theta }_{e}\right) \end{array}$$
(4a)

where \({\varvec{T}}\left({\theta }_{e}\right)\) is the transformation matrix given by

Fig. 2
figure 2

Illustrative examples for finite elements in multi-material composite compliant mechanisms with a one anisotropic material, b two anisotropic materials, and c one anisotropic and one isotropic material

$$\begin{array}{c}T\left({\theta }_{e}\right)=\left[\begin{array}{ccc}{{\text{cos}}}^{2}\left({\theta }_{e}\right)& {{\text{sin}}}^{2}\left({\theta }_{e}\right)& cos\left({\theta }_{e}\right)sin\left({\theta }_{e}\right)\\ {{\text{sin}}}^{2}\left({\theta }_{e}\right)& {{\text{cos}}}^{2}\left({\theta }_{e}\right)& -cos\left({\theta }_{e}\right)sin\left({\theta }_{e}\right)\\ -2cos\left({\theta }_{e}\right)sin\left({\theta }_{e}\right)& 2cos\left({\theta }_{e}\right)sin\left({\theta }_{e}\right)& {{\text{cos}}}^{2}\left({\theta }_{e}\right)-{{\text{sin}}}^{2}\left({\theta }_{e}\right)\end{array}\right] \end{array}$$
(4b)

Subsequently, the elastic constitutive matrix \({\mathbf{D}}_{e}^{0}\) prior to rotation/transformation can be formulated using a multi-material interpolation scheme similar to that in Bendsøe and Sigmund (1999), where the interpolation scheme in Bendsøe and Sigmund (1999) for Young’s modulus of isotropic material is extended to the elastic constitutive matrix of anisotropic materials, as shown in Eq. (5a).

$${{\mathbf{D}}_{e}^{0} = \rho _{1}^{{p_{1} }} \left( {\rho _{2}^{{p_{2} }} {\mathbf{D}}_{1} + \left( {1 - \rho _{2}^{{p_{2} }} } \right){\mathbf{D}}_{2} } \right)}$$
(5a)
$${\mathbf{D}}_{e}^{0}={\left({x}_{e1}{+x}_{e2}\right)}^{{p}_{1}} \left[{\left(\frac{{x}_{e1}}{{x}_{e1}{+x}_{e2}}\right)}^{{p}_{2}} {\mathbf{D}}_{1}+{\left(1-{\left(\frac{{x}_{e1}}{{x}_{e1}{+x}_{e2}}\right)}^{{p}_{2}}\right)\mathbf{D}}_{2}\right]$$
(5b)

where \({\mathbf{D}}_{1}\) and \({\mathbf{D}}_{2}\) are the constitutive matrices of material 1 or 2 and \({p}_{1}\) and \({p}_{2}\) are the material penalization factors. \({\rho }_{1}\) is the density of the mixture of two materials and \({\rho }_{2}\) is the density of material 1 in the mixture, in the SIMP method (Bendsøe and Sigmund 1999). In the MIST method, the topological design variables \({x}_{e}\) are defined as the area ratio of each material (1 or 2) in the eth element, similar to the density variables \(\rho\) in SIMP. Thus, \({\rho }_{1}\) and \({\rho }_{2}\) can be adopted and translated as \({x}_{e1}{+x}_{e2}\) (the area ratio of the mixture in an element) and \(\frac{{x}_{e1}}{{x}_{e1}{+x}_{e2}}\) (the area ratio of material 1 in the mixture). Hence, the multi-material interpolation is derived as Eq. (5b).

In the present material model, the materials 1 and 2 are not limited to orthotropic composites. As shown in Eq. (6), the constitutive matrix \({\mathbf{D}}_{1}\) and \({\mathbf{D}}_{2}\) can be fully anisotropic (\({D}_{16}\ne 0\) and \({D}_{26}\ne 0\)).

$$\begin{array}{c}{\mathbf{D}}_{e}^{0}=\left[\begin{array}{ccc}{D}_{11}& {D}_{12}& {D}_{16}\\ {D}_{12}& {D}_{22}& {D}_{26}\\ {D}_{16}& {D}_{26}& {D}_{66}\end{array}\right]\end{array}$$
(6)

where subscripts 1, 2, and 6 denote the normal and in-plane shear components.

With Eqs. (4) and (5), the finite elements composed of multiple isotropic or anisotropic materials, as illustrated in Fig. 2, can be interpolated to a homogenized one with a single constitutive matrix \({\mathbf{D}}_{e}\) participating in the structural analysis of each input or output load case (Eqs. (2b) and (2c)).

2.3 Problem formulation of hinge-free MDDIMO compliant mechanisms

Before discussing the implementation of the MDDIMO problem defined in 2.1, the formulation should be slightly revised due to the common thin hinge issue. Thin hinges often appear in compliant mechanisms, which is likely to cause stress concentrations and premature fatigue failures. Thus, topology optimization of hinge-free compliant mechanisms (Luo et al. 2008) has been investigated in the literature for conventional SISO or MIMO problems without considering design-dependent loadings. For the MDDIMO problem considered in this work, hinge free is particularly important. As the design-dependent loadings involved are usually fluidic pressures, thin hinges may lead to fluid leakage. Thus, thin hinges should be eliminated to guarantee gas or liquid tightness.

In order to remove the thin hinges, common approaches are applying a minimum length scale (Zhou et al. 2015) or adding input and output compliances to the objective functions (Alonso et al. 2014; Zhu et al. 2013, 2015). In our previous work (Lu and Tong 2021b), input compliances were considered for the SISO compliant mechanisms under design-dependent pressures, and it was proven to implicitly circumvent thin hinges and also the structural discontinuities on the load-carrying boundaries effectively. Therefore, for the present MDDIMO problem, we propose an objective function, as demonstrated in Eq. (7), similar to (Alonso et al. (2014) and Zhu et al. (2013, 2015). The original objective function (2a) is re-written with the input and output compliances added:

$$\begin{array}{c}min: \overline{J }={\sum }_{i=1}^{{N}_{{\text{in}}}}{\sum }_{j=1}^{{N}_{{\text{out}}}}\left(-{w}_{i, j}{{\text{MSE}}}_{i, j}+{\alpha }_{{\text{in}}}^{i}{{\text{C}}}_{{\text{in}}}^{i}+{\alpha }_{{\text{out}}}^{j}{{\text{C}}}_{{\text{out}}}^{j}\right)\end{array}$$
(7)

where \({{\text{C}}}_{{\text{in}}}^{i}\) and \({{\text{C}}}_{{\text{out}}}^{j}\) are the mean compliances of the ith input or the jth output load cases; \({\alpha }_{{\text{in}}}^{i}\) and \({\alpha }_{{\text{out}}}^{j}\) are the corresponding weighting factors (\({\sum }_{i=1}^{{N}_{{\text{in}}}}{\sum }_{j=1}^{{N}_{{\text{out}}}}\left({w}_{i, j}+{\alpha }_{{\text{in}}}^{i}+{\alpha }_{{\text{out}}}^{j}\right)\) = 1); and the mutual strain energy and compliance can be expressed in integral forms as follows:

$$\begin{array}{c}\begin{array}{c}{{\text{MSE}}}_{i, j}={{\mathbf{U}}_{{\text{in}}}^{i}}^{{\text{T}}}\mathbf{K}{\mathbf{U}}_{{\text{out}}}^{j}={\int }_{\Omega }{{{\varvec{\upsigma}}}_{{\text{in}}}^{i}}^{{\text{T}}}{{\varvec{\upvarepsilon}}}_{{\text{out}}}^{j}d\Omega \end{array}\end{array}$$
(8)
$$\begin{array}{c}{{\text{C}}}_{{\text{in}}}^{i}={{\mathbf{U}}_{{\text{in}}}^{i}}^{{\text{T}}} {\mathbf{K}} {\mathbf{U}}_{{\text{in}}}^{i}={\int }_{\Omega }{{{\varvec{\upsigma}}}_{{\text{in}}}^{i}}^{{\text{T}}}{{\varvec{\upvarepsilon}}}_{{\text{in}}}^{i}d\Omega \end{array}$$
(9)
$$\begin{array}{c}{{\text{C}}}_{{\text{out}}}^{j}={{\mathbf{U}}_{{\text{out}}}^{j}}^{{\text{T}}} {\mathbf{K}} {\mathbf{U}}_{{\text{out}}}^{j}={\int }_{\Omega }{{{\varvec{\upsigma}}}_{{\text{out}}}^{j}}^{{\text{T}}}{{\varvec{\upvarepsilon}}}_{{\text{out}}}^{j}d\Omega \end{array}$$
(10)

where \({\varvec{\upsigma}}\) and \({\varvec{\upvarepsilon}}\) are the stress and strain vectors for the corresponding input and output load cases.

It should be noted that the additional compliances of the input and output load cases in the new objective function Eq. (7), on the other hand, can result in designs with higher input and output stiffness. Thus, adding \({{\text{C}}}_{{\text{in}}}^{i}\) and \({{\text{C}}}_{{\text{out}}}^{j}\) is not necessary and may not be desirable for all design cases. Alternative approaches, such as minimum length scale (Zhou et al. 2015), could also be considered to synthesize hinge-free designs. By Eq. (7) substituting to the problem statement Eq. (2), replacing Eq. (2a), the topology optimization of hinge-free MDDIMO compliant mechanisms can be formulated and thus implemented. Moreover, the material orientation of elements \({\theta }_{e}\) are also considered in addition to the topology, and the next section will focus on the orientation optimization.

3 Optimal material orientation

In this work, we propose a mutual strain-based analytical method to determine the optimal material orientation from the mathematical optimality conditions, by which a heuristic searching or gradient-based optimization algorithm is not needed. Moreover, this analytical solution works for MIMO compliant mechanisms and fully anisotropic materials. In the existing works, analytical methods only focus on the minimum mean compliance problems and orthotropic composite materials (Pedersen 1990, 1991; Cheng et al. 1994; Luo and Gea 1998).

Before deriving the analytical solutions, the objective function (2a) should be rewritten. Firstly, Eq. (8) is rewritten in an element form and substituted to (2a), as shown in the first line of Eq. (11). Then, the constitutive relation is considered in the second line of Eq. (11).

$$\begin{array}{c}J=-{\sum }_{i=1}^{{N}_{{\text{in}}}}{\sum }_{j=1}^{{N}_{{\text{out}}}}{w}_{i, j}{{\text{MSE}}}_{i, j}=-{\sum }_{i=1}^{{N}_{{\text{in}}}}{\sum }_{j=1}^{{N}_{{\text{out}}}}{w}_{i, j}\sum_{e=1}^{{N}_{e}}{\int }_{{\Omega }_{{\text{e}}}} {{{\varvec{\upsigma}}}_{{\text{in}}}^{i}}^{{\text{T}}}{{\varvec{\upvarepsilon}}}_{{\text{out}}}^{j}d{\Omega }_{{\text{e}}}\\ =-{\sum }_{i=1}^{{N}_{{\text{in}}}}{\sum }_{j=1}^{{N}_{{\text{out}}}}\left({w}_{i, j}\sum_{e=1}^{{N}_{e}}{\int }_{{\Omega }_{{\text{e}}}} {{{\varvec{\upvarepsilon}}}_{{\text{in}}}^{i}}^{{\text{T}}}{\mathbf{D}}_{e}{{\varvec{\upvarepsilon}}}_{{\text{out}}}^{j}d{\Omega }_{{\text{e}}}\right)\end{array}$$
(11)
$$=\left|{\Omega }_{{\text{e}}}\right|\sum_{e=1}^{{N}_{e}}{\Pi }_{e}\left({x}_{e1},{x}_{e2},{\theta }_{e}\right)$$
(12)

Next, one can define a function \({\Pi }_{e}\) as Eq. (13), and the original objective function J is rewritten as a summation of \({\Pi }_{e}\) over the design domain (\(e={1,2}\dots {N}_{e}\)) as Eq. (12). Hence, minimizing the objective function J is equivalent to minimizing the function \({\Pi }_{e}\) for each element.

$${\Pi }_{e}\left({\theta }_{e}\right)=-{\sum }_{i=1}^{{N}_{{\text{in}}}}{\sum }_{j=1}^{{N}_{{\text{out}}}}{w}_{i, j}{\int }_{{\Omega }_{{\text{e}}}} {{{\varvec{\upvarepsilon}}}_{{\text{in}}}^{i}}^{{\text{T}}}{\mathbf{D}}_{e}{{\varvec{\upvarepsilon}}}_{{\text{out}}}^{j}d{\Omega }_{{\text{e}}}$$
(13a)
$$=-{\sum }_{i=1}^{{N}_{{\text{in}}}}{\sum }_{j=1}^{{N}_{{\text{out}}}}{w}_{i, j}{\int }_{{\Omega }_{{\text{e}}}}{{{\varvec{\upvarepsilon}}}_{{\text{in}}}^{i}}^{{\text{T}}}{\varvec{T}}{\left({\theta }_{e}\right)}^{{\text{T}}} {\mathbf{D}}_{e}^{0}\left({x}_{e1},{x}_{e2}\right){\varvec{T}}\left({\theta }_{e}\right){{\varvec{\upvarepsilon}}}_{{\text{out}}}^{j}d{\Omega }_{{\text{e}}}$$
(13b)

As the optimization problem has been redefined as finding the optimal \({\theta }_{e}\) for minimum \({\Pi }_{e}\) (\(e={1,2}\dots {N}_{e}\)), in order to determine the optimality condition for orientation \({\theta }_{e}\) analytically, the objective function \({\Pi }_{e}\left({\theta }_{e}\right)\) is differentiated with respect to \({\theta }_{e}\). The element strain vectors \({{\varvec{\upvarepsilon}}}_{{\text{in}}}^{i}={\left\{\begin{array}{ccc}{\left({\upvarepsilon }_{{\text{in}}}^{i}\right)}_{1}& {\left({\upvarepsilon }_{{\text{in}}}^{i}\right)}_{2}& {\left({\upgamma }_{{\text{in}}}^{i}\right)}_{12}\end{array}\right\}}^{{\text{T}}}\) and \({{{\varvec{\upvarepsilon}}}_{{\text{out}}}^{j}=\left\{\begin{array}{ccc}{\left({\upvarepsilon }_{{\text{out}}}^{j}\right)}_{1}& {\left({\upvarepsilon }_{{\text{out}}}^{j}\right)}_{2}& {\left({\upgamma }_{{\text{out}}}^{j}\right)}_{12}\end{array}\right\}}^{{\text{T}}}\) (where the subscripts 1, 2, and 12 denote the normal and shear strain components) are solved during the structural analysis of virtual and real load cases. Thus, the optimality condition \(\frac{\partial {\Pi }_{e}}{\partial {\theta }_{e}}=0\) is expressed as follows:

$$\begin{array}{c}\frac{\partial {\Pi }_{e}}{\partial {\theta }_{e}}=\left[{\sum }_{i=1}^{{N}_{{\text{in}}}}{\sum }_{j=1}^{{N}_{{\text{out}}}}{w}_{i, j}{\int }_{{\Omega }_{{\text{e}}}}{\left\{\begin{array}{c}{\left({\upvarepsilon }_{{\text{in}}}^{i}\right)}_{1}\\ {\left({\upvarepsilon }_{{\text{in}}}^{i}\right)}_{2}\\ {\left({\upgamma }_{{\text{in}}}^{i}\right)}_{12}\end{array}\right\}}^{{\text{T}}}\frac{\partial {\mathbf{D}}_{e}}{\partial {\theta }_{e}}\left\{\begin{array}{c}{\left({\upvarepsilon }_{{\text{out}}}^{j}\right)}_{1}\\ {\left({\upvarepsilon }_{{\text{out}}}^{j}\right)}_{2}\\ {\left({\upgamma }_{{\text{out}}}^{j}\right)}_{12}\end{array}\right\}d{\Omega }_{{\text{e}}}\right]=0\end{array}$$
(14)

Then, substituting in the constitutive matrix \({\mathbf{D}}_{e}\) and transformation matrix \({\varvec{T}}\left({\theta }_{e}\right)\) in Eq. (4), the optimality condition becomes

$$\begin{array}{c}\begin{array}{c}{\frac{\partial {\Pi }_{e}}{\partial {\theta }_{e}}=A}_{1}{\text{sin}}\left(2{\theta }_{e}\right)+{A}_{2}{\text{cos}}\left(2{\theta }_{e}\right)+{A}_{3}{\text{sin}}\left(4{\theta }_{e}\right)+{A}_{4}{\text{cos}}\left(4{\theta }_{e}\right)\end{array}\end{array}$$
(15)

where the coefficients \({A}_{1},{A}_{2},{A}_{3},{A}_{4}\):

$$\begin{array}{c}\begin{array}{l}{A}_{1}={\sum }_{i=1}^{{N}_{{\text{in}}}}{\sum }_{j=1}^{{N}_{{\text{out}}}}{w}_{i, j}{\int }_{{\Omega }_{{\text{e}}}}\left\{2a\left[{\left({\upvarepsilon }_{{\text{in}}}^{i}\right)}_{2}{\left({\upvarepsilon }_{{\text{out}}}^{j}\right)}_{2}-{\left({\upvarepsilon }_{{\text{in}}}^{i}\right)}_{1}{\left({\upvarepsilon }_{{\text{out}}}^{j}\right)}_{1}\right]\right.\\ \left.-c\left[{\left({\upgamma }_{{\text{in}}}^{i}\right)}_{12}\left({\left({\upvarepsilon }_{{\text{out}}}^{j}\right)}_{1}+{\left({\upvarepsilon }_{{\text{out}}}^{j}\right)}_{2}\right)+{\left({\upgamma }_{{\text{out}}}^{j}\right)}_{12}\left({\left({\upvarepsilon }_{{\text{in}}}^{i}\right)}_{1}+{\left({\upvarepsilon }_{{\text{in}}}^{i}\right)}_{2}\right)\right]\right\}d{\Omega }_{{\text{e}}}\\ {A}_{2}={\sum }_{i=1}^{{N}_{{\text{in}}}}{\sum }_{j=1}^{{N}_{{\text{out}}}}{w}_{i, j}{\int }_{{\Omega }_{{\text{e}}}}\left\{2c\left[{\left({\upvarepsilon }_{{\text{in}}}^{i}\right)}_{2}{\left({\upvarepsilon }_{{\text{out}}}^{j}\right)}_{2}-{\left({\upvarepsilon }_{{\text{in}}}^{i}\right)}_{1}{\left({\upvarepsilon }_{{\text{out}}}^{j}\right)}_{1}\right]\right.\\ \left.+a\left[{\left({\upgamma }_{{\text{in}}}^{i}\right)}_{12}\left({\left({\upvarepsilon }_{{\text{out}}}^{j}\right)}_{1}+{\left({\upvarepsilon }_{{\text{out}}}^{j}\right)}_{2}\right)+{\left({\upgamma }_{{\text{out}}}^{j}\right)}_{12}\left({\left({\upvarepsilon }_{{\text{in}}}^{i}\right)}_{1}+{\left({\upvarepsilon }_{{\text{in}}}^{i}\right)}_{2}\right)\right]\right\}d{\Omega }_{{\text{e}}}\\ {A}_{3}={\sum }_{i=1}^{{N}_{{\text{in}}}}{\sum }_{j=1}^{{N}_{{\text{out}}}}{w}_{i, j}{\int }_{{\Omega }_{{\text{e}}}}\left\{-2d\left[{\left({\upgamma }_{{\text{in}}}^{i}\right)}_{12}\left({\left({\upvarepsilon }_{{\text{in}}}^{i}\right)}_{2}-{\left({\upvarepsilon }_{{\text{out}}}^{j}\right)}_{2}\right)\right.\right.\\ \left.+{\left({\upgamma }_{{\text{out}}}^{j}\right)}_{12}\left({\left({\upvarepsilon }_{{\text{in}}}^{i}\right)}_{1}-{\left({\upvarepsilon }_{{\text{out}}}^{j}\right)}_{1}\right)\right]+2b\left[{\left({\upgamma }_{{\text{in}}}^{i}\right)}_{12}{\left({\upgamma }_{{\text{out}}}^{j}\right)}_{12}\right.\\ \left.\left.-\left({\left({\upvarepsilon }_{{\text{in}}}^{i}\right)}_{1}{\left({\upvarepsilon }_{{\text{out}}}^{j}\right)}_{1}-{\left({\upvarepsilon }_{{\text{in}}}^{i}\right)}_{1}{\left({\upvarepsilon }_{{\text{out}}}^{j}\right)}_{2}-{\left({\upvarepsilon }_{{\text{in}}}^{i}\right)}_{2}{\left({\upvarepsilon }_{{\text{out}}}^{j}\right)}_{1}+{\left({\upvarepsilon }_{{\text{in}}}^{i}\right)}_{2}{\left({\upvarepsilon }_{{\text{out}}}^{j}\right)}_{2}\right)\right]\right\}d{\Omega }_{{\text{e}}}\\ {A}_{4}={\sum }_{i=1}^{{N}_{{\text{in}}}}{\sum }_{j=1}^{{N}_{{\text{out}}}}{w}_{i, j}{\int }_{{\Omega }_{{\text{e}}}}\left\{2b\left[{\left({\upgamma }_{{\text{in}}}^{i}\right)}_{12}\left({\left({\upvarepsilon }_{{\text{in}}}^{i}\right)}_{2}-{\left({\upvarepsilon }_{{\text{out}}}^{j}\right)}_{2}\right)\right.\right.\\ \left.+{\left({\upgamma }_{{\text{out}}}^{j}\right)}_{12}\left({\left({\upvarepsilon }_{{\text{in}}}^{i}\right)}_{1}-{\left({\upvarepsilon }_{{\text{out}}}^{j}\right)}_{1}\right)\right]+2d\left[{\left({\upgamma }_{{\text{in}}}^{i}\right)}_{12}{\left({\upgamma }_{{\text{out}}}^{j}\right)}_{12}\right.\\ \left.\left.-\left({\left({\upvarepsilon }_{{\text{in}}}^{i}\right)}_{1}{\left({\upvarepsilon }_{{\text{out}}}^{j}\right)}_{1}-{\left({\upvarepsilon }_{{\text{in}}}^{i}\right)}_{1}{\left({\upvarepsilon }_{{\text{out}}}^{j}\right)}_{2}-{\left({\upvarepsilon }_{{\text{in}}}^{i}\right)}_{2}{\left({\upvarepsilon }_{{\text{out}}}^{j}\right)}_{1}+{\left({\upvarepsilon }_{{\text{in}}}^{i}\right)}_{2}{\left({\upvarepsilon }_{{\text{out}}}^{j}\right)}_{2}\right)\right]\right\}d{\Omega }_{{\text{e}}}\\ \end{array} \end{array}$$
(16)

and the material parameters of \({\mathbf{D}}_{e}^{0}\) as follows:

$$\begin{array}{c}\begin{array}{ll}a=\left({D}_{11}-{D}_{22}\right)/2& b=({D}_{11}-2{D}_{12}+{D}_{22}-4{D}_{66})/4\\ c={D}_{16}+{D}_{26}& d={D}_{16}-{D}_{26}\end{array} \end{array}$$
(17)

To calculate the roots of Eq. (15), one can rewrite the optimality condition Eq. (15) using the trigonometric relations:

$$\left({A}_{4}-{A}_{2}\right){{\text{tan}}}^{4}\left({\theta }_{e}\right)+{(2A}_{1}-{4A}_{3}){{\text{tan}}}^{3}\left({\theta }_{e}\right)-6{A}_{4}{{\text{tan}}}^{2}\left({\theta }_{e}\right)+\left({2A}_{1}+{4A}_{3}\right)tan\left({\theta }_{e}\right)+\left({A}_{2}+{A}_{4}\right)=0$$
(18)

As Eq. (18) is a 4th-order polynomial of \({\text{tan}}\left({\theta }_{e}\right)\), up to 4 real roots of \({\text{tan}}\left({\theta }_{e}\right)\) can be solved and can be inverted to determine all related roots of \({\theta }_{e}\)\([-\pi ,\pi\)]. All these \({\theta }_{e}\) roots and \({\theta }_{e}=0,\pm \frac{\pi }{2}\) must be considered in finding the optimal \({\overline{\theta }}_{e}\) that yields minimum \({\Pi }_{e}\). An alternative is to feed the real roots of \({\text{tan}}\left({\theta }_{e}\right)\) and \({\theta }_{e}=0,\pm \frac{\pi }{2}\) into Eq. (4b) using trigonometry to find optimal \({\overline{\theta }}_{e}\). It is worth noting that for orthotropic material, due to symmetry, only the roots of \({\theta }_{e}\)\((-\frac{\pi }{2},\frac{\pi }{2}\)) and \({\theta }_{e}=0,\frac{\pi }{2}\) need to be considered in finding optimal \({\overline{\theta }}_{e}\).

With the proposed method, the optimal material orientations of elements can be directly and analytically calculated, using material properties and strain vectors from structural analysis. In practice, the coefficients \({A}_{1},{A}_{2},{A}_{3},{A}_{4}\) in integral forms (Eq. (16)) can be evaluated using the Gaussian quadrature for simplicity. For example, if 1-point Gaussian quadrature is employed, \({A}_{1}\) to \({A}_{4}\) can be calculated using the elemental strain vectors (at element centers) or the 2 by 2 Gaussian points commonly used in QUAD4 elements from FEM can also be applied for higher accuracy.

4 Algorithm and implementation

The MDDIMO compliant mechanism problem, as formulated in Sect. 2, is numerically studied via an extended MIST method, as the MIST (Tong and Lin 2011) method has two key features that can address the challenges in the design-dependent loading problems: (1) no explicit sensitivity analysis, which can avoid the gradient calculations for design-dependent loads and (2) ersatz material model (Wang et al. 2003; Allaire et al. 2004) and implicit design variables \({x}_{e}\), as shown in Fig. 2, which can contribute to tracking multiple interfaces.

Although MIST is a method newly born in the last decade, it has already been studied to perform topology optimization in many 2D or 3D design problems, such as compliant morphing structures (Vasista and Tong 2012), composite structures (Lu and Tong 2022a), vibrating structures (Luo and Tong 2015), and nonlinear structures (Luo and Tong 2016).

4.1 MIST formulation

Before introducing the MIST formulation to the MDDIMO compliant mechanism problem, the formulated problem in Eq. (2) is rewritten using FEM discretization as Eq. (19). Please note the objective function J (Eq. (2a)) is replaced by \(\overline{J }\) (Eq. (7)) for hinge-free designs.

$$\begin{array}{c}min: \overline{J }={\sum }_{i=1}^{{N}_{{\text{in}}}}{\sum }_{j=1}^{{N}_{{\text{out}}}}(-{w}_{i, j}{\int }_{\Omega }{{{\varvec{\upsigma}}}_{{\text{in}}}^{i}}^{{\text{T}}}{{\varvec{\upvarepsilon}}}_{{\text{out}}}^{j}d\Omega \\ +{\alpha }_{{\text{in}}}^{i}{\int }_{\Omega }{{{\varvec{\upsigma}}}_{{\text{in}}}^{i}}^{{\text{T}}}{{\varvec{\upvarepsilon}}}_{{\text{in}}}^{i}d\Omega +{\alpha }_{{\text{out}}}^{j}{\int }_{\Omega }{{{\varvec{\upsigma}}}_{{\text{out}}}^{j}}^{{\text{T}}}{{\varvec{\upvarepsilon}}}_{{\text{out}}}^{j}d\Omega ) \end{array}$$
(19a)
$$\begin{array}{c}s.t.: \left\{\begin{array}{l}\left(\sum_{e=1}^{{N}_{e}}{\int }_{{\Omega }_{{\text{e}}}} {\mathbf{B}}^{{\text{T}}}{\mathbf{D}}_{e}\mathbf{B}d{\Omega }_{{\text{e}}}\right){\mathbf{U}}_{{\text{in}}}^{i}={\mathbf{F}}_{{\text{in}}}^{i}\\ \left(\sum_{e=1}^{{N}_{e}}{\int }_{{\Omega }_{{\text{e}}}} {\mathbf{B}}^{{\text{T}}}{\mathbf{D}}_{e}\mathbf{B}d{\Omega }_{{\text{e}}}\right){\mathbf{U}}_{{\text{out}}}^{j}={\mathbf{F}}_{{\text{out}}}^{j}\\ \sum_{e=1}^{{N}_{e}}{x}_{e1}\left|{\Omega }_{{\text{e}}}\right|\le {V}_{f1}V {\text{and}} \sum_{e=1}^{{N}_{e}}{x}_{e2}\left|{\Omega }_{{\text{e}}}\right|\le {V}_{f2}V\\ 0\le {x}_{e1}\le 1\mathrm{ and }\,0\le {x}_{e2}\le 1\\ -\pi \le {\theta }_{e}\le \pi \end{array}\right. \end{array}$$
(19b–f)

Using the formulation in Eq. (19), the proposed MDDIMO problem can be implemented using an extended MIST method. The solution procedures of the basic MIST algorithm include initialization, structural analysis (FEA), update of topology, and convergence check, and the major extensions of the present method compared to the basic MIST are as follows: (1) material orientation optimization of MDDIMO compliant mechanisms; (2) bi-material topology optimization; and (3) tracking multiple fluid–structure interfaces.

The following sections will introduce the key components and new steps of the proposed method and demonstrate the iterative procedures of numerical implementation.

4.2 Response function

The MIST (Tong and Lin 2011) method exploits a response function that reflects the nodal physical performances in the design domain (FE mesh) to update structural topologies, instead of performing sensitivity analysis. The response function is selected based on the specific objective function. The objective function should be expressed in an integral form over the design domain, and the response function can be derived based on the integrand.

In the present compliant mechanism problem, the objective function \(\overline{J }\) is defined in an integral form as Eq. (19a). Accordingly, the response function \(\Phi\) can be selected as the integrand as follows:

$$\begin{array}{c}\Phi ={\sum }_{i=1}^{{N}_{{\text{in}}}}{\sum }_{j=1}^{{N}_{{\text{out}}}}(-{w}_{i, j}{\Phi }_{{{\text{MSE}}}_{i, j}}+{\alpha }_{{\text{in}}}^{i}{\Phi }_{{{\text{C}}}_{{\text{in}}}^{i}}+{\alpha }_{{\text{out}}}^{j}{\Phi }_{{{\text{C}}}_{{\text{out}}}^{j}}) \end{array}$$
(20)

where

$$\begin{array}{c}{\Phi }_{{{\text{MSE}}}_{i, j}}={{{\varvec{\upsigma}}}_{{\text{in}}}^{i}}^{{\text{T}}}{{\varvec{\upvarepsilon}}}_{{\text{out}}}^{j} \end{array}$$
(21)
$$\begin{array}{c}{\Phi }_{{{\text{C}}}_{{\text{in}}}^{i}}={{{\varvec{\upsigma}}}_{{\text{in}}}^{i}}^{{\text{T}}}{{\varvec{\upvarepsilon}}}_{{\text{in}}}^{i} \end{array}$$
(22)
$$\begin{array}{c}{\Phi }_{{{\text{C}}}_{{\text{out}}}^{j}}={{{\varvec{\upsigma}}}_{{\text{out}}}^{j}}^{{\text{T}}}{{\varvec{\upvarepsilon}}}_{{\text{out}}}^{j} \end{array}$$
(23)

When design-dependent loadings are involved, \({\alpha }_{{\text{in}}}^{i}>0\) and \({\alpha }_{{\text{out}}}^{j}>0\) should be selected, to eliminate thin hinges and prevent topological discontinuity. However, \({\alpha }_{{\text{in}}}^{i}\) and \({\alpha }_{{\text{out}}}^{j}\) should be chosen as sufficiently large but as small as possible to minimize \(-{u}_{{\text{out}}}\). Thus, \({\sum }_{i=1}^{{N}_{{\text{in}}}}{\sum }_{j=1}^{{N}_{{\text{out}}}}\left({\alpha }_{{\text{in}}}^{i}+{\alpha }_{{\text{out}}}^{j}\right)=0.3\) to \(0.4\) is recommended.

In practice, the structural analysis can be conducted via commercial software, and the nodal stress and strain vectors (\({{\varvec{\upvarepsilon}}}_{{\text{in}}}^{i}\), \({{\varvec{\upvarepsilon}}}_{{\text{out}}}^{j}\), \({{\varvec{\upsigma}}}_{{\text{in}}}^{i}\), and \({{\varvec{\upsigma}}}_{{\text{out}}}^{j}\)) can be directly extracted from FEA results. Then, one can calculate the response function with those vectors and Eqs. (20)–(23).

It should be noted that although the sensitivity of the nodal load with respect to the design variables is not needed for the MIST method and also the SIMP method with the hydrostatic incompressible fluid assumption (Sigmund and Clausen 2007), it may play an essential role in other methods. The readers can refer to Lee and Martins (2012) and Kumar et al. (2020), for the relevant sensitivity analysis.

4.3 Fluid–structure interfaces

This work only considers the structure subject to fluidic pressure loads without modeling the fluid field for simplicity. Moreover, in order to simulate compliant mechanisms under pneumatic or hydraulic actuation, fluidic pressures are directly applied to the interface boundaries, as shown in Fig. 3a. The interface elements can be converted to a homogenized one with a single elasticity matrix \({\mathbf{D}}_{e}\) using the material model as defined in Sect. 2.2, while the pressure load on the element interface boundary \({\Gamma }_{e}\) can be transferred to work equivalent nodal forces. For the details of the work equivalent nodal forces, the readers can refer to Lu and Tong (2021b).

Fig. 3
figure 3

Fluid–structure interfaces: a topology and b design variable contour, where gray, yellow, white, and red color represent solid, interface, void, and fixed fluid elements

The present MDDIMO problem may involve multiple fluid–structure interfaces. The interface element and corresponding loadings can be modeled using the aforementioned method, once all the fluid–structure interfaces are identified. Therefore, we develop a novel element-based searching scheme for multiple-interface tracking. Similar to the fluid flooding method (Chen and Kikuchi 2001; Picelli et al. 2019), a fixed fluid region (the red areas in Fig. 3) should be predefined, and the density (or area ratio) design variables should be checked. However, the fluid flooding method requires continuously checking the design variables until all interface elements are found, which may be computational costly for multiple interfaces. In the proposed method, the elements in the design domain are classified to three subsets: Solid, Void, and IM (intermediate), according to their area ratio design variables \({x}_{e}\): \({x}_{e}=1\) for Solid, \({x}_{e}\le {x}_{min}\) for Void, and \({x}_{min}<{x}_{e}<1\) for IM, respectively. As is depicted in Fig. 3b, the subsets Solid, Void, and IM are indicated using the color gray, white, and yellow. The following procedures of the interface searching are all based on set operations using the three sets and the predefined fixed fluid regions, where the \({x}_{e}\) checks in the fluid flooding are avoided and computational costs are saved.

Step 1::

Preparation

Before searching for the interfaces, all the fluid elements connected to the fixed fluid regions (including themselves) should be identified. We use the notation \({{\text{Fluid}}}_{{\text{if}}}\) to represent the set of fluid elements in the search of the ifth fluid–structure interface (if = 1 or 2 in the example in Figs. 3 and 4), and the symbol \({{\text{FFluid}}}_{{\text{if}}}\) for the set of fluid elements in the ifth fixed fluid region. The set \({{\text{Fluid}}}_{{\text{if}}}\) can be found by following the set operations below. This step is illustrated in Figs. 3b and 4a.

  1. (1)

    \({{\text{Fluid}}}_{{\text{if}}}={{\text{FFluid}}}_{{\text{if}}}\)

  2. (2)

    \({S}_{{\text{check}}}={\text{Void}}\cap {\text{Adj}}({{\text{Fluid}}}_{{\text{if}}})\)

  3. (3)

    \({{\text{Fluid}}}_{{\text{if}}}={{\text{Fluid}}}_{{\text{if}}}\cup {S}_{{\text{check}}}\)

  4. (4)

    Check if \({S}_{{\text{check}}}=\varnothing\): no, go back to 2); yes, terminate and output \({{\text{Fluid}}}_{{\text{if}}}\).

Fig. 4
figure 4

Element-based searching scheme for multiple-interface tracking: a preparation (iteration 0), b iteration 1, c iteration 2, and d iteration 3. Gray, white, red, yellow, and blue color represent solid, void, fluid, solid–void interface, and fluid–structure interface elements; red and black boxes indicate \({S}_{{{\text{if}}}_{k}}\) and \({S}_{{\text{check}}}\)

where \({S}_{{\text{check}}}\) is the set being checked in the current iteration and function Adj() outputs the set of all adjacent elements of all elements in the input sets.

Step 2::

Initialization

In the search scheme, the set of interface elements is denoted as \({{\text{Interface}}}_{{{\text{if}}}_{k}}\), where the subscript if and k represent the number of interfaces and the iteration number. We also employ a set \({S}_{{{\text{if}}}_{k}}\) to indicate where the searches are up to. These two sets are initialized as follows: \({{\text{Interface}}}_{{{\text{if}}}_{0}}=\varnothing\) and \({S}_{{{\text{if}}}_{0}}={{\text{Fluid}}}_{{\text{if}}}\).

Step 3::

Update interfaces

From this step, the search initiates in an iterative manner. One can first check the new interface elements from the previous \({S}_{{{\text{if}}}_{k}}\) using the adjacent elements: \({S}_{{\text{check}}}={\text{IM}}\cap {\text{Adj}}({S}_{{{\text{if}}}_{k}})\), then, update the set of interface elements: \({{\text{Interface}}}_{{{\text{if}}}_{k+1}}={{\text{Interface}}}_{{{\text{if}}}_{k}}\cup {S}_{{\text{check}}}\), and record where the search is up to \({S}_{{{\text{if}}}_{k+1}}={S}_{{{\text{if}}}_{k}}\cup {{\text{Interface}}}_{{{\text{if}}}_{k}}\).

Step 4::

Stopping criterion

Check if \({S}_{{\text{check}}}=\varnothing\). If yes, all new adjacent elements \({\text{Adj}}({S}_{{{\text{if}}}_{k}})\) are solid, which means no new interface element can be found. The search for all interfaces is completed. If no, go back to Step 2 and repeat.

Figures 3 and 4 show an example searching procedure. The topology (Fig. 3a) is first classified into three subsets by \({x}_{e}\) criteria (Fig. 3b). Subsequently, the fluid element sets \({{\text{Fluid}}}_{{\text{if}}}\) are found following Step 1 (Fig. 4a). Figure 4b–d demonstrates three iterations (\(k=1\sim 3)\), where the sets \({S}_{{\text{check}}}\) and \({S}_{{{\text{if}}}_{k}}\) are indicated by black and red boxes.

With this searching scheme, multiple fluid–structure interfaces can be identified and distinguished from the solid–void interfaces, and it could be applied to topology optimization methods with ersatz material model, such as the level-set or MIST method, for the fluid pressurized structures or pressure-actuated compliant mechanisms, e.g., underwater structures, morphing structures (Vasista and Tong 2012), or soft grippers (Lu and Tong 2022b).

4.4 Implementation

The basic algorithm and implementation of MIST can be found in Tong and Lin (2011) and Vasista and Tong (2014), and this section focuses on the present extension to the original MIST. The solution procedure for the proposed algorithm can be given as follows and as illustrated in Fig. 5.

Fig. 5
figure 5

Flowchart of the present extended MIST algorithm for MDDIMO compliant mechanism problems

Step 1::

Initialization \(\left(k=0\right)\)

  • Design domains and design variables: define fixed-grid FE meshes and topological and orientation design variables \({x}_{e1}^{0}, {x}_{e2}^{0}, {\theta }_{e}^{0} (e={1,2},\dots {N}_{e})\).

  • FEA parameters: define load and boundary conditions for structural analysis, including load conditions (e.g., initial equivalent nodal force \({({\mathbf{F}}_{{\text{in}}}^{i})}^{0}=\sum_{e=1}^{{N}_{e}}{({\mathbf{F}}_{{\text{in}}}^{i})}_{e}^{0}\) if design-dependent pressure is involved for the ith input) and material properties \({\mathbf{D}}_{1}\) and \({\mathbf{D}}_{2}\).

  • Solver parameters: define weighting factors \({w}_{i, j}\), \({\alpha }_{{\text{in}}}^{i}\), and \({\alpha }_{{\text{out}}}^{j}\); \({k}_{\Phi }\), initial dynamic move limit \({k}_{{\text{mv}}}^{0}\); material penalty factors \({p}_{1}\) and \({p}_{2}\); prescribed volume fraction constraints \({V}_{f1}\) and \({V}_{f2}\), filter radius \({r}_{{\text{min}}}\) and \({r}_{min}^{\theta }\); and stiffness of artificial springs \({k}_{{\text{out}}}\); and \({x}_{{\text{min}}}\). It is worth noting that, for both input and output load cases, artificial springs of stiffness \({k}_{in}^{i}\) and \({k}_{{\text{out}}}^{j}\) should be attached to the input and output ports. However, because it is challenging to attach artificial springs to input ports on evolving pressurized surfaces, artificial springs are not added for the input loads that are design-dependent pressures. Thus, relatively large \({k}_{in}^{i}\) and \({k}_{{\text{out}}}^{j}\) (compared to conventional SISO and MIMO compliant mechanism design cases) are employed for the output ports and concentrated force input loads in the present study.

Step 2::

Structural analysis ( \(k\ge 1\))

  • Calculate material properties \({\mathbf{D}}_{e}\) using Eqs. (4) and (5).

  • Conduct FEA by Eqs. (19b) and (19c) for virtual and real load cases using \({\mathbf{D}}_{e}\).

  • Output nodal strains, stresses (\({{\varvec{\upvarepsilon}}}_{{\text{in}}}^{i}\), \({{\varvec{\upvarepsilon}}}_{{\text{out}}}^{j}\), \({{\varvec{\upsigma}}}_{{\text{in}}}^{i}\), and \({{\varvec{\upsigma}}}_{{\text{out}}}^{j}\)), and displacements \({u}_{{\text{out}},j}\).

Step 3::

Step 3: Topology update

  • Constructing response function \({\overline{\Phi } }^{k}\): calculate the initial nodal \({\Phi }^{k}\) using Eq. (20)–(24) and nodal stresses and strains from Step 2. Considering the possible fluctuations and convergence difficulties, the response function is also re-constructed by the combined energy (Eq. (20)) in the current (\(k, k\ge 2\)) and previous (\(k-1\)) iterations as in Eq. (24). Next, the re-constructed response function \({\overline{\Phi } }^{k}\) is filtered by Eq. (25) and normalized between \([-{1,1}]\).

    $$\begin{array}{c}{\overline{\Phi } }^{k}={\Phi }^{k} (k=1)\\ {\overline{\Phi } }^{k}=(1-{k}_{\Phi }){\overline{\Phi } }^{k-1}+{k}_{\Phi } {\Phi }^{k} \left(k\ge 2\right)\end{array}$$
    (24)

    where \(0<{k}_{\Phi }\le 1\) is a relaxation factor.

    $$\begin{array}{c}{\overline{\Phi } }_{n}=\frac{\sum_{i=1}^{{N}_{i}}{w}_{i}{\Phi }_{i}}{\sum_{i=1}^{{N}_{i}}{w}_{i}} \end{array}$$
    (25)

    where \({w}_{i}=\left\{\begin{array}{cc}1-\frac{{r}_{ni}}{{r}_{min}},& \mathrm{for }{r}_{ni}<{r}_{min}\\ 0,& \mathrm{for }{r}_{ni}\ge {r}_{min}\end{array}\right.\); \({r}_{ni}\) is the distance between nodes n and i; and \({N}_{i}\) is the number of nodes for \({r}_{ni}<{r}_{min}\).

    • Determining the threshold levels: calculate \({t}_{1}^{k}\) and \({t}_{2}^{k}\) for the prescribed volume constraint \({V}_{f1}\) and \({V}_{f2}\) via a bisection method, as detailed in Tong and Lin 2011) and Vasista and Tong (2014).

    • Update topology \({\Omega }_{1}^{{\text{k}}}\) and \({\Omega }_{2}^{{\text{k}}}\): by intersecting \({\overline{\Phi } }^{k}\) and \({t}_{1}^{k}\) or \({t}_{2}^{k}\), the new topologies of \({\Omega }_{1}^{{\text{k}}}\) and \({\Omega }_{2}^{{\text{k}}}\) can be generated, and the design variables \({\overline{x} }_{e1}^{k}\) and \({\overline{x} }_{e2}^{k}\) can be calculated.

    • The regions where the response functions are above the threshold define the new topology \({\Omega }_{1}^{{\text{k}}}\) or \({\Omega }_{2}^{{\text{k}}}\). Similarly, design variables can be calculated using the projected area of \({\overline{\Phi } }^{k}\ge {t}^{k}\) by \({A}_{e{\text{pj}}}/{A}_{e}\), where \({A}_{e{\text{pj}}}\) and \({A}_{e}\) denote the projected and total area of the eth element.

    • Calculate \({J}^{k}\) using Eq. (19a) and \({\Delta J}^{k}={J}^{k}-{J}^{k-1}\) for \(k\ge 2\);

Step 4::

Update fluid–structure interfaces.

  • Track pressurized fluid–structure interfaces in the kth topology (\({{\text{Interface}}}_{{\text{if}}}\)) as demonstrated in Sect. 4.3.

  • Update equivalent nodal forces \({({\mathbf{F}}_{{\text{in}}}^{i})}^{k}=\sum_{e=1}^{{N}_{e}}{({\mathbf{F}}_{{\text{in}}}^{i})}_{e}^{k}\) for the ith input load case, as detailed in Lu and Tong (2021b).

Step 5::

 Updating design variables.

  • Update \({x}_{e1}^{k}\) or \({x}_{e2}^{k}\), respectively, using:

    $$\begin{array}{c}{x}_{e}^{k}={x}_{e}^{k-1}+{k}_{mv}\left({\overline{x} }_{e}^{k}-{x}_{e}^{k-1}\right) \end{array}$$
    (26a)
    $$\begin{array}{c}{x}_{e}^{k}=\left\{\begin{array}{cc}{x}_{e}^{k},& \mathrm{for }{x}_{e}^{k}\ge {x}_{min}\\ 0,& \mathrm{for }{x}_{e}^{k}<{x}_{min}\end{array}\right. \end{array}$$
    (26b)

    where \({k}_{{\text{mv}}}\) is the dynamic move limit, which is halved when an oscillation of objective function occurs, until \({k}_{{\text{mv}}}\) reaches the \(1/{2}^{4}\) of the initial \({k}_{{\text{mv}}}^{0}\). In addition, the low-density elements (\({\overline{x} }_{e}^{k}<{x}_{{\text{min}}}={10}^{-3}\)) are removed from FEA by Eq. (26b).

Step 6: Material orientation optimization:

The material orientation \({\overline{{\varvec{\theta}}} }_{e}^{k}\) can be calculated using the mutual strain-based method by Eqs. (16)–(18). In order to implement the mutual strain energy density-based method, the elemental strain vectors from the structural analysis should be extracted. Then, the material orientation \({{\varvec{\theta}}}_{e}^{k}\) will be updated by

$$\begin{array}{c}{{\varvec{\theta}}}_{e}^{k}={{\varvec{\theta}}}_{e}^{k-1}+{k}_{mv}\left({\overline{{\varvec{\theta}}} }_{e}^{k}-{{\varvec{\theta}}}_{e}^{k-1}\right)\end{array}$$
(27)

It is worth noting that the element fiber orientations could be regularized to avoid significant changes in orientations between adjacent elements, as smoother fiber pathways are more feasible and preferable in manufacturing. For example, a fiber regularization filter similar to Ding and Xu (2021) and Lu and Tong (2022a) is applied in this work, by which the fiber orientations within a radius are averaged via Eq. (25) with the filter radius \({r}_{min}^{\theta }\), in order to smoothen the fiber pathway and improve fiber continuity. Moreover, additional orientation constraints can also be added to the present method if necessary, which will compromise the objective function.

Step 7: Termination check:
  • Calculate the change in the response function:

    $$\begin{array}{c}\Delta {\Phi }^{k}=\frac{1}{{N}_{n}}\left(\sum_{n=1}^{{N}_{n}}\left|{\Phi }^{k}_{n}-{\Phi }^{k-1}_{n}\right|\right) (k\ge 2)\end{array}$$
    (28)

    where \({n}\) and \({N}_{n}\) are node number and the total number of nodes;

  • If \(\Delta {\Phi }^{k}>\varepsilon\) or k < designated iteration number, update k as k + 1 and go to step 2 and repeat steps 2-6, otherwise terminate iteration.

It should be noted although the present algorithm is developed for concurrent topology and orientation optimization of MDDIMO complaint mechanisms, it can be reduced to solve several alternative problems: e.g., (1) concurrent optimization of MIMO complaint mechanisms, by removing Step 4; (2) concurrent optimization of multiple design-dependent pressure-loaded minimum compliance problem, by setting \({w}_{i, j}=0\) and \({\alpha }_{{\text{out}}}^{j}=0\); and (3) topology optimization of MDDIMO complaint mechanisms, by removing Step 6.

It is worth noting that numerical oscillations and convergence difficulties may occur when the algorithm shown in Fig. 5 is used to simultaneously determining the fluid–structure interfaces for multiple design-dependent loads and design variables \({x}_{e}\) and \({\theta }_{e}\) of multiple materials. Thus, for this complex scenario, we propose an alternative sequential algorithm as shown in Fig. 6. This algorithm consists of one outer loop and two inner loops. In stage 1 inner loop, design variable \({x}_{e1}\) and the interfaces for multiple design-dependent loads are determined simultaneously; and in stage 2 inner loop, design variable \({x}_{e2}\) and \({\theta }_{e}\) are optimized simultaneously with \({x}_{e1}\) and interface boundaries being fixed. In the outer loop, these two inner loops are repeated until reaching convergence using Eq. (28).

Fig. 6
figure 6

Flowchart of an alternative sequential MIST algorithm for MDDIMO compliant mechanism problems

5 Numerical examples

In this section, case studies of concurrent topology and orientation optimization for compliant mechanisms are presented and discussed. A benchmark example that considers a classical SISO compliant inverter is first demonstrated. Then, numerical examples are presented for MDDIMO design cases to validate the present optimization method and algorithm. All numerical examples are computed using an Intel(R) Core(TM) i7-7700 CPU @ 3.60 GHz and 32-GB RAM PC.

In all the present computations, the solver parameters of MIST are chosen as follows. The material distributions are initialized as evenly distributed in the design domain (\({x}_{e1}^{0}={V}_{f1}\) and \({x}_{e2}^{0}={V}_{f2}\)), with material penalty factors \({p}_{1}=3\) and \({p}_{2}=3\); and fiber orientation distributions are initialized as all fibers aligned horizontally\({\theta }_{e}^{0}=0\). The initial dynamic move limit \({k}_{{\text{mv}}}^{0}=0.4\); weighting factor\({k}_{\Phi }=0.5\); \({x}_{{\text{min}}}={10}^{-3}\); and filter radius for topological design variables: \({r}_{{\text{min}}}=3\) times element size and for orientation design variables: \({r}_{min}^{\theta }=2\) times element size. In material orientation optimization, Eq. (16) is evaluated using 1-point Gaussian quadrature.

5.1 Fiber-reinforced composite inverter design

In this benchmark example, the design domain and loading and supporting conditions are depicted in Fig. 7a. This design case involves one input force: \({{\text{F}}}_{{\text{in}}}^{1}={10}^{-2}\) with \({k}_{{\text{in}}}^{1}={10}^{-1}\), and one output force: \({{\text{F}}}_{{\text{out}}}^{1}={10}^{-4}\) with \({k}_{{\text{out}}}^{1}={10}^{-3}\), which forms a SISO compliant mechanism. The desired structure should generate a displacement output in the reverse direction of the input force, and the objective function is defined as max: (\(-{u}_{{\text{out}}}\)). The dimensions and meshing of this example are also included in Fig. 7a.

Fig. 7
figure 7

The compliant inverter design case: a design domain and optimal results for the concurrent design of b one-material topology and fiber orientations; c bi-material topology and fiber orientations; d bi-material topology with stress criteria and fiber orientations; and e optimal result for topology design only with isotropic material

As this is a SISO problem, the weighting factor \({w}_{1, 1}\) = 1 can be chosen and \({\alpha }_{{\text{in}}}^{1}=0\), \({\alpha }_{{\text{out}}}^{1}=0\) as no design-dependent load is involved. First, we consider the concurrent optimization of topology and orientation for one composite material with \({E}_{f}=1;{\nu }_{f}=0.22;{G}_{f}={E}_{f}/2\left(1+{\nu }_{f}\right)\); and \({E}_{m}=1/15;{\nu }_{m}=0.38;{G}_{m}={E}_{m}/2\left(1+{\nu }_{m}\right)\), where \(E\), \(G,\) and \(\nu\) denote the Young’s modulus, shear modulus, and Poisson’s ratio, respectively; subscript \(f\) and \(m\) refer to fiber and matrix material. Therefore, the elastic constitutive matrix of material 1 (blue color in Fig. 7) is given as follows:

$$\begin{array}{c}{\mathbf{D}}_{1}=\left[\begin{array}{ccc}\frac{{E}_{1}}{1-{\nu }_{12}{\nu }_{21}}& \frac{{E}_{1}{\nu }_{21}}{1-{\nu }_{12}{\nu }_{21}}& 0\\ \frac{{E}_{1}{\nu }_{21}}{1-{\nu }_{12}{\nu }_{21}}& \frac{{E}_{2}}{1-{\nu }_{12}{\nu }_{21}}& 0\\ 0& 0& {G}_{12}\end{array}\right]\end{array}$$
(29)

and the material properties in fiber and transverse directions are calculated as follows:

$$\begin{array}{c}\begin{array}{l}{E}_{1}={E}_{f}{V}_{fib}+{E}_{m}\left(1-{V}_{fib}\right)\\ {E}_{2}=\frac{{E}_{f}{E}_{m}}{{E}_{m}{V}_{fib}+{E}_{f}\left(1-{V}_{fib}\right)}\\ {G}_{12}=\frac{{G}_{f}{G}_{m}}{{G}_{m}{V}_{fib}+{G}_{f}\left(1-{V}_{fib}\right)}\\ {\nu }_{12}={\nu }_{f}{V}_{fib}+{\nu }_{m}\left(1-{V}_{fib}\right)\\ {\nu }_{21}={\nu }_{12}\frac{{E}_{2}}{{E}_{1}} \end{array} \end{array}$$
(30)

where \({V}_{fib}=0.4\) is a given fiber volume ratio.

The optimal results of the one-material case with prescribed volume fraction constraints \({V}_{f1}=0.3\) is shown in Fig. 7b. The optimized objective function \(-{u}_{{\text{out}}}=0.117\) and maximum von Mises stress \({\sigma }_{{\text{VM}}}=0.103\). For the purpose of comparison, the optimal structure for topology optimization with isotropic material only is depicted in Fig. 7e, in which the matrix material is selected (\({E}_{m}=1/15;{\nu }_{m}=0.38\)). The optimized output displacement is \(-{u}_{{\text{out}}}=0.0455\), which reveals by introducing composite material and spatially varying fiber orientations, \(-{u}_{{\text{out}}}\) can be improved by 157%. It is observed that fibers are aligned following the axial directions of truss-like structural members. The main reason could be the fiber pathway follows the path of force and displacement transmissions (e.g., element principal stress/strain directions).

Next, we consider the concurrent optimization of orientations and bi-material topology, with material 2: \(E=1, \upsilon =0.3\) (green color in Fig. 7). The prescribed volume fraction of material 1 and 2 is 0.225 and 0.075, respectively, as demonstrated in Fig. 7c. The objective function (\(-{u}_{{\text{out}}}\) = 0.168) is increased by 43.6% compared to the one-material case (Fig. 7b), and maximum \({\sigma }_{{\text{VM}}}=0.167\). Since the output displacement is significantly increased, the maximum stress level also rises. Hence, we propose an alternative approach to introduce the second material, in which the mutual energy response function (Eqs. (20)–(23)) can be replaced by von Mises stress as follows:

$$\begin{array}{c}\Phi ={\sigma }_{{\text{VM}}} \end{array}$$
(31)

With Eq. (31) as the response function for material 2 and Eqs. (20)–(23) for material 1, the design case in Fig. 7c is revisited, and the optimal results are depicted in Fig. 7d. In this case, \(-{u}_{{\text{out}}}=0.146\) is smaller than the bi-material case using mutual energy (0.168), but is 24.8% larger than the one-material case (\(0.117\)), while the maximum \({\sigma }_{{\text{VM}}}=0.105\) is only 1.9% higher than the one-material case (\(0.103\)).

The convergence histories of the three cases are shown in Fig. 8, in which the convergence is achieved before 100 iterations for all three cases. The total computational times for 100 iterations of Fig. 7b–d are 1069.41, 1182.87, and 1162.60 s, respectively. This example benchmarks the effectiveness of the present optimization method in the concurrent optimization of fiber orientation and bi-material topology. In addition, an approach to maintain a relatively low maximum stress level for the bi-material topology optimization of compliant mechanisms is proposed.

Fig. 8
figure 8

Histories of objective functions for the compliant inverter design case, where the red, green, and blue curves correspond to Fig. 7b–d

This example also reveals that multi-material and material orientations can change the optimal designs and increase the output displacements. The possible cause is that the anisotropy and heterogeneity generated by multiple materials and varying fiber orientations result in greater freedoms of displacement and force transmissions.

5.2 MDDIMO inverter design: one-material

Next, we consider the MDDIMO design problem formulated in Eqs. (2) and (19). As shown in Fig. 9a, two design-dependent pressure loadings are involved: (\(i=1\)) a positive \({P}_{1}\) at the bottom and (\(i=2\)) a negative \({P}_{2}\) at the left. In this problem, two design cases: (1) \({P}_{1}=1\, {\text{MPa}}\) and \({P}_{2}=-1\, {\text{MPa}}\) and (2) \({P}_{1}=1\, {\text{MPa}}\) and \({P}_{2}=-0.5\, {\text{MPa}}\) are studied. For the output load case, only one output port (\(j=1\)) is considered, with \({{\text{F}}}_{{\text{out}}}^{1}=1N\) and \({k}_{{\text{out}}}^{1}=10 \, {\text{N/mm}}\). The desired structure of this design problem is a pressure-actuated inverter with maximum reverse displacement \(-{u}_{{\text{out}}}\).

Fig. 9
figure 9

The MDDIMO inverter design case with one material: a design domain; optimal topology subject to b \({P}_{1}\) = 1 MPa and \({P}_{2}\) = − 1 MPa; and c \({P}_{1}\) = 1 MPa and \({P}_{2}\) = − 0.5 MPa; and d fluid–structure interfaces of b

In this example, only an isotropic material 1 (design variables \({x}_{e1}^{k}\)) is considered, while multi-material topology and orientation optimization will be studied in example Sect. 5.3. It should be noted that identical boundary (symmetry and supporting) and loading conditions and dimensions and meshing of the design domain are applied to both examples Sects. 5.2 and 5.3. The weighting factors for the response function are also identical for both examples: \({w}_{1, 1}\) = 0.3, \({w}_{2, 1}=0.3\), \({\alpha }_{{\text{in}}}^{1}=0.125\), \({\alpha }_{{\text{in}}}^{2}=0.125\), and \({\alpha }_{{\text{out}}}^{1}=0.15\); and the prescribed volume fraction of material 1 is \({V}_{f1}=0.25\).

The isotropic material 1 has \(E=100\, {\text{MPa}}, \upsilon =0.3\), and the optimized topology of design case (1) is depicted in Fig. 9b with \(-{u}_{{\text{out}}}\) = 33.32 mm and case (2) in Fig. 9c with \(-{u}_{{\text{out}}}\) = 15.47 mm, respectively. The different \({P}_{2}\) (input load case \(i=2\)) notably changes the corresponding fluid–structure interface boundaries (see the top-left corner of Fig. 9b and c). The length of the load-carrying interface of \({P}_{2}\) for case (1) (Fig. 9b) is significantly longer, as the ratio of input loads \(\left|{P}_{2}\right|/\left|{P}_{1}\right|\) of this case is larger than case (2). Moreover, design cases with a wider range of \(\left|{P}_{2}\right|/\left|{P}_{1}\right|\) ratio, which can strongly affect the interface boundaries, are also studied and summarized in Table 1. Their mean computing time is 603.96 s.

Table 1 The MDDIMO inverter design case with one material: optimal topology and output displacement subject to different input loads \({P}_{1}\) and \({P}_{2}\)

In addition, to validate the present element-based searching scheme for multiple-interface tracking, the fluid–structure interface elements of the optimal topology for design case (1) (Fig. 9b) are plotted in Fig. 9d, in which different colors are selected for different design-dependent pressure–structure interfaces and non-pressurized interfaces. It can be seen that all interface elements are identified, and no solid/void/fluid elements are included. It is also evident that no one-node hinge exists in the optimal topology, as the thinnest part of each hinge-like area is composed of at least three finite elements.

5.3 MDDIMO inverter design: bi-material and fiber orientations

In this example, design case (1) of the MDDIMO inverter design problem in example Sect. 5.2 (Fig. 9a) is considered for bi-material topology and orientation optimization. Since multiple design-dependent loadings, multi-material topology optimization, and orientation optimization are all included in this problem, the two-stage sequential scheme, as illustrated in Fig. 6, is exploited. Material 1 (design variables \({x}_{e1}^{k}\), blue in Fig. 10) is selected as a composite material: \({E}_{f}=1\) MPa, \({\nu }_{f}=0.22\) and \({E}_{m}=1/15\) MPa, \({\nu }_{m}=0.38\) with fiber volume ratio \({V}_{fib}=0.25\); Material 2 (design variables \({x}_{e2}^{k}\), green in Fig. 10) is isotropic with properties: \({E}_{2}=1\) MPa and \(\upsilon =0.3\); fiber orientations \({\theta }_{e}^{k}\) is optimized simultaneously and initial fiber orientations \({\theta }_{e}^{0}=0\). For the one-material case from example Sect. 5.2, the optimal topology is depicted in Fig. 10a, and the output displacement with material 1 changed to the composite material and initial orientations (used in this example) is computed for comparison purposes \(-{u}_{{\text{out}}}=28.1\) mm. The optimized output displacement (\(-{u}_{{\text{out}}}\)) obtained in this example should be compared with the one-material case.

Fig. 10
figure 10

The MDDIMO inverter design case: a optimal topology with one material; b optimal topology and orientations with bi-material and orientation optimization; and c optimal topology with bi-material and fixed orientations

The optimal topologies of material 1 (blue) and 2 (green) with volume fraction \({V}_{f2}=0.25{V}_{f1}\) is presented in Fig. 10b, where the short lines indicate the fiber orientations of composite material 1. The optimal output displacement \(-{u}_{{\text{out}}}\) of this case is 59.0 mm, which is 110.1% higher than the one-material case (28.1 mm). It can be seen that the fibers in Fig. 10b generally follow the directions of truss-like structural members, but there are exceptions near the fluid–structure interface regions. However, the fibers are aligned with the principal strain directions (normal to the interfaces) in these regions. The possible cause is multiple distributed pressures are applied normal to the interfaces, and the path of load and displacement transmissions and the principal strain directions at the interfaces differ from the conventional compliant mechanisms (simply follow truss/rod segment directions). The total computational time for this design case is 748.54 s.

In addition, the design case only considers bi-material topology with fixed orientations \({\theta }_{e}=0\) is studied for comparison purposes, as shown in Fig. 10c. The optimized output displacement is \(-{u}_{\text{out}}=54.5\) mm (94.0% larger than the one-material case 28.1 mm). The total computational time for this design case is 709.65 s.

This inverter design problem can verify the validity of the present optimization method and algorithm for MDDIMO compliant mechanism problems, as example Sects. 5.2 and 5.3 can deal with multiple design-dependent loadings and fluid–structure interfaces, and the orientations and bi-material optimization (example Sect. 5.3) can further improve the output displacement compared with the one-material case (example Sect. 5.2). Moreover, the convergence histories of the design case considering bi-material and orientations (Fig. 10b) and bi-material with orientations fixed (Fig. 10c) are plotted in Fig. 11. The outer loops for both cases converge after 4 iterations (\(k=4\)), and the objective function histories of the two sequential optimization stages for topologies and orientations (inner loops with iteration number \({k}_{1}\) and \({k}_{2}\), please see Fig. 6) in each loop k are also presented in Fig. 11. For example, for the outer loop iteration \(k=2\), stage 1 converges in 7 iterations (\({k}_{1}=7\)) and stage 2 converges in 4 (\({k}_{2}=4\)) iterations for the bi-material + orientation case (Fig. 10b). Figure 11 reveals that the proposed sequential optimization scheme can lead to a relatively fast convergence.

Fig. 11
figure 11

Objective function histories of the outer loop (with iteration number k) and the two optimization stages (inner loops with iteration number k1 and k2) in the outer loop

5.4 MDDIMO inverter design: bi-material bio-inspired joints

This example presents an extension of the proposed two-stage optimization algorithm. In the second stage, one can only consider the topology optimization of material 2 at the hinge-like areas, using the alternative approach to introduce the second material by von Mises stress with Eq. (31) demonstrated in Sect. 5.1. If material 2 is selected as softer than material 1, bio-inspired human joint-like structures, with hard bones (material 1, blue in Fig. 12b) at two sides and soft cartilage (material 2, green in Fig. 12b) at the middle, can be generated.

Fig. 12
figure 12

The MDDIMO inverter design case with bi-material joints: a optimal topology of stage 1; b optimal topology of stage 2; and c, d local design domains of bio-inspired joints

In this example, we take two local design domains with size \(9\times 8\) (Fig. 12c) and \(10\times 10\) (Fig. 12d) at two hinge-like areas. The material properties of material 2 are chosen as significantly softer: \({E}_{1}=100\, {\text{MPa}}\), \({E}_{2}=0.05{E}_{1}\), and \(\upsilon =0.3\), with volume fraction \({V}_{f2}\) = 0.3 times the total hinge area in each local design domain. The optimized topology with bio-inspired joint-like hinges is depicted in Fig. 12b, with output displacement \(-{u}_{{\text{out}}}\) = 39.90 mm, while the output displacement from the first stage is 33.32 mm (Fig. 12a). Although very small volume fractions \({V}_{f2}\) are applied, i.e., only 0.0032 and 0.0035 for the two joints in Fig. 12c and d, respectively, a 19.7% improvement of the output displacement can be obtained by those small joints.

5.5 MDDIMO bending actuator design

Similar to the inverter design cases, the one-material topology design (Sect. 5.2) and bi-material topology and orientation design (Sect. 5.3) of another MDDIMO problem are studied in this example. The design domain of a compliant bending actuator is shown in Fig. 13a, including the dimensions, meshing, and supporting and loading conditions. The compliant mechanism is pressurized both internally (\({P}_{1}\), \(i=1\)) and externally (\({P}_{2}\), \(i=2\)), with two design cases: (1) \({P}_{1}=1\, {\text{MPa}}\) and \({P}_{2}=0\, {\text{MPa}}\) and (2) \({P}_{1}=1\, {\text{MPa}}\) and \({P}_{2}=1\, {\text{MPa}}\). The output port (\(j=1\)) is selected as the top-right corner to generate bending motion, with load case \({{\text{F}}}_{{\text{out}}}^{1}=1N\) and \({k}_{{\text{out}}}^{1}=20 \, {\text{N/mm}}\). The weighting factors are \({w}_{1, 1}\) = 0.3, \({w}_{2, 1}=0.3\), \({\alpha }_{{\text{in}}}^{1}=0.125\), \({\alpha }_{{\text{in}}}^{2}=0.125\) and \({\alpha }_{{\text{out}}}^{1}=0.15\), and material properties of the one-material and bi-material case are identical to example Sects. 5.2 and 5.3, respectively.

Fig. 13
figure 13

The MDDIMO bending actuator design case: a design domain; optimal topology with one-material subject to b \({P}_{1}\) = 1 MPa and \({P}_{2}\) = 0 MPa and c \({P}_{1}\) = 1 MPa and \({P}_{2}\) = 1 MPa

For the one-material design case, the prescribed volume fraction constraints for material 1: \({V}_{f1}=0.2\), and the optimal topologies for design cases (1) and (2) are presented in Fig. 13b (\({u}_{{\text{out}}}\) = 10.35 mm) and Fig. 13c (\({u}_{{\text{out}}}\) = 18.10 mm). The interface boundaries for \({P}_{1}\) are relatively similar for case (1) and (2), except for the top-right and bottom-right corners, while notable discrepancies in the interface boundaries for \({P}_{2}\) can be observed.

For the bi-material and orientation design case: in stage 1, the prescribed volume fraction constraints for material 1: \({V}_{f1}=0.2\); in stage 2, material 2 is optimized with volume fraction \({V}_{f2}=0.4{V}_{f1}\), concurrently with fiber orientations (initial fiber orientations \({\theta }_{e}^{0}=0\)). Figure 14a and b presents the optimal bi-material topologies and fiber orientation distributions for design cases (1) and (2). The output displacement of case (1) (Fig. 14a) is \({u}_{{\text{out}}}\) = 12.99 mm and of case (2) (Fig. 14b) is \({u}_{{\text{out}}}=\) 26.16 mm.

Fig. 14
figure 14

The MDDIMO bending actuator design case: optimal bi-material topology and orientations subject to a \({P}_{1}\) = 1 MPa and \({P}_{2}\) = 0 MPa and b \({P}_{1}\) = 1 MPa and \({P}_{2}\) = 1 MPa

5.6 MDDIMO gripper design

In the previous examples, design cases with multi-input but single-output have been studied, while this example presents a MIMO compliant gripper design problem. Half of the design domain for the gripper is shown in Fig. 15a. Two output ports are selected on the jaw of the gripper: one at the tip and one at the mid-point, which can better enclose the object (especially for convex) being grasped compared to single-output designs. Two input loads are also applied to actuate the gripper: a fluidic pressure \({P}_{1}\) and a concentrated force \({F}_{2}\). The load and spring stiffness for the input and output load cases are as follows: for the input load case \({P}_{1}=1\, {\text{MPa}}\) and \({F}_{2}=100 N\) and \({k}_{{\text{in}}}^{2}=10 \, {\text{N/mm}}\); for the output load case, \({{\text{F}}}_{{\text{out}}}^{1}=1N\), \({k}_{{\text{out}}}^{1}=10 \, {\text{N/mm}}\) and \({{\text{F}}}_{{\text{out}}}^{2}=1N\), \({k}_{{\text{out}}}^{2}=10 \, {\text{N/mm}}\). The material involved is polyurethane with \(E=50\, {\text{MPa}}, \upsilon =0.3\), and the prescribed volume fraction is \({V}_{f}=0.25\).

Fig. 15
figure 15

The MDDIMO gripper design case with one material: a design domain and optimal topology for b single-input-single-output, c single-input-multi-output, and d multi-input-multi-output design problem

For comparison purposes, single-input-single-output (SISO), single-input-multi-output (SIMO), and multi-input-multi-output (MIMO) design cases are computed. In the SISO design case (Fig. 15b), input load \({P}_{1}\) and output port \({u}_{{\text{out}}1}\) are involved, where the weighting factors for the objective and response functions are \({w}_{1, 1}\) = 0.65, \({\alpha }_{{\text{in}}}^{1}=0.15\), and \({\alpha }_{{\text{out}}}^{1}=0.2\). In the SIMO design case (Fig. 15c), input load \({P}_{1}\) and output ports \({u}_{{\text{out}}1}\) and \({u}_{{\text{out}}2}\) are involved, where the weighting factors \({w}_{1, 1}\) = 0.325, \({w}_{1, 2}=0.325\), \({\alpha }_{{\text{in}}}^{1}=0.15\), \({\alpha }_{{\text{out}}}^{1}=0.1\), and \({\alpha }_{{\text{out}}}^{2}=0.1\). In the MIMO design case (Fig. 15d), input loads \({P}_{1}\) and \({F}_{2}\) and output ports \({u}_{{\text{out}}1}\) and \({u}_{{\text{out}}2}\) are involved, where the weighting factors \({w}_{1, 1}\) = 0.15, \({w}_{1, 2}=0.15\), \({w}_{2, 1}\) = 0.15, \({w}_{2, 2}=0.15\), \({\alpha }_{{\text{in}}}^{1}=0.1\), \({\alpha }_{{\text{in}}}^{1}=0.2\), \({\alpha }_{{\text{out}}}^{1}=0.05\), and \({\alpha }_{{\text{out}}}^{2}=0.05\).

The optimal topologies for the three design cases are depicted in Fig. 15b–d, respectively. The optimized output displacements of the SISO case (Fig. 15b) are \({u}_{{\text{out}}1}=4.50 \, {\text{mm}}\) and \({u}_{{\text{out}}2}\) is only \(2.29 \, {\text{mm}}\) as no output port is added at this point. For the SIMO case (Fig. 15c), \({u}_{{\text{out}}1}=7.95 \, {\text{mm}}\) and \({u}_{{\text{out}}2}=6.86 \, {\text{mm}}\), which reveals the output displacements at both ports are optimized and weighted equally. In the MIMO case, the additional input force can further improve the output displacements, which gives \({u}_{{\text{out}}1}=10.35 \, {\text{mm}}\) and \({u}_{{\text{out}}2}=8.05 \, {\text{mm}}\).

6 Conclusion

This work presents the general formulation of the MDDIMO compliant mechanism designs. For the formulated design problem, an extended MIST method and algorithm are developed to perform concurrent topology and orientation optimization with multi-material and hinge-free designs. The algorithm has the following features: (1) a novel element-based searching scheme for tracking multiple fluid–structure interfaces; (2) an analytical solution for the optimal material orientation of the MIMO compliant mechanisms with fully anisotropic materials; (3) multi-material topology optimization; (4) a concurrent and an alternative sequential optimization scheme; and (5) the optimal topologies are hinge free.

The present algorithm is first benchmarked by a concurrent SISO compliant mechanism design problem involving bi-material and fiber orientations, which shows the anisotropy and heterogeneity generated by multiple materials and spatially varying fiber orientations can improve the performance (maximum output displacements) of compliant mechanisms. MDDIMO compliant mechanism case studies are also investigated via the two-stage sequential scheme. The results validate the sequential scheme, as (1) the first stage can deal with multiple design-dependent loadings and fluid–structure interfaces; (2) orientations and bi-material model introduced in the second stage can effectively further improve the output displacements; and (3) the proposed two-stage scheme can guarantee a relatively fast convergence speed. Moreover, we develop an alternative approach to introduce the second material via stress criteria. It can remain a relatively low maximum stress level while increasing the output displacements, if applied at the global design domain; it can also improve the overall flexibility via the bio-inspired joint-like structures, if applied at the hinge-like local design domains.

Additionally, the present method is developed for 2D pressure-actuated or combined force- and pressure-actuated compliant mechanisms, while the method is possible to be extended to the 3D structural design of this type of compliant mechanisms, for the following reasons: (1) the MIST method has a 3D version (Vasista and Tong 2014), in which a higher dimensional response function and surface are employed (similar to the level-set function in 3D problems); (2) the present objective function and response function (based on strain and mutual strain energy/energy density) can also be easily expressed in 3D structures; and (3) the proposed interface tracking scheme is based on set operations, which also works for 3D structures. However, due to the length limitation of this paper, we will develop the full 3D version of the method in future work.