Abstract
This paper presents a topology optimization approach that is innovative with respect to two distinct matters. First of all the proposed formulation is capable to handle static and dynamic topology optimization with virtually no modifications. Secondly, the approach is inherently a multiinput multioutput one, i.e., multiple objectives can be pursued in the presence of multiple loads. The inputtooutput transfer matrix, say \({{{\varvec{G}}}}\), is the key ingredient that governs the algebraic mapping between applied loads and structural response. In statics \({{{\varvec{G}}}}\) depends on the design variables only, whereas it depends on the frequency variable as well in the dynamic case. The Singular Value Decomposition (SVD) of \({{{\varvec{G}}}}\) represents then the core of the proposed approach. Singular values are shown to be the gains of the input/output mapping and are used to compute proper norms of \({{\varvec{G}}}\) that represent the goal functions to be minimized. Singular vectors provide at no extra cost the plant directions, i.e., the load combination factors that stress the structure the most. Numerical examples are discussed in much detail and open issues object of ongoing investigations are highlighted. A full Matlab code handling the static topology optimization problem is provided as an online Appendix to the manuscript. Its extension to the dynamic case may be gathered following the formulation proposed in Sect. 5.
1 Introduction and motivation
Topology optimization is nowadays a mature discipline from both engineering and computational viewpoints. A systematic view about principles, computational methods, and applications was given in the classic book (Bendsøe and Sigmund 2003) that dates back some twenty years ago. The vast majority of contributions in both static and dynamic regimes aim at the minimization of (possibly slightly different definitions of) the structural compliance in the presence of further goals and/or constraints.
With no aim of completeness, as far as static response is concerned stress constraints were investigated in Bruggi and Duysinx (2012), Bruggi and Venini (2008), GiraldoLondono et al. (2022), and Collet et al. (2017) focused on fatigue response, design of compliant mechanisms was tackled in Emmendoerfter et al. (2022), whereas Ferrari and Sigmund (2020b) and GersborgHansen et al. (2006) addressed heat conduction and buckling, respectively. The development of fast computational methods was pursued in Andreassen et al. (2011) and Ferrari and Sigmund (2020a), whereas the advantages of mesh adaptivity were exploited in Salazar de Troya and Tortorelli (2018), just to mention a few. The above list is by no means complete and reference is made to the references therein and to the review paper (Sigmund and Maute 2013) for a comprehensive list of contributions and applications.
When it comes to dynamic response, a first main subdivision should be made between timedomain and frequencydomain approaches. As for timedomain approaches, Min et al. (1999) should be cited as a pioneering contribution, GiraldoLondono and Paulino (2021) represents a milestone in that a general approach is presented along with a Matlab implementation that fits a more general modular environment, whereas (Jensen et al. 2014) faces and solves the fundamental issue of sensitivity computation. Switching to frequencydomain methods, Olhoff and Du (2016) presents an incremental approach for the minimization of the dynamic compliance in the presence of prescribed low or high value of the excitation frequency, Yang and Li (2014) minimizes the dynamic compliance of structures at resonance frequencies in thermal environments, whereas the frequent case of harmonic excitation is investigated in Liu et al. (2015).
Given the scenario above, this paper introduces an innovative formulation for the topology optimization of MultiInput (i.e., multiloaded) MultiOutput (i.e., multiobjective) structures. The proposed framework includes classic compliance optimization as a representative case but is general enough to allow extensions to alternative definitions of compliance as well as to the adoption of other merit functions that may be more appropriate for specific applications. The main idea behind the proposed approach is to write explicitly the input/output transfer matrix, say \({{\varvec{G}}}\), that maps the acting loads to the structural response. Using the adopted format, the structural response vector (that more often than not goes under the name of output vector) can be any linear combination of the state vector, i.e., it may include any nodal displacement of the discretized structure. Interestingly enough, the structural compliance (that is the goal function used in nearly all the applications of the literature) may inherently be written as a linear combination of those structural displacements where a load is applied (and in fact the loads themselves are the coefficients of such linear combination as shown in the sequel of the paper). Any optimal design pursued herein is the one that minimizes a proper measure of “amplitude” of the transfer matrix \({{{\varvec{G}}}}\). From an engineering perspective, minimizing such amplitude amounts to minimize the effects of the loads onto the structure. It is therefore clear that a proper “tool” to assess the amplitude of the transfer matrix is the key ingredient to fully define the proposed approach. The Singular Value Decomposition (SVD) (Brunton and Kutz 2019; Strang 2019) is shown to be such a tool and more in that not only it does allow to compute a few matrix norms that represent the needed amplitude but also shed some light onto the system response in static and dynamic regime as well. The fact that such norms are uniquely defined in terms of singular values of \({{{\varvec{G}}}}\) simplifies dramatically the computation of the sensitivities that are reduced to the evaluation of the gradients of the singular values themselves with respect to the design variables.
The paper is organized as follows. Section 2 introduces the properties of the singular value decomposition focusing on its engineering interpretation. The fact that input and output singular vectors are mapped onto each other with a gain that is the associated singular value is the reason why the proposed approach is in a sense the most natural to address static and dynamic topology optimization problems, including the celebrated minimum compliance one. The section is concluded by an explicit derivation of the transfer matrix in the frequent case of a displacementbased FEM discretization. The topology optimization problem is presented in Sect. 3 along with a semianalytic derivation of the sensitivities of the transfer matrix entries and of the singular values with respect to the design parameters. Such sensitivities are needed to apply any gradientbased minimization scheme including the method of moving asymptotes (MMA) (Svanberg 1987) that is used herein in a Matlab version made available by Krister Svanberg. The specific choice of the output vector that fully defines the objectives of the design is made in Sect. 4 wherein attention is paid to the compliance or better a few generalized versions of it. The extension to the dynamic problem is analyzed in Sect. 5. The focus therein is not on the (minimal) modifications needed to handle the dynamic case but is conversely on the unifying aspects that static and dynamic problems share. A few convenient computational remedies that take care of the lengthy processes behind the expensive evaluation of system matrix norms are highlighted and framed within the Matlab environment. Section 6 presents the results of a few numerical investigations along with comparisons with similar designs obtained via more classical methods (when available). The focus is on reporting general lessons that may be learned by proper comparisons between all the proposed norms in terms of effectiveness and robustness. Concluding remarks and need for ongoing investigations are left to Sect. 7, whereas the full Matlab code that solves the static topology optimization problem is given in online Appendix 1. The code is provided for completeness and is open for extensions and improvements.
2 Singular Value Decomposition of the input/output transfer matrix
2.1 General properties of the SVD
Upon recalling that a (generally complex) matrix \({\varvec{L}}\) is unitary if
where a superposed H denotes conjugate transposition, we observe that any complex \(l\times m\) matrix \({{\varvec{G}}}\) admits a singular value decomposition (Strang 2019) that reads
where

\({{\varvec{U}}}\) and \({{\varvec{V}}}\) are unitary \(l\times l\) and \(m\times m\) matrices, respectively;

\({\varvec{\Sigma }}\) is a \(l\times m\) matrix that admits the representations
$$\begin{aligned} {\varvec{\Sigma }}= \left[ \begin{array}{c} {\varvec{\Sigma }}_1\\ {{\varvec{0}}} \end{array} \right] , \; \text{ if } l\ge m \;\; \text{ or } \;\; {\varvec{\Sigma }}= \left[ \begin{array}{cc} {\varvec{\Sigma }}_1&{{\varvec{0}}} \end{array} \right] , \; \text{ if } l\le m, \end{aligned}$$where
$$\begin{aligned} {\varvec{\Sigma }}_1 = \text{ diag }\left\{ \sigma _1,\sigma _2,\ldots \sigma _r\right\} ;\;\; r = \min (l,m), \end{aligned}$$(3)in which r is the rank of \({{{\varvec{G}}}}\) and
$$\begin{aligned} {\overline{\sigma }}\equiv \sigma _1\ge \sigma _2\ge \ldots \ge \sigma _r\equiv {\underline{\sigma }}>0. \end{aligned}$$(4)
A few developments below are based on the fact that the unitary matrices \({{\varvec{U}}}\) and \({{\varvec{V}}}\) form orthonormal bases for the output and input spaces of \({{\varvec{G}}}\), respectively.
2.1.1 The main property
Equation (2) provides the definition itself of singular value decomposition but should be further elaborated to gain a deeper understanding of the proposed design approach. To this goal, both sides of Eq. (2) are rightmultiplied by \({{\varvec{V}}}\) so as to obtain (thanks to the unitary property of \({{\varvec{V}}}\))
that componentwise reads
Equation (5) is the first of the two milestones on which the proposed design approach rests (the second one is concerned with the concept of matrix norms based on singular values that is tackled in the next paragraph). The column vectors of \({{\varvec{U}}}\) and \({{\varvec{V}}}\), say \({{\varvec{u}}}_k\) and \({\varvec{v}}_k\), respectively, represent the output and input directions of the system and are dual to each other, i.e., if an input vector (load) in the direction of \({\varvec{v}}_k\) is considered, the output shall be in the direction of the associated singular vector \({{\varvec{u}}}_k\). Since \(\vert \vert {\varvec{v}}_k\vert \vert _2=\vert \vert {{\varvec{u}}}_k\vert \vert _2=1\), one has
From an engineering point of view, Eq. (6) is of the utmost importance for two reasons:

The kth singular value \(\sigma _k\) is the gain of the matrix \({{\varvec{G}}}\) in the direction of the \(k\)th input–output singular pair;

Being singular values sorted in descending order, see Eq. (4), the triple \((\sigma _1,{\varvec{v}}_1,{{\varvec{u}}}_1),\) respectively, define the maximum gain of the response matrix \({{\varvec{G}}}\) and the associated input and output directions.
2.2 Singular values and matrix norms
Paragraph 2.1 has introduced the singular value decomposition of the response matrix as an engineering tool for a deeper understanding of the input–output mapping of the structure to be designed. Furthermore, singular values were shown to be the structural gains coupling each singular vector pair. Given this scenario, a natural goal function, say \({\mathscr {F}}\), should enjoy the following two properties:

1.
\({\mathscr {F}}\) should be a proper norm of the response matrix \({{\varvec{G}}}\) (and such norm should preferably be induced by an associated vector norm);

2.
The norm \({\mathscr {F}}\) should be uniquely defined by the singular values (gains) \(\sigma _k\).
Three possible such norms are as follows:

\(\vert \vert {{\varvec{G}}}\vert \vert _{2} = \sigma _1\) (the socalled 2norm) that is in fact the supremum of the ratio in (6). The 2norm satisfies the multiplicative property
$$\begin{aligned} \vert \vert G_1G_2\vert \vert _{2} \le \vert \vert G_1\vert \vert _{2} \cdot \vert \vert G_2\vert \vert _{2} \end{aligned}$$(7)which is a desirable property that shows that the 2norm is a vectorinduced one. As shown later in much detail, it is appropriate to note that in the dynamic case singular values depend on the frequency \(\omega \), i.e., \(\sigma _1=\sigma _1(\omega )\), and the induced norm is defined as \(\sup _{\omega } = \sigma _1(\omega )\). Since a \(\sup \) operator is involved, in dynamics such norm shall be named \(H_{\infty }\) norm but one should always recall that the underlying norm is a 2norm;

\(\vert \vert {{\varvec{G}}}\vert \vert _N = \sigma _1+\sigma _2+\ldots +\sigma _r\) that is often referred to as the Nuclear norm. All plant’s directions concur to the definition of the goal function and therefore the frequency range wherein the design is effective is expected to be wider than the \(H_{\infty }\)–norm case that however performs better as far as maximum peak reduction is concerned;

\(\vert \vert {{\varvec{G}}}\vert \vert _F = \sqrt{\sigma _1^2+\sigma _2^2+\ldots \sigma _r^2}\), i.e., the socalled Frobenius norm. Although neither is the Frobenius norm an induced one nor it enjoys the multiplicative property (7), numerical results to follow show that the Frobenius norm works properly and is a viable choice when the primary goal is the robustness of the response.
To conclude this section with, the following key features of the singular value decomposition are worth being emphasized:

the singular values give direct info on the input/output gains of the system;

the structure directions \({{\varvec{U}}}_k\) and \({{\varvec{V}}}_k\) are mutually orthogonal and represent the input–output directions of the system;

unlike eigenvaluebased approaches, the SVD applies inherently to nonsquare structures. Most response matrices \({{\varvec{G}}}\) are in fact nonsquare since the number of inputs and outputs are usually different from each other. (There is actually no reason why they should be the same).
2.3 The steadystate input/output response matrix \({{\varvec{G}}}\)
Aim of this paragraph is to derive the abstract framework for the static state and output equations that fits the proposed SVDbased design approach. To start off, equations governing the static response of the structure under optimization are written. For the sake of simplicity, reference is made hereinafter to a displacementbased finite element discretization, but mixed stress–displacement approaches based on the Hellinger–Reissner functional or threefield (stress, strain, displacement) formulations arising from the Hu–Washizu functional might be considered as well. A classical displacementbased equilibrium equation reads
where \({{\varvec{K}}}\) is the \(n\times n\) stiffness matrix, \({{\varvec{x}}}\) is the \(n\times 1\) column vector of the unknown displacements, \({{\varvec{B}}}\) is an \(n\times r\) load matrix, and \({{\varvec{f}}}\) is a \(r\times 1\) Boolean column vector that distributes the loads to the appropriate degrees of freedom. It should be noticed that constrained displacements and dual reactive forces have been ruled out from Eq. (8) so that n denotes the number of free degrees of freedom of the problem.
The output equation is then used to define the goals of the design. Each row of the \(n_o\times 1\) output vector \({{\varvec{z}}}\) represents a physical quantity of interest for the designer. When compliance minimization is pursued \(n_o=1\) so that \({{\varvec{z}}}\) is actually a scalar quantity. The output equation is eventually written as follows:
where \({{\varvec{C}}}\) is the \(n_o\times n\) output matrix that is responsible for the definition of the quantities of interest for the designer.
Upon combining Eqs. (8) and (9), i.e.,
one gets the input–output mapping that reads
that is given a classic system representation in Fig. 1 where the dependence of \({{\varvec{G}}}\) on the design variable vector \({{\varvec{p}}}\) has been made explicit.
The \(n_o\times r\) steadystate (static) transfer matrix eventually reads
where one should notice that in the frequent case of a single load case (\(r=1\)) and a single scalar output (\(n_o=1\)), as it happens, e.g., for compliance minimization of a structure acted upon by a single load, \({{\varvec{G}}}\) is actually a scalar quantity.
3 \({{\varvec{G}}}\)based topology optimization
The typical \({{\varvec{G}}}\)based optimal design problem eventually reads
where

(12)\(_1\) defines the function \({\mathscr {F}}({{\varvec{p}}})\) to be minimized. The matrix norm being used for each specific problem should be specified (see paragraph 2.2);

(12)\(_2\) is the definition itself of the input/output transfer matrix wherein the dependence on the vector of the design variables \({{\varvec{p}}}\) has been made explicit;

(12)\(_3\) is the standard constraint on the maximum volume of the structure. From a computational viewpoint, it may be useful to impose also a lower bound to the overall volume, i.e.,
$$\begin{aligned} V_{\min } \le V({{\varvec{p}}}) \le V_{\max }. \end{aligned}$$Although not compulsory, in the very first iterations of the optimization process a lower bound on the volume may help the numerical solver avoid unfeasible “superlight” solutions in the design space;

The inequalities on the design variables in (12)\(_4\) are to be intended componentwise. As usual, each design variable is bounded between zero (void) and one (full material) within a standard SIMP idealization (Bendsøe and Sigmund 1999).
The optimization problem (12) is solved numerically using the method of moving asymptotes (MMA) (Svanberg 1987). To this goal the user must provide the current values of the goal function and the constraints, along with their sensitivities with respect to the design variables. When the objective function to be minimized is a matrix norm that depends on its singular values, using the chain rule one should therefore provide a semianalytical computation of the sensitivity of the transfer matrix and of the singular values with respect to any design variable, say \(p_k\). This is done below and implemented in the Matlab code in online Appendix 1.
3.1 Sensitivity of the input/output transfer matrix
In the most general case assume the input/output matrix \({{\varvec{G}}}\) depends on the design variable vector \({{\varvec{p}}}\) through all its three factors, i.e.,
In fact, when, for example, seismic forces are considered, one may show that the matrix \({{\varvec{B}}}\) does depend on the design variable vector \({{\varvec{p}}}\) (Venini and Ceresa 2018) and that is why the dependence of all the factors in Eq. (13) on \({{\varvec{p}}}\) should in general be considered. Upon recalling that the derivative of the inverse reads
using the product rule, the derivative of \({{\varvec{G}}}({{\varvec{p}}})\) with respect to the kth component \(p_k\) of the design variable vector writes
where the derivative of the stiffness matrix \({{\varvec{K}}}({{\varvec{p}}})\) with respect to the design variable \(p_k\) that appears in Eq. (14) is computed semianalytically (Andreassen et al. 2011). When the dependence of \({{\varvec{G}}}\) on \({{\varvec{p}}}\) is through \({{\varvec{K}}}\) only, Eq. (15) reduces to
3.2 Sensitivity of the singular values
Under certain hypotheses of regularity (that we certainly supposed to be met hereinafter) direct differentiation of Eq. (2) allows to arrive at the following formula for the sensitivity of the generic hth singular value \(\sigma _h\) (see also Strang 2019):
where \({\mathscr {R}}\) indicates the real part of a (possibly) complex number.
3.3 Sensitivity of the norm of the input/output transfer matrix
Since 2, Nuclear and Frobenius norms of \({{\varvec{G}}}\) are uniquely defined by its singular values, Eq. (17) coupled to a proper usage of the chain rule allows the computation of any norm sensitivity in (12)\(_1\). The sensitivity of any of the three norms of interest eventually reads
where the second factor at the righthandside is given in Eq. (17), whereas the first factor is as follows:
4 Compliance definition (revisited and extended) and more
As already observed most of the times topology optimization aims at the minimization of the compliance. Therefore, even though the proposed approach may handle many different goal functions, a specific derivation of the compliance minimization problem seems to be appropriate. For the sake of simplicity, a lumped parameters system is referred to next. However, the adopted formulation is general in that it applies to any system such that

\({{\varvec{x}}}\) is the state vector grouping all the generalized displacements emerging from a suitable finite element discretization;

\({{{\varvec{s}}}}\subset {{{\varvec{x}}}}\) is the subset of the displacements that is loaded by the force vector \({{{\varvec{f}}}}\) that is the dual of \({{{\varvec{s}}}}\) in the virtual work sense.
4.1 Notations
Reference is made to Fig. 2 where the state vector reads
\({{{\varvec{f}}}} = \{f_1, f_2 \}\) is the set of applied loads and \({{{\varvec{s}}}} = \{x_1, x_2 \}\subset {{{\varvec{x}}}}\) is the set of displacements that is dual to \({{\varvec{f}}}\) in virtual work sense.
The optimization problem associated to the system in Fig. 2 is far from being unique in that different choices of load cases and combinations on the input side, see Eq. (8), and design objectives on the output side give rise to a wide variety of engineering problems of interest as discussed below. Each problem fits the framework of Eq. (12) and is fully characterized by the stiffness matrix \({{\varvec{K}}}\), the load matrix \({{\varvec{B}}}\), and the output matrix \({{\varvec{C}}}\). For the case at hand \(n=3\) and the \(3\times 3\) stiffness matrix is shared by all possible problems. The designer should conversely select the two matrices \({{\varvec{B}}}\) and \({{\varvec{C}}}\) to derive the optimization setting that fits better the actual engineering problem to be solved.
4.2 The SISO case: single load case and standard compliance minimization
In this case, i.e., the standard compliance minimization in the presence of a single load case, \(n_o=1\), \(r=1\) and one writes
where it should be noticed that the output vector \({{{\varvec{z}}}}\) reduces to a scalar and reads:
i.e., the classical compliance (Andreassen et al. 2011). In this SISO case \({{{\varvec{G}}}}\) is a scalar as is the “matrix” of singular values that reads \({{\varvec{\Sigma }}}=\sigma _1\). It should be noted that in the SISO case the three cited norms (2, Nuclear and Frobenius) coincide.
4.3 The MISO case: two load cases and standard compliance minimization
This case is non standard in that \(r=2\), i.e., two independent load cases are considered, whereas \(n_o=1\), i.e., the output is a scalar compliance. One may write
where the output vector is formally the same as the SISO one but now the overall compliance \({{\mathscr {C}}}\) is the sum of two independent ones, say \({{\mathscr {C}}_1}\) and \({{\mathscr {C}}_2}\), respectively, due to the loads \(f_1\) and \(f_2\), i.e.,
This resembles the multiple load formulation of Sect.5.2 in the celebrated paper (Andreassen et al. 2011) by Sigmund and coworkers. A further property enjoyed by the MISO case should be highlighted. Having two inputs and a single output, the singular input matrix \({{\varvec{V}}}\) and the singular value matrix \({\varvec{\Sigma }}\) may be, respectively, written as
The only nonvanishing singular value \(\sigma _1\) gives the plant gain, whereas the associated first right (input) singular vector \({\varvec{v}}_1\) gives the factors of the linear combination of the two loads \(f_1\) and \(f_2\) that stresses the structure the most, i.e.,
On the opposite side, the second right singular vector \({\varvec{v}}_2\) is associated to the vanishing singular value \(\sigma _2=0\). Therefore, the second input singular vector \({\varvec{v}}_2\) gives the coefficients of the linear combination
to which a null compliance is associated. The crucial role played by (26) as far as the optimal topology is concerned should be highlighted: as long as the two loads \(f_1\) and \(f_2\) are independent of one another, i.e., when they belong to different load cases so that \(r=2\), the proposed approach provides the designer with an optimal solution that is based on the automatic selection of the worst possible load combination that is given by the components of \({{\varvec{v}}}_1\) and characterized by a gain that is \(\sigma _1\). No role is conversely played by the load combination (27). Being the system a single output one, i.e., \(\sigma _2=0\) in (25), the rank of \({{{\varvec{G}}}}\) is \(r=1\) and therefore the plant direction \({{\varvec{v}}}_2\) is annihilated or, in engineering words, the relevant compliance is zero whenever the two loads \(f_1\) and \(f_2\) are combined according to (27).
4.4 The SIMO case: single load case and minimization of the compliance vector norm
The peculiarity of this (and next) case is its output \({{{\varvec{z}}}}\). The compliance associated to each loaded point, say \({{\mathscr {C}}_k}=f_ku_k\), is no longer added to define a unique scalar compliance \({{\mathscr {C}}} = \sum _k {\mathscr {C}}_k\), but it conversely defines an independent entry of the compliance vector \({{\varvec{z}}}\). For the problem at hand \(r=1\) and \(n_o=2\) and one writes
such that the output vector reads
The rectangular matrix of singular values reads
that means that \({\mathscr {C}}_1\) and \({\mathscr {C}}_2\) are automatically combined according to the components of the first output vector \({{{\varvec{u}}}}_1\), i.e.,
and such combination is the one that determines the final optimal topology to which the maximum gain \(\sigma _1\) is associated. On the other side, the combination
is associated to a null gain \(\sigma _2=0\) and is therefore annihilated by the computations. As a matter of fact (31) is the SIMO dual of the MISO input combination (26) in that they both are the combinations, input and output, respectively, that govern and determine the optimal topologies. Likewise, (32) and (27) are dual to each other in that none of them plays any role toward the computation of the final optimal topologies being associated to \(\sigma _2=0\).
4.5 The MIMO general case: two load cases and minimization of the compliance vector norm
This is the way more general formulation. One has two inputs and two outputs, i.e., \(r=2\) and \(n_o=2\), thus generating a \(2\times 2\) transfer matrix \({{\varvec{G}}}\). As for load and output matrices one may write
the output vector \({{\varvec{z}}}\) being the same as in Eq. (29). In this case (\(2=r>1\) and \(2=n_o>1\)), two nonvanishing singular values show up and one may write
where \(\sigma _1\) and \(\sigma _2\) are, respectively, associated to the structure directions \({{{\varvec{u}}}}_1\) and \({{{\varvec{u}}}}_2\) that maximize and minimize the plant gains. In the MIMO case, a comparison between the choice of the 2norm on the one side versus the Nuclear and Frobenius norms on the other is appropriate. Being \(r=n_o=2>1\), no plant direction is annihilated (unlike previous cases) and both the triples \((\sigma _1,{{{\varvec{u}}}_1},{{\varvec{v}}}_1)\) and \((\sigma _2,{{{\varvec{u}}}_2},{{\varvec{v}}}_2)\) contribute to the output response. Being however \(\sigma _1>\sigma _2\), the first triple plays a more important role than the second. That said, the 2norm is focused on the first triple only, i.e., the one that maximizes the plant gain, whereas using the nuclear and Frobenius norms all plant directions enter the formulation, including those characterized by smaller gains (\(\sigma _2\) for the case at hand).
5 Dynamic topology optimization fits the proposed formulation
By definition itself, the proposed topology optimization approach of Eq. (12) may be applied to any system whenever the following properties are met:

1.
A transfer matrix \({{{\varvec{G}}}}({{{\varvec{p}}}})\) is available that governs the input–output mapping of which the dependence on the design variable vector \({{\varvec{p}}}\) is known;

2.
A suitable norm of such matrix \( {{{\varvec{G}}}}({{{\varvec{p}}}})\) can be computed along with its sensitivities with respect to the design variables.
When these two properties hold true, the proposed formulation is abstract enough to allow its applicability, no matter the specific problem at hand and in particular no matter whether the system is static or dynamic. For the latter to fit the proposed formulation, a Laplace (Fourier) domain setting is adopted wherein the transfer matrix \({{{\varvec{G}}}}\) is readily available in an overall algebraic framework. In the dynamic case, though, the transfer matrix is no longer constant but depends on the Laplace variable s and eventually on the frequency \(\omega \) (and this matter shall affect the definitions themselves of matrix norms).
5.1 The dynamic transfer function
The more convenient way to arrive at the Laplacedomain formulation of the dynamic problem is to start with the timedomain state space form and take its Laplace transform. The state space form reads
where a superposed dot indicates time differentiation and
in which

\({{\varvec{K}}}\), \({{\varvec{D}}}\), \({{\varvec{M}}}\), and \({{\varvec{I}}}\) are the stiffness, damping, mass, and identity matrices, respectively. In what follows a Rayleigh damping is considered such that
$$\begin{aligned} {{{\varvec{D}}}} = \alpha {{{\varvec{M}}}} + \beta {{{\varvec{K}}}}, \end{aligned}$$(37)where \(\alpha \) and \(\beta \) are positive constants (small enough not to overdamp the system). However, the formulation is not limited to Rayleigh damping and any viscous damping could be adopted;

\({{\varvec{x}}}\) is the state vector that piles the displacement and velocity vectors \({{\varvec{u}}}\) and \({{\dot{{{\varvec{u}}}}}}\), respectively;

\({{\varvec{z}}}\) is the output vector that is defined through a proper choice of the output matrix \({{\varvec{C}}}\).
Taking the Laplace transform of (35)\(_1\) and (35)\(_2\) and ruling out the Laplace transform of the state vector \({{{\varvec{x}}}}\) one gets the Laplacedomain input/output relationship and the desired transfer matrix \({{\varvec{G}}}(s)\), i.e.,
Upon choosing \(s=i\omega \) one gets the frequency response matrix that is the dynamic counterpart of the static one in (12)\(_2\):
The dependence of \({{{\varvec{G}}}}(i\omega ;{{{\varvec{p}}}})\) on the frequency \(\omega \in (0,\infty )\) calls for a generalization of the three norms previously introduced as discussed below.
5.2 Matrix norm definitions in the dynamic case
The norms in Sect. 2.2 are extended to the dynamic case in which \({{\varvec{G}}}\) is no longer constant but depends on the frequency \(\omega \). This is done through an operation that is conceptually trivial but computationally extremely expensive: the supremum over the frequency axis in the \(H_{\infty }\) and Nuclear norm cases, a suitable integral average in the \(H_2\) case. One may write

\(H_{\infty }\) norm: \(\vert \vert {{{\varvec{G}}}} \vert \vert _{\infty }\) = \(\sup _{\omega }\sigma _1(\omega )\) where again the slight change of notation should be noticed. In statics this was named a 2norm in view of the fact that it was defined as a ratio between the 2norm of the output and input vectors. In dynamics, such norm is named \(H_{\infty }\) since a supremum is taken over the frequency axis;

nuclear norm: \(\vert \vert {{{\varvec{G}}}} \vert \vert _{N}\) = \(\sup _{\omega }\sigma _1(\omega ) + \ldots + \sigma _{r}(\omega )\);

the \(H_2\)norm is the generalization of the algebraic Frobenius norm to dynamical systems. Unlike the \(H_{\infty }\)norm, however, such generalization is not performed using a \(\sup \) operator, such as
$$\begin{aligned} \sup _{\omega } \sqrt{\sigma _1^2(\omega ) + \ldots + \sigma _r^2(\omega )}, \end{aligned}$$but via an integral average that reads
$$\begin{aligned} \vert \vert {{{\varvec{G}}}} \vert \vert _{2} = \sqrt{\frac{1}{2\pi }\int _{\infty }^{\infty } \sum _{i=1}^r\sigma _i^2(\omega ) \text{d}\omega }. \end{aligned}$$(40)
However, Eq. (40) is neither practical for computing the \(H_2\) norm nor its sensitivity. A more viable approach is then recalled in Sect. 5.3 below.
5.3 Computing the \(H_2\) norm and its sensitivity
The first step to compute \(\vert \vert {{{\varvec{G}}}} \vert \vert _{2}\) in the dynamic case is to evaluate the contrallability Gramian \({{{\varvec{W}}}}\) that solves the generalized Lyapunov equation:
Then, one may show that the following relation holds true (Francis 1987):
5.3.1 Semianalytic \(H_2\)norm sensitivity
As for the derivative of \(\vert \vert {{{\varvec{G}}}} \vert \vert _{2}\) with respect to the design parameter \(p_k\), one may write by direct differentiation of (42):
in which the derivative of the Gramian \({{{\varvec{W}}}}\) with respect to \(p_k\) may be computed by solving the generalized Lyapunov equation one gets by direct differentiation of (41):
where a superposed prime denotes differentiation with respect to \(p_k\) and the pseudoload \({{\varvec{S}}}\) is given as follows:
5.3.2 Finite difference \(H_2\)norm sensitivity
The semianalytic sensitivity of Eq. (43) calls for the solution of an additional generalized Lyapunov equation, the pseudoload of which is quite a complex one, i.e., \({{\varvec{S}}}\) in (45). A fast solver for the generalized Lyapunov equation was coded in the Matlab addon Saak et al. (2022) that performs at its best when the \({{{\varvec{B}}}}\) matrix is a “thin” rectangular one, a property that is not enjoyed by \({{\varvec{S}}}\) in (45). It is therefore more convenient to compute the \(H_2\)norm sensitivity using a finite difference approximation that also involves the solution of a generalized Lyapunov equation. The \({{{\varvec{B}}}}\) matrix of the latter, though, is the same as the one of the actual system and is therefore ideally suited for the code in Saak et al. (2022) to work full throttle.
5.4 The dynamic topology optimization problem
The dynamic topology optimization problem eventually writes
that is formally the same as the static one in (12), provided the respective definitions of matrix norms (Sect 2.2 versus Sect 5.2) and transfer matrices (Eq. 11 versus Eq. 39). A few considerations on how to compute the norms and their sensitivities when the frequency response matrix depends on \(\omega \) are in order. The scope here is to show how these norms can be computed using, for example, Matlab, whereas details concerning the algorithms themselves are beyond the scopes of this paper and may be found in Bruisma and Steinbuch (1990) among others.
5.4.1 On the numerical computation of \(\vert \vert {{{\varvec{G}}}}(i\omega ,{{{\varvec{p}}}})\vert \vert \)
Computing any of the three norms of \({{{\varvec{G}}}}(i\omega ;{{{\varvec{p}}}})\) (for fixed \({{\varvec{p}}}\)) represents a formidable computational task. The \(H_{\infty }\) norm is by far the one that has received more attention by the scientific community, mainly because of its relevance in the framework of robust control of closedloop systems (Francis 1987). The Matlab function norm (or better its version made available in the addon sss Toolbox (MORLab 2017) that works on sparse matrices) may be used for this purpose: provided as inputs a suitable version of the transfer function \({{\varvec{G}}}\) and the flag \(\texttt {inf}\), the function norm returns the \(H_{\infty }\)norm of \({{\varvec{G}}}\) and the frequency at which the norm is attained. The latter frequency is needed to compute the sensitivities as shown below. Using the same function \(\texttt {norm}\) with the flag 2, the Frobenius norm is retrieved. However, when the system size is \(10^5\) or more as is the case of the examples below, all available norm functions become dramatically slow and the very many calls required to achieve convergence within an optimization session make their usage not convenient if not impractical. The way out adopted for the simulations to come is a suboptimal strategy described below that applies to the Nuclear norm as well for which ad hoc methods are not available.
5.4.2 A viable suboptimal approach for computing the \(H_{\infty }\) and the Nuclear norms of a large scale dynamic system
Given a dynamic system with transfer matrix \({{{\varvec{G}}}}(i\omega )\), the proposed method for a suboptimal computation of \(\vert \vert {{{\varvec{G}}}}(i\omega )\vert \vert _{\infty }\) and \(\vert \vert {{{\varvec{G}}}}(i\omega )\vert \vert _{N}\) works as follows:

1.
the frequency range of interest, say \(I_{\omega }=(\omega _1,\omega _2)\), is determined and sampled (uniformly or not);

2.
a call to the Matlab function sigma is made that returns all the singular values of the dynamic system for all frequencies in \(I_{\omega }\);

3.
\(\vert \vert {{{\varvec{G}}}}(i\omega )\vert \vert _{\infty }\) and \(\vert \vert {{{\varvec{G}}}}(i\omega )\vert \vert _{N}\) are, respectively, computed as follows:
$$\begin{aligned}{} & {} \vert \vert {{{\varvec{G}}}}\vert \vert _{\infty } = \max _{\omega \in {I_{\omega }}} \sigma _1(\omega ),\\{} & {} \vert \vert {{{\varvec{G}}}}\vert \vert _{N} = \max _{\omega \in {I_{\omega }}} \left[ \sigma _1(\omega )+\sigma _2(\omega )+ \ldots \sigma _r(\omega )\right] . \end{aligned}$$
The method is only suboptimal in that the first singular value and the sum of all of them might assume larger values at frequency points that do not belong to the set \(I_{\omega }\), especially if the adopted partition of the frequency axis is a coarse one. One may of course refine the approach using an adaptive sampling strategy that would allow a closer and closer computation of the actual value of the norm. For the sake of this paper, this option is not however exploited but is left for nearfuture extensions.
5.4.3 On the computation of the sensitivity of \(\vert \vert {{{\varvec{G}}}}(i\omega ,{{{\varvec{p}}}})\vert \vert \)
If one compares the static and dynamic definitions of \({{\varvec{G}}}\) that are, respectively, given in Eqs. (12)\(_2\) and (46)\(_2\), it is straightforward to realize that the static sensitivity formulas in (15) and (16) still hold true in the dynamic case provided that

\({{\varvec{K}}}\) is substituted by \(i\omega {{{\varvec{E}}}}{{{\varvec{A}}}}\);

in such formulas, \(\omega \) is no longer a variable but takes on the value at which the norm is attained.
6 Numerical results
A few representative numerical results are presented hereafter that are cast in the framework of Sects. 3 and 5 for the static and dynamic cases, respectively.
6.1 Software and third party addons
The codes with which all the numerical results were obtained are written in Matlab. The full code that solves the static problem is presented in online Appendix 1 and requires the Matlab implementation of the Method of Moving Asymptotes (MMA) made available by its creator Krister Svanberg, Svanberg (1987). The following addons were used for the dynamic code:

Sparse dynamic models (state space and/or transfer functions) are not handled in plain Matlab. The sss Toolbox (MORLab 2017) allows this useful option and extends to sparse systems nearly all functions that require full storage in Matlab;

Fast matrix computations are a prerequisite of the proposed code. The Matrix Equation Sparse Solver (MM.E.S.S) Toolbox (Saak et al. 2022) is an ideal tool in this respect, e.g., for solving the generalized matrix Lyapunov Equation (41).
6.2 Problem 1Statics
6.2.1 Preliminary considerations
The four possible formulations (SISO, MISO, SIMO, and MIMO) are exploited along with the three proposed norms (2, Nuclear and Frobenius). It should be outlined that in the first three cases (SISO, MISO, and SIMO) \(r=1\), i.e., a single singular value is nontrivial so that the three norms happen to be the same and so do the relevant optimal topologies. Therefore, for each of the cases SISO, MISO, and SIMO a single optimal topology shall be shown that is generated using any of the three norms. In the MIMO case, though, two singular values are nontrivial and therefore the optimal designs do depend on the norm being used. Therefore, for the latter MIMO case each design is presented.
6.2.2 General data
The geometry and the loads of the static topology optimization problem are shown in Fig. 3. Thanks to the symmetry of the structure the halfmodel in Fig. 3 is used in the computations using the following numerical data:

Young modulus: \(E_0=1\), \(E_{\min }=10^{9}\),

Poisson ratio: \(\nu = 0.3\),

Number of elements in vertical (Y)direction: \(2^6\);

Number of elements in horizontal (X)direction: \(3\times 2^6\);

Side length: \(L=2^6\) (by this choice a uniform mesh of square elements of unit size is generated);

\(P=Q=1\) (the load time dependence in Fig. 3 is for use in the dynamic example below);

Volume fraction = 0.5;

Filter type: density, see Andreassen et al. (2011);

SIMP penalization factor: 3.
6.2.3 SISO formulation
Using a SISO formulation the input is given by the two forces P and Q that belong to the same load case and the output is the overall compliance \({\mathscr {C}}\). As shown in Table 1, the norms at convergence coincide (as they should), whereas the computational times do not. The CPU time is limited and smaller than two minutes in all cases, see the convergence curves in Fig. 4. The optimal topology is shown in Fig. 5 that is the same as the one given by the 88line code by Sigmund and coworkers Andreassen et al. (2011). This does not come as a surprise since the problem being solved is the same, even though the underlying formulation is different. As for the input and output plant directions, in the case of a SISO representation both \({{\varvec{V}}}\) and \({{\varvec{U}}}\) degenerate to the (scalar) unity, whereas the singular value is the norm itself.
6.2.4 MISO formulation
In the MISO formulation, the two loads P and Q are allowed to vary independently of each other within two different load cases. However, a single output compliance is considered that is the sum of the two compliances. Table 2 shows norm values and CPU times needed to perform the computations. The convergence curves are shown in Fig. 10 that exhibits a “nearly” monotonic convergence for all the three norms. The optimal topology (shared by all the three norms) is shown in Fig. 7. A look at the topologies in Figs. 5 and 7 shows that, though similar, the two designs are different. One may wonder whether this represents a violation of the superposition principle according to which as long as the response is linear the output of the sum (\({\mathscr {C}}\) due to P and Q acting upon the structure simultaneously) is the sum of the outputs (\({\mathscr {C}}={\mathscr {C}}_P + {\mathscr {C}}_Q\)). Of course, no violations, since the structure is not given but being defined iteratively, the updates on the design variables at each iteration need not to be the same and so are the final designs (Fig. 6) .
The input plant direction is given by the singular input vector at convergence that reads
However, for MISO systems, the concept of plant direction is not as important as one may show that the gain neither depends on the input magnitude nor on its direction (Skogestad and Postlethwaite 1996), i.e., \({{\varvec{V}}}\). As shown below, the concept of input direction becomes conversely crucial in the case of MIMO systems.
6.2.5 SIMO formulation
In the SIMO formulation, the two forces P and Q belong to the same load case but the overall compliance is split to form a 2D output vector \({{\varvec{z}}}= \left[ {\mathscr {C}}_1 \;\; {\mathscr {C}}_2\right] ^T\). Table 3 shows norm values and CPU time needed to achieve convergence.
Figures 8 and 9 show the convergence paths for the three norms and the optimal topology, respectively.
The optimal topology happens to be the same as the MISO case and interestingly enough the singular output vector reads
that is the same as the input vector of the SIMO case.
6.2.6 MIMO formulation
As anticipated, the MIMO case is the more general one in that not only are the two forces P and Q free to vary independently of each other within two load cases, but also each compliance \({\mathscr {C}}_P\) and \({\mathscr {C}}_Q\) represents an entry of the 2D output vector \({{{\varvec{z}}}}\). The concepts of plant directions, orthogonality of input and output singular vectors, and singular values seen as plant gains assume the deepest meaning in the MIMO case. Norm values and CPU time needed to achieve convergence are displayed in Table 4.
The optimal topologies obtained using the three norms are shown in Fig. 11. For the sake of completeness, Fig. 12 shows the optimal topology one gets using Sigmund’s 88line code with the multiload option. The four designs are similar but different being based on different optimality conditions. The triples \(({{{\varvec{V}}}},{{{\varvec{U}}}},{{\varvec{\Sigma }}})\) are reported next for the four designs at convergence:

2Norm
$$\begin{aligned} {{\varvec{V}}}= \left[ \begin{array}{cc} 0.755 &{} 0.666\\ 0.666 &{} 0.755 \end{array} \right] , \;\; {{\varvec{U}}}= \left[ \begin{array}{cc} 0.755 &{} 0.666\\ 0.666 &{} 0.755 \end{array} \right] \end{aligned}$$$$\begin{aligned} {\varvec{\Sigma }}= \left[ \begin{array}{cc} 94.16 &{} 0\\ 0 &{} 54.72 \end{array} \right] \end{aligned}$$(49) 
Nuclear norm
$$\begin{aligned} {{\varvec{V}}}= \left[ \begin{array}{cc} 0.784 &{} 0.621\\ 0.621 &{} 0.784 \end{array} \right] , \;\; {{\varvec{U}}}= \left[ \begin{array}{cc} 0.784 &{} 0.621\\ 0.621 &{} 0.784 \end{array} \right] \end{aligned}$$$$\begin{aligned} {\varvec{\Sigma }}= \left[ \begin{array}{cc} 98.92 &{} 0\\ 0 &{} 38.22 \end{array} \right] \end{aligned}$$(50) 
Frobenius norm
$$\begin{aligned} {{\varvec{V}}}= \left[ \begin{array}{cc} 0.771 &{} 0.636\\ 0.636 &{} 0.771 \end{array} \right] , \;\; {{\varvec{U}}}= \left[ \begin{array}{cc} 0.771 &{} 0.636\\ 0.636 &{} 0.771 \end{array} \right] \end{aligned}$$$$\begin{aligned} {\varvec{\Sigma }}= \left[ \begin{array}{cc} 96.81 &{} 0\\ 0 &{} 41.57 \end{array} \right] \end{aligned}$$(51) 
88line Sigmund’s code
$$\begin{aligned} {{\varvec{V}}}= \left[ \begin{array}{cc} 0.786 &{} 0.618\\ 0.618 &{} 0.786 \end{array} \right] , \;\; {{\varvec{U}}}= \left[ \begin{array}{cc} 0.786 &{} 0.618\\ 0.618 &{} 0.786 \end{array} \right] \end{aligned}$$$$\begin{aligned} {\varvec{\Sigma }}= \left[ \begin{array}{cc} 100.28 &{} 0\\ 0 &{} 38.06 \end{array} \right] \end{aligned}$$(52)
As for the dominating plant direction, it is important to highlight that the first input singular vector \({{\varvec{v}}}_1\) (first column of \({{\varvec{V}}}\) in Eqs. (49), (50), (51), and (52)) has two components that are opposite in sign and share a similar amplitude. This was expected because of the cantilevered nature of the beam and the position of the two loads (P and Q, respectively, inside and outside the beam span). As for the performance of the proposed designs, an insight may be gathered by looking at Table 5 that grades the presented designs in terms of the numerical values of the adopted norms. The following considerations are worth being made:

as expected each design wins its own competition, i.e., any norm is minimized by the formulation that explicitly aimed at its minimization (the relevant values are written in bold on the diagonal of Table 5);

minimizing the 2norm, i.e., the maximum gain \(\sigma _1\) of the system in the direction of the first input and output singular vectors, causes a high penalization on the other plant directions. One may in fact see that for the three cases Nuclear, Frobenius, and Sigmund, the second (and last) singular value is, respectively, equal to 38.22, 41.57, and 38.06, i.e., values that are smaller than half the first gain \(\sigma _1\). Not so for the 2norm case for which \(\sigma _2=54.72\), i.e., a remarkably larger value. As a general guideline, the lesson learned is that using a norm that involves the maximum singular value only is computationally more efficient and inherently leads to the reduction of the maximum gain (which is an amazing result). However, neglecting the effect of smaller singular values may lead to a system response that is poorer overall, especially when \(\sigma _2\) is close to \(\sigma _1\);

for each of the four designs, a measure of overall performance (the smaller the better) may be computed as the SRSS (square root of the sum of the squares) of the differences between scored norm values and best norm values (eventually scored by other approaches). One gets the results shown in Table 6 that again shows that the 2norm is an extreme one: the maximum gain is reduced the most among all possible design choices but the price to be paid is a weaker behavior with respect to other possible merit functions. Eventually, Sigmund’s code design (that is not based on an explicit norm minimization as other designs do) is shown to be quite a robust one in that it performs nicely with respect to all the proposed norms.
6.3 Problem 2Statics  HighRise Building
6.3.1 Preliminary considerations
The fivestory highrise building shown in Fig. 13 is investigated next. The objective is to arrive at an optimal bracing structure capable to withstand horizontal environmental actions. This kind of application of topology optimization has been investigated for some fifteen years (see Beghini et al. 2012 as one of the most successful strategies within this framework). This problem is properly suited to test the proposed approach in that its multioutput version is a five outputs challenging one. The following four different designs are pursued:

1.
SingleInput SingleOutput (SISO);

2.
MultiInput MultiOutput (MIMO), 2norm;

3.
MultiInput MultiOutput (MIMO), Nuclear norm;

4.
MultiInput MultiOutput (MIMO), Frobenius norm.
The main geometry, mesh, and mechanical parameters are as follows:

number of stories = 5;

number of elements in horizontal direction = \(2^6=64\);

number of elements per story in vertical direction = floor(\(1.2\times 2^6)=77\);

maximum volume fraction = 0.40;

SIMP exponent = 3.0;

filter minimum length = 2.25;

filter type: density.
Convergence curves for all the designs are displayed in Fig. 14 that show a steep monotonic behavior of the MMAbased approach. All the optimal topologies are shown in Fig. 15. The SISObased bracing system is shown to be quite a stiff one at the base (and is so up to roughly midrise). MIMO designs are in general characterized by a more homogeneous material distribution as far as the thickness of the diagonal braced is concerned. From a manufacturability standpoint, the MIMO design using a nuclear normbased goal function appears to be superior with respect to other designs in that a lower and, so to speak, “cleaner” bracing layout shows up. The performance of three MIMO designs is assessed in Table 7 where all the three norms are computed.
6.4 Problem 3  Dynamics  MIMO Formulation
6.4.1 Preliminary considerations
Attention is focused on the MIMO formulation only that is the one that exhibits a more general and structurally richer behavior. As for the norms, the \(H_{\infty }\) and the Nuclear norms are considered since they depend on local evaluations of the singular values in such a way that the suboptimal approach introduced in Sect. 5.4.2 may be used. On the other side, though conceptually applicable, the usage of the \(H_2\)norm has not been exploited because of the prohibitive computational cost of the relevant sensitivities, no matter the function or approximation being used.
6.4.2 General data
Geometry and loads are the same as Problem 1. As for the Young modulus \(E_0=1000\) and \(E_{\min }=10^{9}\) are used, whereas the mass density parameters are chosen as \(\rho _0=10^{3}\) and \(\rho _{\min }=10^{6}\) and a Rayleigh damping matrix is introduced that reads
The number of elements in vertical and horizontal directions are given as \(2^5\) and \(3\times 2^5\), respectively.
6.4.3 \(H_{\infty }\)norm formulation
The optimal topology one gets by minimizing the \(H_{\infty }\)norm of the MIMO transfer matrix \({{{\varvec{G}}}}(i\omega )\) is shown in Fig. 16, whereas Fig. 17 shows the path of the MMA scheme toward convergence. The chattering pattern displayed by the convergence curve is not due to numerical difficulties encountered along the path by the optimization routine. It is conversely due to the fact that, as explained below in more detail, the first singular value \(\sigma _1(\omega )\) exhibits two very close points that are competing to realize the overall maximum, i.e., the \(H_{\infty }\)norm. The design switches back and forth between the two points along an overall converging path. Eventually the two designs coalesce and convergence is achieved.
Figures 18 and 19 shade some light on the complexity of the dynamic response of a MultiInput MultiOutput system (even the simplest of such type, i.e., a 2input 2output structure as the one under investigation) and allow a deeper and rationale understanding of the overall optimization process. Remarkable features emerging from Fig. 18 are as follows:

Toward the evaluation of \(\vert \vert {{{\varvec{G}}}}(i\omega )\vert \vert _{\infty }\), i.e., \(\sup _{\omega }\sigma _{1}(\omega )\), a competition between two frequencies takes place to assess the one at which the norm itself is attained. This should be considered a general outcome of minimizing the \(H_{\infty }\)norm. In fact such an approach is focused on minimizing the supremum of \(\sigma _1\) (the maximum of the first singular value) over the frequency axis. Design changes are therefore sharply localized in the frequency range where the current maximum is being attained, whereas no care is taken of the dynamic response at frequencies far apart at which the magnitude of the response is allowed to increase. When such an increase leads to a response amplitude that falls closer and closer to the one where the \(H_{\infty }\)norm is currently attained the competition starts. In general, one can conclude that designs based on the minimization of the \(H_{\infty }\)norm are likely to be multimodal ones as a result of this inherent feature;

it is well known that classical eigenvalue optimization may be affected by the eigenvalue crossing phenomenon, i.e., a crossing between different eigenvalue trajectories in the design space that leads to the annoying nondifferentiability of the \(\min \max \) eigenvalue problem. A similar behavior shows up in Fig. 18 where a singular value crossing takes place at 4.0 rad/s. Such crossing takes place at a minimum point so that the proposed procedure is not affected by the phenomenon. However this may not always be the case and an issue may arise in general so that further investigations in the near future are planned on this topic.
Switching to the amplitude of the frequency response, reference is made to Fig. 19 where the points in Table 8 are highlighted. First of all one should observe that the two points \(P_{12}\) and \(P_{21}\) govern the mutual compliance, i.e., the (amplitude of the) displacement of B when the loaded point is A and viceversa. The fact that \(P_{12}=P_{21}\) is a version of the Maxwell–Betti reciprocal work theorem applied to the dynamic case in a harmonic load framework. Interestingly enough, not only are the two amplitudes the same, but also the frequencies at which maximum points are attained coincide. As for the overall system dynamics, the singular value crossing at \(\omega =4\) rad/s and the competition between the two maximum points find their motivation and confirmation in Fig. 19 where one may see that the amplitude of the compliance of the two loads (points \(P_{11}\) and \(P_{22}\)) is quite similar as are the relevant frequencies \(\omega _{P_{11}}=3.76\) rad/s and \(\omega _{P_{22}}=4.49\) rad/s. From a quantitative point of view, the singular value decomposition of \({{{\varvec{G}}}}(i\omega )\) for all the frequencies above read as follows:

1.
\(\omega =\omega _{P_{11}}=3.76\) rad/s
$$\begin{aligned} {{{\varvec{U}}}}_{11}= & {} \left[ \begin{array}{ccc} 0.058 + 0.940i &{} \; &{} 0.198 + 0.271i\\ 0.119  0.313i &{} \; &{}0.7556 + 0.563i \end{array} \right] \end{aligned}$$(54)$$\begin{aligned} {{\varvec{\Sigma }}}_{11}= & {} \left[ \begin{array}{ccc} 0.695 &{} \; &{} 0\\ 0 &{} \; &{} 0.286 \end{array} \right] \end{aligned}$$(55)$$\begin{aligned} {{{\varvec{V}}}}_{11}= & {} \left[ \begin{array}{ccc} 0.942 + 0.000i &{} \; &{} 0.335 + 0.000i\\ 0.320  0.099i &{} \; &{} 0.900 + 0.278i \end{array} \right] \end{aligned}$$(56) 
2.
\(\omega =\omega _{P_{22}}=4.49\) rad/s
$$\begin{aligned} {{{\varvec{U}}}}_{22}= & {} \left[ \begin{array}{ccc} 0.059  0.045i &{} \; &{} 0.914+ 0.391i\\ 0.878  0.473i &{} \; &{} 0.001 + 0.074i \end{array} \right] \end{aligned}$$(57)$$\begin{aligned} {{\varvec{\Sigma }}}_{22}= & {} \left[ \begin{array}{ccc} 0.6932 &{} \; &{} 0\\ 0 &{} \; &{} 0.165 \end{array} \right] \end{aligned}$$(58)$$\begin{aligned} {{{\varvec{V}}}}_{22}= & {} \left[ \begin{array}{ccc} 0.175 + 0.000i &{} \; &{} 0.985+ 0.000i\\ 0.932  0.319i &{} \; &{} 0.166  0.057i \end{array} \right] \end{aligned}$$(59) 
3.
\(\omega =\omega _{P_{12}}=\omega =\omega _{P_{21}}=3.77\) rad/s.
$$\begin{aligned} {{{\varvec{U}}}}_{12}= & {} \left[ \begin{array}{ccc} 0.017 + 0.942i &{} \; &{} 0.190 + 0.276i\\ 0.109  0.317i &{} \; &{} 0.747 + 0.5748i \end{array} \right] \end{aligned},$$(60)$$\begin{aligned} {{\varvec{\Sigma }}}_{12}= & {} \left[ \begin{array}{ccc} 0.694 &{} \; &{} 0\\ 0 &{} \; &{} 0.289 \end{array} \right] \end{aligned},$$(61)$$\begin{aligned} {{{\varvec{V}}}}_{12}= & {} \left[ \begin{array}{ccc} 0.942 + 0.000i &{} \; &{} 0.335 + 0.000i\\ 0.319  0.103i &{} \; &{}0.897 + 0.289i \end{array} \right] \end{aligned}.$$(62)
6.4.4 Nuclear norm formulation
The optimal topology one gets by minimizing the Nuclear norm of the MIMO transfer function \({{{\varvec{G}}}}(i\omega )\) and the convergence curve are shown in Figs. 20 and 21, respectively. In Fig. 21 no oscillations show up and this is a first indicator of a structural response dominated by a single mode. This is confirmed by the singular value curves displayed in Fig. 22 wherein an innocuous lowamplitude crossing takes place at about \(\omega =5\) rad/s. In fact the second gain (maximum of the second singular value) is smaller that half the larger gain that takes place at \(\omega =3.98\) rad/s that therefore governs the entire system dynamics.
Figure 22 shows the variations of the singular values \(\sigma _1(\omega )\) and \(\sigma _2(\omega )\) and their sum \(\sigma _1(\omega )+\sigma _2(\omega )\) with respect to the frequency \(\omega \).
Outstanding features emerging from Fig. 22 are as follows:

the Nuclear norm, i.e., the maximum value of \(\sigma _1(\omega )+\sigma _2(\omega )\) is 0.8789 and is attained at \(\omega =3.98\). Using a goal function that depends on both the singular values causes design updates to spread their effect over a wider frequency range, at least as wide as \((\omega _{P_{11}},\omega _{P_{22}})\), see also Table 9. This seems to be the main reason why the amplitude of the second singular value is kept small and a singlemode design is ended up with, unlike the \(H_{\infty }\)normbased design that was a multimodal one;

Not only is the dynamic response dominated by a single mode but also a similar behavior is exhibited by the two inputs. Upon comparing the upper and lower amplitude curves in Fig. 23, one concludes that the plant is dominated by the first input, i.e., P, whereas the second input Q has a nearly negligible effect.
To summarize with, (at least for the problem at hand) using the nuclear norm leads to a singlemode design wherein one load determines much of the structural response, whereas the other is nearly annihilated by the design itself. These features are not shared by the \(H_{\infty }\)normbased design that puts all its efforts against the overall peak response.
The single modality of the structural response is further confirmed by the singular value decomposition of \({{{\varvec{G}}}}\) for \(\omega =\omega _{P_{11}}\), \(\omega =\omega _{P_{22}}\), and \(\omega =\omega _{P_{12}}\). In all cases, the second (and last) gain \(\sigma _2\) is much smaller than the largest gain \(\sigma _1\) as shown below:

1.
\(\omega =\omega _{P_{11}}=3.97\) rad/s
$$\begin{aligned} {{{\varvec{U}}}}_{11}= & {} \left[ \begin{array}{ccc} 0.104 + 0.837i &{} \; 0.519 + 0.140i\\ 0.091  0.5300i &{} \;0.824 + 0.182i \end{array} \right] \end{aligned},$$(63)$$\begin{aligned} {{\varvec{\Sigma }}}_{11}= & {} \left[ \begin{array}{ccc} 0.645 &{} \; &{} 0\\ 0 &{} \; &{} 0.087 \end{array} \right] \end{aligned},$$(64)$$\begin{aligned} {{{\varvec{V}}}}_{11}= & {} \left[ \begin{array}{ccc} 0.843 + 0.000i &{} \;0.537 + 0.000i\\ 0.537  0.025i &{} \;0.843 + 0.040i \end{array} \right] \end{aligned},$$(65) 
2.
\(\omega =\omega _{P_{22}}=4.01\) rad/s
$$\begin{aligned} {{{\varvec{U}}}}_{22}= & {} \left[ \begin{array}{ccc} 0.130 + 0.279i &{} \; 0.839 + 0.449i\\ 0.217 + 0.927i &{} \;0.295  0.087i \end{array} \right] \end{aligned},$$(66)$$\begin{aligned} {{\varvec{\Sigma }}}_{22}= & {} \left[ \begin{array}{ccc} 0.274 &{} \; &{} 0\\ 0 &{} \; &{} 0.034 \end{array} \right] \end{aligned},$$(67)$$\begin{aligned} {{{\varvec{V}}}}_{22}= & {} \left[ \begin{array}{ccc} 0.307 + 0.000i &{} \; 0.952 + 0.000i\\ 0.931  0.195i &{} \; 0.301 + 0.063i \end{array} \right] \end{aligned},$$(68) 
3.
\(\omega =\omega _{P_{12}}=\omega =\omega _{P_{21}}=3.97,\) rad/s.
$$\begin{aligned} {{{\varvec{U}}}}_{12}= & {} \left[ \begin{array}{ccc} 0.026 + 0.845i &{} \; 0.515 + 0.144i\\ 0.010  0.535i &{} \; 0.824 + 0.187i \end{array} \right] \end{aligned},$$(69)$$\begin{aligned} {{\varvec{\Sigma }}}_{12}= & {} \left[ \begin{array}{ccc} 0.641 &{} \; &{} 0\\ 0 &{} \; &{} 0.088 \end{array} \right] \end{aligned},$$(70)$$\begin{aligned} {{{\varvec{V}}}}_{12}= & {} \left[ \begin{array}{ccc} 0.845+ 0.000i &{} \; 0.535 + 0.000i\\ 0.534  0.027i &{} \; 0.844 + 0.043i \end{array} \right] \end{aligned}.$$(71)
7 Conclusions and need for further investigations
A novel unifying approach has been presented that allows to handle static and dynamic topology optimization using the very same formulation (and computer code). The singular value decomposition of the input–output transfer matrix \({{{\varvec{G}}}}\) along with the selection of suitable matrix norms (defined uniquely in terms of its singular values) to be used as goal functions represent the key ingredients of the proposed approach wherein static and dynamic frameworks are identical. Computing \({{{\varvec{G}}}}\), its norms and its sensitivities in the static and dynamic cases are the main focus of the paper that is completed by indepth numerical investigations wherein general features of the resulting designs are highlighted. The full Matlab code that solves the static problem is provided in online Appendix 1 and may be readily extended to cover the dynamic case by properly implementing the details given in Sect. 5.
Ongoing investigations are concerned with the following topics that are mainly focused on the improvement of the dynamic topology optimization approach:

The number of states of the dynamic systems investigated herein is about twenty thousands, whereas just few poles govern the dynamic response of the system. Using reduced order models seems therefore the more natural way to cope with dynamic accuracy and reduction of CPU time;

Using reduced order models opens the way to the potential issue of computing the sensitivities. In fact reduced order models are in general black boxes that do not allow design variables at the element level to hold their physical meaning. A possible way out is the adoption of parametric reduced order models that are currently being investigated;

The \(H_{\infty }\)norm approach was shown to lead to multimodal solutions characterized by a competition between candidate design points at different frequencies. The numerical minimization scheme is therefore likely to be trapped in between the two points exhibiting an overall chattering behavior. The adoption of proper filters that allow a fast choice among the two points is the remedy being exploited to solve such problem;

There are such applications as, for example, building engineering wherein structures should be designed to withstand static and dynamic load combinations at the same time. The former are often determined by permanent and variable vertical loads, whereas earthquakes represent the driving loads of the latter. It is therefore planned to extend the proposed approach using goal functions that are convex combinations of the purely static and dynamic ones;

Finally a few words of the robustness issue (both in statics and dynamics). It is planned to adopt some nonprobabilistic uncertainty models similar to what is done in the framework of robust control of uncertain systems. By doing so, one operates on a class of systems (and not on a single one) in a worstcase scenario framework;
To conclude with, it is planned to use some Application Programming Interface (API) to link the Matlab code to a general purpose finite element software so as to apply the proposed approach to (nearly) realworld structural and industrial applications.
References
Andreassen Erik, Clausen Anders, Schevenels Mattias, Lazarov Boyan S, Sigmund Ole (2011) Efficient topology optimization in matlab using 88 lines of code. Struct Multidisc Optim 43:1–16
Beghini A, Baker WF, Paulino GH (2012) Topology optimization for braced frames: Combining continuum and beam/column elements. Eng Struct 37:106–124
Bendsøe MP, Sigmund O (1999) Material interpolation schemes in topology optimization. Arch Appl Mech 69(9–10):635–654
Bendsøe MP, Sigmund O (2003) Topology optimization: Theory, methods and applications. Springer, Berlin
Bruggi M, Duysinx P (2012) Topology optimization for minimum weight with compliance and stress constraints. Struct Multidisc Optim 46:369–384
Bruggi M, Venini P (2008) A mixed fem approach to stressconstrained topology optimization. Int. J. Numer. Methods Engrg 73:1693–1714
Bruisma NA, Steinbuch M (1990) A fast algorithm to compute the \(h_{\infty }\)norm of a transfer function matrix. System and Control Letters 14:287–293
Brunton SL, Kutz JN (2019) DataDriven Science and Engineering  Machine Learning. Dynamical Systems and Control. Cambrige University Press, Cambridge
Collet M, Bruggi M, Duysinx P (2017) Topology optimization for minimum weight with compliance and simplified nominal stress constraints for fatigue resistance. Struct Multidisc Optim 55(3):7839–855
Emmendoerfter H Jr, Maute K, Fancello EA, Nelli Silva EC (2022) A level setbased optimized design of multimaterial compliant mechanisms considering stress constraints. Comput Methods Appl Mech Eng 391:114556
Ferrari F, Sigmund O (2020) A new generation 99 line matlab code for compliance topology optimization and its extension to 3d. Struct Multidisc Optim 62:2211–2228
Ferrari F, Sigmund O (2020) Towards solving largescale topology optimization problems with buckling constraints at the cost of linear analyses. Comput Methods Appl Mech Eng 363:112911
Francis BA (1987) A Course in \(H_{\infty }\) Control Theory, vol 88. SpringerVerlag, Berlin, Heidelberg
GersborgHansen A, Bendsøe MP, Sigmund O (2006) Topology optimization of heat conduction problems using the finite volume method. Struct Multidisc Optim 31:251–259
GiraldoLondono O, Paulino GH (2021) Polydyna: a matlab implementation for topology optimization of structures subjected to dynamic loads. Struct Multidisc Optim 64:957–990
GiraldoLondono O, Russ JB, Aguiló MA, Paulino GH (2022) Limiting the first principal stress in topology optimization: a local and consistent approach. Structural and Multidisciplinary Optimization, 65
Jensen JS, Nakshatrala PB, Tortorelli DA (2014) On the consistency of adjoint sensitivity analysis for structural optimization of linear dynamic problems. Struct Multidisc Optim 49:831–837
Liu H, Zhang W, Gao T (2015) A comparative study of dynamic analysis methods for structural topology optimization under harmonic force excitations. Struct Multidisc Optim 51:1321–1333
Min S, Kikuchi N, Park YC, Kim S, Chang S (1999) Optimal topology design of structures under dynamic loads. Struct Multidisc Optim 17:208–218
MORLab @ Chair of Automatic Control. sss Toolbox version 2.0. TUM School of Engineering and Design, Technical University of Munich, (2017)
Olhoff N, Du J (2016) Generalized incremental frequency method for topological design of continuum structures for minimum dynamic compliance subject to forced vibration at a prescribed low or high value of the excitation frequency. Struct Multidisc Optim 54:1113–1141
Saak J, Köhler M, Benner P (February 2022) MM.E.S.S.2.1 – the matrix equations sparse solvers library. see also: https://www.mpimagdeburg.mpg.de/projects/mess
Salazar de Troya MA, Tortorelli DA (2018) Adaptive mesh refinement in stressconstrained topology optimization. Struct Multidisc Optim 58:2369–2386
Sigmund O, Maute K (2013) Topology optimization approaches a comparative review. Struct Multidisc Optim 48:1031–1055
Skogestad S, Postlethwaite I (1996) Multivariable Feedback Control  Analysis and Design. John Wiley and Sons, Baffins Lane, Chichester
Strang G (2019) Linear Algebra and Learning from Data. Cambridge Press, Wellesley, Wellesley
Svanberg K (1987) The method of moving asymptotes  a new method for structural optimization. Int J Numer Meth Eng 24:359–373
Venini P, Ceresa P (2018) A rational \({H}_{\infty }\)normbased approach for the optimal design of seismically excited reinforced concrete frames. Earthquake Eng Struct Dynam 47:1522–1543
Yang X, Li Y (2014) Structural topology optimization of dynamic compliance at resonance frequency in thermal environments. Struct Multidisc Optim 49:81–91
Acknowledgements
This research is supported in part by the Grant of the Municipality of Pavia No. F739 (Advanced methods for seismic risk index evaluation).
Funding
Open access funding provided by Università degli Studi di Pavia within the CRUICARE Agreement.
Author information
Authors and Affiliations
Corresponding author
Ethics declarations
Conflict of interest
On behalf of all authors, the corresponding author states that there is no conflict of interest.
Replication of results
The full Matlab code solving the static topology optimization problem is reported in online Appendix 1. The user may straightforwardly extend the static code to cover the dynamic case following the algorithmic and computational indications given in Sect. 5.
Additional information
Responsible Editor: Jianbin Du
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Appendix A Matlab code
Appendix A Matlab code
1.1 A.1 Brief explanation of the code
Other than the method of moving asymptotes for which reference is made to Svanberg (1987), the code consists of four files that are briefly commented on below. In principle, only lines where the user is supposed to provide an input (via a specific choice of a proper parameter) are commented. The code itself is thoroughly commented to ease the use and the overall understanding of the reader. Furthermore, data structures and the like are based on (Andreassen et al. 2011) to which the reader and the user are addressed for further details.
1.1.1 A.1.1 main

Lines 1518: ITYPE: a single line should be left uncommented to select the problem under investigation (SISO, MISO, SIMO, MIMO);

Lines 2022: INORM: a single line should be left uncommented to select the matrix norm to be used (2, Nuclear, Frobenius).
1.1.2 A.1.2 initialize_mma
This file and the following one are standard files that are needed to run the MMA Svanberg (1987). Parameters to be set by the user are as follows:

Line 25: maxoutit: maximum number of iterations of the MMA;

Line 26: kkttol: tolerance to exit the MMA.
1.1.3 A.1.3 start_mma
This file and the previous one are standard files that are needed to run the MMA Svanberg (1987). The file calls the function compliance_stat that returns goal function, constraints and relevant gradients. A verbose mode is set (but can be changed by the user) that at each iteration provides the following:

Line 32: current values of iteration, goal function and volume constraint;

Line 33: the current topology is plotted.
1.1.4 A.1.4 compliance_stat
This function is the core of the proposed approach. No action is expected to be taken by the user. However, a few comments are given below (in addition to the ones reported in the file itself).

Lines 1931: matrices \({{{\varvec{B}}}}\) and \({{{\varvec{C}}}}\) (respectively named Bstate and Cstate in the code) are computed once for all at the first iteration and boundary conditions applied;

Lines 3335: the stiffness matrix is updated;

Lines 3739: the factors \({{{\varvec{C}}}}{{{\varvec{K}}}}^{1}\) and \({{{\varvec{K}}}}^{1}{{{\varvec{B}}}}\) in Equation (16) are computed;

Lines 4149: the transfer matrix \({{{\varvec{G}}}}\) in Equation (11) is determined, its Singular Value Decomposition computed, Equation (2), and relevant singular values sorted in descending order (and consequently the associated left and right singular vectors);

Lines 5153: the factors \({{{\varvec{u}}}}_h^H{{{\varvec{C}}}}{{{\varvec{K}}}}^{1}\) and \({{{\varvec{K}}}}^{1}{{{\varvec{B}}}}{{\varvec{v}}}_h\) are computed as needed by plugging Equation (16) into Equation (17);

Lines 5564: the goal function is computed that is the norm \(\vert \vert {{{\varvec{G}}}}\vert \vert \) selected by the user via INORM;

Lines 6687: the gradient of the goal function is computed by plugging into the chain rule in Equation (18) the formulas in Equations (19) and (17). One should notice that the parfor command (parallel for) available in Matlab is used to speed up the computations;

Lines 89end: volume constraints are computed and relevant filters applied (see again (Andreassen et al. 2011)).
Rights and permissions
Open Access This article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article's Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article's Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://creativecommons.org/licenses/by/4.0/.
About this article
Cite this article
Venini, P., Pingaro, M. Static and dynamic topology optimization: an innovative unifying approach. Struct Multidisc Optim 66, 85 (2023). https://doi.org/10.1007/s00158023035286
Received:
Revised:
Accepted:
Published:
DOI: https://doi.org/10.1007/s00158023035286
Keywords
 Topology Optimization
 Statics
 Dynamics
 Singular Value Decomposition (SVD)
 Matlab