1 Introduction

Topology optimization is a powerful tool that enables engineers to enhance structural performance. Since the work by Bendsøe and Kikuchi N. (1988), topology optimization has rapidly evolved and been applied to design a variety of physical systems (Deaton and Grandhi 2014; Bendsoe and Sigmund 2013). Specifically, topological design methods based on the inverse homogenization approach by Sigmund (1994) have demonstrated the possibility to create novel composite materials with enhanced properties, by optimizing the material microstructure. Examples of these include linear elastic materials with negative Poisson’s ratio (Sigmund 1995), negative thermal expansion (Sigmund and Torquato 1997), and extreme bulk modulus (Huang et al. 2011), and also viscoelastic materials with extreme bulk modulus (Andreasen et al. 2014).

In the design of such architected composite materials, a common simplification in the formulation is to use linear elasticity, which implies that composite materials that exhibit irreversible processes and are exposed to large deformations cannot be designed. While linear assumptions suffice for many composite design optimization applications wherein the microstructure is subjected to moderate macroscopic strain levels, they fail to accurately model the microstructural material response when it is subjected to larger macroscopic strains. To model this microstructural response, nonlinear finite strain theory should be incorporated into the composite topology optimization.

The evaluation of the homogenized material properties becomes demanding when accounting for response nonlinearities, due to the need for iterative nonlinear analyses (Yvonnet et al. 2009). Incorporating nonlinear simulations into topology optimization problems is a formidable task. Even the efficient parallel programming computations, as presented in Nakshatrala et al. (2013), for the design of nonlinear elastic composites, and the model reduction technique computations, as presented in Fritzen et al. (2016), for designing multiscale elastoviscoplastic structures, remain computationally intensive tasks.

In the works by Wang et al. (2014) and Wallin and Tortorelli (2020), alternative nonlinear homogenization methods have been proposed to design architected materials. These homogenization methods use numerical tensile experiments for calculating the effective uniaxial material response and use topology optimization to achieve desired macroscopic properties. In this way, the computational effort required for the analysis is significantly reduced, since just a few desired properties are targeted.

Of the developed topology optimization methods, few consider structures exhibiting inelastic material response. Contributions incorporating small strain elastoplastic formulations include the work by Maute et al. (1998), where topology optimization is used to optimize structural ductility. Conceptual designs of energy absorbers for crashworthiness, modeled with 2D-beam elements, were established by Pedersen (2004). Protective systems with maximum energy dissipation for continuum structures subject to impact loading have also been designed by Nakshatrala and Tortorelli (2015), where a transient elastoplastic topology optimization formulation is used. Elastoplastic material modeling has further been used in Bogomolny and Amir (2012) for optimizing steel-reinforced concrete structures, in Kato et al. (2015) for optimizing composite structures for maximum energy absorption, and more recently in Wallin et al. (2016) for maximizing the energy absorbtion of structures under finite deformation. Also, in our previous paper (Ivarsson et al. 2018), we combine dynamic rate-dependent finite strain effects with topology optimization to design maximal energy absorbing structures. In the design of such energy absorbing structures, e.g., bumpers in automotive engineering, it may also be desirable to control the volume change, since devices that operate in confined spaces will be extremely stiff if the deformation is associated with a volume increase.

To date, most topology optimization frameworks that incorporate nonlinearities focus on macroscopic design; research on composite material design via inverse homogenization that incorporates inelastic constituents is scarce. Examples of such studies include the recent works by Chen et al. (2018) and Alberdi and Khandelwal (2019) which assume infinitesimal deformation. In this paper, we generate optimal topologies of periodic microstructures for maximum energy dissipation with possible prescribed zero contraction constraints under finite deformation. To do this, we incorporate the large strain isotropic hardening viscoplasticity constitutive model, proposed by Simo and Miehe (1992), into a topology optimization framework. Macroscopic nonlinear material properties are evaluated by numerical tensile and shear tests of a single unit cell that is subjected to periodic boundary conditions. Our framework builds upon the works of Ivarsson et al. (2018), as rate-dependent finite strain effects are included, but for simplicity, we neglect inertia. Contrary to our previous work, where structural design was considered, we here study microstructures optimized for maximum energy absorption. Thus, the present work allows each point in a macroscopic structure to be tailored to its specific loading rate, load path, and load magnitude it experiences. In particular, we investigate the influence of nonproportional loading and distortion constraints. Ultimately we quantify the optimization cost and constraint functions via the response from a finite strain viscoplastic boundary value problem which is solved using a nested Newton approach, wherein the momentum balance equation is coupled with local constitutive equations. We discretize the kinematics using a total Lagrangian formulation and use the backward Euler scheme to integrate the constitutive equations.

To formulate a well-posed topology optimization problem, we use restriction wherein we constrain the feature length scale in the volume fraction field by mollifying it via a periodic version of the Helmholtz partial differential equation (PDE) filter (Lazarov and Sigmund 2011). The optimization problem is solved by the method of moving asymptotes (MMA), which requires gradients to form the convex MMA approximation. For path-dependent material response, it is challenging to compute response sensitivities. This is because the sensitivities depend on the response history, as opposed to, e.g., elasticity, where they do not. To compute the gradients, we use the adjoint sensitivity analysis because the design variables in the optimization problem greatly outnumber the constraints. Several studies (Bogomolny and Amir 2012; Wallin et al. 2016; Zhang et al. 2017; Amir 2017; Ivarsson et al. 2018; Zhang and Khandelwal 2019) of topology optimization for path-dependent problems have successfully adopted the adjoint sensitivity recipe presented in Michaleris et al. (1994). This requires the evaluation and storage of the primal response trajectory, and the solution of a terminal-valued adjoint sensitivity problem. We implement this adjoint method to compute the sensitivities.

The remainder of this paper is organized as follows: In Section 2, we present the kinematics and governing mechanical balance equations. Section 3 summarizes the constitutive model and Section 4 presents the numerical solution procedure and the periodic boundary condition implementation. Section 5 describes the regularization and material interpolation schemes. This is followed by the optimization formulation and the sensitivity analysis given in Section 6. The paper is closed by presenting several numerical examples of optimized composite designs and drawing conclusions.

2 Preliminaries

For nonlinear kinematics, the current, i.e., deformed configuration Ω needs to be distinguished from the reference, i.e., undeformed configuration Ωo. The location of a material particle, which initially at time t = 0 is located at X ∈Ωo, is described by the smooth motion φ such that its position at time t > 0 is x = φ(X,t). The local deformation surrounding X is described by the deformation gradient F = oφ = 1 + ∇ou, where o is the gradient with respect to the material coordinates, X, and u = φX is the displacement field. The volumetric change is described by the Jacobian J = det(F) > 0, where the inequality ensures the mapping φ is locally unique. The local deformation is also described by the right Cauchy-Green deformation tensor C = FTF, and the Green-Lagrange strain tensor \(\boldsymbol {E} = \frac {1}{2}(\boldsymbol {C}-\boldsymbol {1})\). Since the constitutive model is formulated in an incremental format, we also introduce the spatial velocity gradient \(\boldsymbol {l} = \dot {\boldsymbol {F}}\boldsymbol {F}^{-1}\), where \(\dot {\boldsymbol {F}} = d\boldsymbol {F}/dt\).

In absence of body forces and inertia, the momentum balance laws, i.e., equilibrium equation is given by

$$ \boldsymbol{\nabla}_{o} \cdot \left( \boldsymbol{F}\boldsymbol{S} \right)=\boldsymbol{0} \qquad \text{in } {\Omega}_{o} , $$
(1)

where S is the symmetric second Piola-Kirchhoff stress tensor, related to the Cauchy stress σ via S = JF− 1σFT. However, when formulating the constitutive model, we will utilize the Kirchhoff stress τ that is connected to S and σ through τ = FSFT = Jσ.

The boundary conditions associated with (1) are

$$ \boldsymbol{FSN}_{o} = \bar{\boldsymbol{t}} \quad \text{on } \partial {\Omega}_{ot}, \quad \boldsymbol{u} = \bar{\boldsymbol{u}} \quad \text{on } \partial {\Omega}_{ou}, $$
(2)

where No is the outward unit normal vector to the boundary Ωo of the reference body Ωo and the prescribed traction \(\bar {\boldsymbol {t}}\) and displacement \(\bar {\boldsymbol {u}}\) are defined on the two complimentary parts of Ωo, Ωot and Ωou, respectively.

To derive the finite element formulation, we use the principal of virtual work, which can be stated as finding a smooth u that satisfies \(\boldsymbol {u} = \bar {\boldsymbol {u}}\) on Ωou and

$$ {R(\boldsymbol{u},\delta \boldsymbol{u}) := {\int}_{{\Omega}_{o}} \boldsymbol{S} : \delta \boldsymbol{E} \text{d}V - {\int}_{\partial{\Omega}_{ot}}\boldsymbol{\bar{t}}\cdot \delta \boldsymbol{u} \text{d}S = 0} $$
(3)

for all smooth admissible virtual displacements δu that equal zero on Ωou. The Lagrangian virtual strain δE, introduced in (3), is defined as \(\delta \boldsymbol {E} = \frac {1}{2} \left (\boldsymbol {F}^{T}\boldsymbol {\nabla }_{o}\delta \boldsymbol {u}+\right .\)\(\left .(\boldsymbol {\nabla }_{o}\delta \boldsymbol {u})^{T}\boldsymbol {F}\right )\).

3 Constitutive model

Following Simo and Miehe (1992) and Ivarsson et al. (2018), the material model is based on isotropic hyperelasticity and isotropic hardening viscoplasticity. For finite strains, the infinitesimal deformation theory’s additive split of the strain tensor is replaced by the finite deformation multiplicative split F = FeFvp, where Fe and Fvp are the elastic and viscoplastic parts, respectively.

The isotropic material response is modeled in terms of the left Cauchy-Green tensor be = Fe(Fe)T, and its isochoric part, \(\boldsymbol {\bar {b}}^{e}=(J^{e})^{-2/3}\boldsymbol {b}^{e}\), where Je = det(Fe).

The hyperelastic response is governed by the neo-Hookean strain energy function (see, e.g., Simo and Hughes (1998))

$$ {w^{e}(\boldsymbol{b}^{e}) = \frac{1}{4}\kappa\left( ({{} J^{e}}^{2} -1) - 2\ln({{}J^{e}}) \right) + \frac{1}{2}\mu\left( \text{tr}(\bar{\boldsymbol{b}}^{e}) - 3\right),} $$
(4)

where κ and μ are the bulk and shear moduli. Under the hyperelastic assumption, the Kirchhoff stress is obtained via τ = 2(we/be)be.

The rate-dependent evolution laws are obtained by maximizing the regularized dissipation

$$ \mathcal{D}= \dot{w}^{vp} - K\dot{\alpha} - \frac{1}{2\eta}\left< f\right>^{2} $$
(5)

where \(\dot {w}^{vp} = \boldsymbol {\tau }:\left [-\frac {1}{2}{\mathscr{L}}\boldsymbol {b}^{e}\boldsymbol {b}^{e-1} \right ]\) is the viscoplastic power per unit volume in the reference configuration, and \({\mathscr{L}}\boldsymbol {b}^{e} = \dot {\boldsymbol {b}}^{e} - \boldsymbol {lb}^{e} - \boldsymbol {b}^{e}\boldsymbol {l}^{T}\) is the Lie derivative of be. In (5), α is the internal variable that defines the isotropic hardening, K defines the drag stress, \(\eta \in (0, \infty )\) is the material viscosity, and the Macaulay brackets \(\left < \cdot \right >\) are defined such that \(\left <x\right >= x\) for x ≥ 0 and \(\left <x\right >= 0\) for x < 0. The von Mises-type dynamic yield function (cf. Ristinmaa and Ottosen 2000)

$$ f(\boldsymbol{\tau}, K) = ||{\boldsymbol{\tau}^{dev}}|| -\sqrt[]{\frac{2}{3}}\sigma_{y}(K) $$
(6)

separates elastic response, f < 0, from viscoplastic response, f ≥ 0. In the above (6), τdev is the deviatoric part of the Kirchhoff stress and

$$ \sigma_{y}(K)= \sigma_{y0} + K $$
(7)

is the current yield stress, where σy0 is the initial yield stress. The drag stress evolves via the nonlinear exponential hardening model

$$ K(\alpha) = H\alpha+ Y_{\infty}\left[1 - \exp(-\delta \alpha)\right] $$
(8)

where H, \(Y_{\infty }\), and δ are the linear hardening modulus, saturation stress, and saturation exponent, respectively.

Maximizing the regularized dissipation (5) with respect to the stresses τ and K provides the evolution equations

$$ \begin{array}{@{}rcl@{}} {\mathcal{L}\boldsymbol{b}^{e} }&=& - \frac{2}{3}\lambda \text{tr}(\boldsymbol{b}^{e})\boldsymbol{n}, \end{array} $$
(9)
$$ \begin{array}{@{}rcl@{}} \dot{\alpha} &=& -\lambda \frac{\partial f}{\partial K}, \end{array} $$
(10)

where n = τdev/||τdev|| is the normal to the yield surface, and \(\lambda = \frac {1}{\eta } \left < f \right >\) is the magnitude of the viscoplastic load increment.

The total amount of absorbed viscoplastic work, Wvp, is expressed as

$$ { W^{vp} = {\int}_{0}^{{} T^{f}}\! \! {\int}_{{\Omega}_{o}}\dot{w}^{vp}\text{d}V\text{d}t,} $$
(11)

where Tf is the load duration.

4 Numerical solution procedure

The boundary value problem defined in (3) is spatially discretized by the finite element method in Section 4.1, and the constitutive equations are discretized with the backward Euler scheme in Section 4.2. Section 4.3 presents the imposition of the periodic boundary conditions and the nested Newton solution procedure. For further details of the finite element discretization, see Belytschko et al. (2000).

4.1 Discretization of the equilibrium equations

To obtain the FE-formulation, we approximate the displacement in each finite element \({{\Omega }_{o}^{e}}\) using the element shape function matrix, Ne, according to \(\boldsymbol {u}(\boldsymbol {X},t_{n}) \approx \boldsymbol {N}_{e}(\boldsymbol {X})\hat {\boldsymbol {u}}_{e}^{(n)}\), where \(\hat {\boldsymbol {u}}_{e}^{(n)}\) is the element nodal displacement vector at the discrete time step tn. The virtual displacement is likewise interpolated as \( \delta \boldsymbol {u}(\boldsymbol {X}) = \boldsymbol {N}_{e}(\boldsymbol {X})\delta \hat {\boldsymbol {u}}_{e}\), i.e., the Galerkin approach is employed. The element Lagrangian virtual strain is expressed in Voigt notation as \(\delta \boldsymbol {E}_{e}(\boldsymbol {X},t_{n}) = \boldsymbol {B}_{e}\left (\boldsymbol {X},\hat {\boldsymbol {u}}_{e}^{(n)}\right )\delta \hat {\boldsymbol {u}}_{e}\), where the explicit expression of Be is given in Wallin et al. (2018). We also use the compact internal state variable notation \(\boldsymbol {w} = \left (\begin {array}{cc} {\boldsymbol {b}^{e}}^{T} & \alpha \end {array}\right )^{T}\), where be and all other tensors are expressed in Voigt notation.

The residual equilibrium (3) is ultimately discretized as

$$ \boldsymbol{R}= \boldsymbol{F}_{int} - \boldsymbol{F}_{ext} = \boldsymbol{0}. $$
(12)

In (12), we introduced the internal force vector \(\boldsymbol {F}_{int}= \boldsymbol {F}_{int}(\hat {\boldsymbol {u}},\boldsymbol {w})\) and the external load vector Fext, which are defined by

$$ \begin{array}{@{}rcl@{}} \boldsymbol{F}_{int} &=& {\mathbb{A} {\int}_{{{\Omega}_{o}^{e}}}\boldsymbol{B}_{e}^{T}\boldsymbol{S}\text{d}V, } \end{array} $$
(13)
$$ \begin{array}{@{}rcl@{}} \boldsymbol{F}_{ext}&= & \xi {\mathbb{A}{\int}_{\partial{\Omega}^{e}_{ot}}\boldsymbol{N}^{T}_{e}\boldsymbol{\bar{t}}\text{d}S, } \end{array} $$
(14)

where \(\mathbb {A}\) is the finite element assembly operator, \(\boldsymbol {S} = \boldsymbol {S}(\hat {\boldsymbol {u}}, \boldsymbol {w})\) and ξ ∈ [0,1] is the load parameter. For simplicity, we drop the superscript (⋅)(n) and assume that all quantities are evaluated at time step tn unless otherwise stated.

4.2 Integration of constitutive equations

The residual (12) is evaluated element-wise using Gauss integration. As such, the constitutive equations need to be integrated in time at each Gauss point of each element in the mesh. To this end, the viscoplastic evolution (9) and (10) are combined with (6) and (7) and discretized in time using the fully implicit Euler scheme. Ultimately we obtain one vector and one scalar local Gauss point-i residual equation. The vector equation is expressed as

$$ {{~}^{1}\boldsymbol{C}_{i} = \boldsymbol{f} \ \! {{}\boldsymbol{b}^{e,}}^{(n-1)}\boldsymbol{f}^{T} - \boldsymbol{b}^{e} - \sqrt[]{\frac{2}{3}}(\alpha - \alpha^{(n-1)}) \text{tr}(\boldsymbol{b}^{e})\boldsymbol{n} = \boldsymbol{0},} $$
(15)

where f = FF− 1(n− 1) is the relative deformation gradient, \(\partial f/\partial K = -\sqrt {2/3}\) which follows from (6) and (7), and \(\lambda =- \dot {\alpha }/(\partial f / \partial K)\) which follows from (9). Assuming that viscoplastic response occurs, so \(\left < f \right > = f \geq 0\) enables (10) to be expressed as \(\dot {\alpha } = \frac {f}{\eta } \frac {\partial f}{\partial K}\), which gives the scalar discretized residual equation

$$ {~}^{2}C_{i} = f(\boldsymbol{\tau}, K) - \sqrt[]{\frac{3}{2}}\frac{\eta}{{\varDelta} t_{n}}\left( \alpha-\alpha^{(n-1)}\right) = 0. $$
(16)

The residuals (15) and (16) are combined as \(\boldsymbol {C}_{i} = \left (\begin {array}{cc} {~}^{1}\boldsymbol {C}_{i}^{T} & {~}^{2}C_{i} \end {array}\right )^{T}\), forming the Gauss point constitutive residual equation

$$ \boldsymbol{C}_{i}(\hat{\boldsymbol{u}},\hat{\boldsymbol{u}}^{(n-1)},\boldsymbol{w},\boldsymbol{w}^{(n-1)}) = \boldsymbol{0}. $$
(17)

Again, assuming f ≥ 0, we use (6) and (9) to obtain \(\dot {w}^{vp} = \left (\sqrt {\frac {2}{3}}\sigma _{y} + f \right )\frac {1}{\eta }f\) which is combined with (16) to compute the viscoplastic work of (11)

$$ \begin{array}{@{}rcl@{}} { W^{vp}} &=& {\int}_{0}^{T^{f}}{\int}_{{\Omega}_{o}}\dot{w}^{vp}\text{d}V\text{d}t \\ &\approx& \sum\limits_{n=1}^{N}{\int}_{{\Omega}_{o}}\left.\left( \sigma_{y}(\alpha) + \frac{3}{2} \eta\dot{\alpha} \right)\right\vert_{t=t_{n}}\dot{\alpha}{\varDelta} t_{n}\text{d}V, \end{array} $$
(18)

where the approximation \(\dot {\alpha } = (\alpha - \alpha ^{(n-1)})/{\varDelta } t_{n}\) is used. As seen here, the viscoplastic work is a function of the internal variables from all time steps, i.e., \(W^{vp}=W^{vp}(\boldsymbol {w}, \boldsymbol {w}^{(n-1)}, {\dots } , \boldsymbol {w}^{(0)})\).

4.3 Periodic boundary conditions

We now evaluate the homogenized material properties of the unit cell microstructure, i.e., composite. As part of this process, Bloch-type periodic boundary conditions are applied to a single unit cell, which implies that the displacement and traction fields on opposite boundaries are periodic, modulo a uniform term and antiperiodic, respectively. Without loss of generality, we restrict ourselves to a two-dimensional (2D) formulation.

The periodicity is based on master-slave elimination wherein the displacement on the boundaries \(\partial {\Omega }_{o}^{x-}\), \(\partial {\Omega }_{o}^{x+}\), \(\partial {\Omega }_{o}^{y-}\), and \(\partial {\Omega }_{o}^{y+}\) (cf. Fig. 1a) are separated into their master and slave displacements, \(u_{kl}^{+}\) and \(u_{kl}^{-}\). Here the first subscript k represents the displacement component, and the second subscript l represents the boundary, e.g., \(u_{xy}^{+}\) is the ux displacement component over the surface \({\Omega }_{o}^{y+}\). The differences between master and slave displacement components on opposing faces are, e.g.,

$$ \bar{u}_{xx} = u_{xx}^{+} - u_{xx}^{-}, $$
(19)

where \(\bar {u}_{xx}\) is the uniform axial displacement difference enforced across the boundaries \(\partial {\Omega }_{o}^{x+}\) and \(\partial {\Omega }_{o}^{x-}\), cf. Fig. 1b.

Fig. 1
figure 1

Illustration of the periodic boundary conditions. a Undeformed unit cell divided into four boundaries and b deformed (dotted lines) unit cell with prescribed and unknown gap displacements, and anti-periodic traction t

The slave degrees of freedom are explicitly eliminated from the nonlinear system (12) by expressing the nodal displacement vector as

$$ \hat{\boldsymbol{u}} = \boldsymbol{T}\check{\boldsymbol{u}} + \bar{u}_{xx}\boldsymbol{I}_{xx} + \bar{u}_{xy}\boldsymbol{I}_{xy} + \bar{u}_{yx}\boldsymbol{I}_{yx} + \bar{u}_{yy}\boldsymbol{I}_{yy}, $$
(20)

where \(\check {\boldsymbol {u}}\) contains the nodal displacement components of the master and the interior (belonging to ΩoΩo) degrees of freedom, and the constant matrix T defines the connection between the master and slave degrees of freedom. In (20), the vectors Ixx and Iyx have unit entries respectively for the ux and uy degrees of freedoms corresponding to the nodes on the boundary \(\partial {\Omega }_{o}^{x+}\) and zero entries elsewhere. Ixy and Iyy are similarly defined.

For later purposes, (20) is decomposed into a dependent and independent part. To simplify the derivations, only the x uniaxial load case of (19) is considered. To do this, we assign the value of \(\bar {u}_{xx}\) and decompose (20) as

$$ \hat{\boldsymbol{u}} = \boldsymbol{P}\hat{\boldsymbol{u}}^{*} + \bar{u}_{xx}\boldsymbol{I}_{xx}, $$
(21)

where \(\boldsymbol {P} = \left [ \boldsymbol {T} \boldsymbol {I}_{xy} \boldsymbol {I}_{yx} \boldsymbol {I}_{yy} \right ]\), and \(\hat {\boldsymbol {u}}^{*} = \left [\check {\boldsymbol {u}}^{T} {} \bar {u}_{xy} {} \bar {u}_{yx} {} \bar {u}_{yy}\right ]^{T}\) contains the dependent displacements. To accommodate the added \(\bar {u}_{xy}, \bar {u}_{yx}\), and \(\bar {u}_{yy}\) degrees of freedom, the residuals (12) and (17) are supplemented with the null traction conditions

$$ \boldsymbol{I}_{xy}^{T} \boldsymbol{F}_{ext} = 0, \quad \boldsymbol{I}_{yx}^{T} \boldsymbol{F}_{ext} = 0, \quad \boldsymbol{I}_{yy}^{T} \boldsymbol{F}_{ext} = 0, $$
(22)

such that the boundaries \(\partial {\Omega }_{o}^{y\pm }\) are macroscopically traction free and \(\partial {\Omega }_{o}^{x\pm }\) has zero shear traction, i.e., uniaxial conditions are mimicked.

The internal virtual work \(\delta W_{int} = \boldsymbol {F}_{int}^{T}\delta \hat {\boldsymbol {u}}\) together with periodicity of (21) and the null traction of (22) imply that

$$ \begin{array}{@{}rcl@{}} \delta W_{int} &=& \boldsymbol{F}_{int}^{T}\boldsymbol{P}\delta\hat{\boldsymbol{u}}^{*} = (\boldsymbol{T}^{T}\boldsymbol{F}_{int})^{T}\delta \check{\boldsymbol{u}} + R_{xy}\delta\bar{u}_{xy} \\ & &+ R_{yx}\delta\bar{u}_{yx} + R_{yy}\delta\bar{u}_{yy} = 0, \end{array} $$
(23)

where, e.g., \(R_{xy} = \boldsymbol {I}^{T}_{xy}\boldsymbol {F}_{int}\). Equation 23 is used to define the compact residual

$$ \boldsymbol{R}^{*} = \left[ (\boldsymbol{T}^{T} \boldsymbol{F}_{int})^{T} R_{xy} R_{yx} R_{yy} \right]^{T} = \boldsymbol{P}^{T} \boldsymbol{F}_{int}. $$
(24)

The coupled nonlinear system R = 0 and Ci = 0 of (17) and (24) is solved using two nested Newton loops, wherein linearizations around the current (\(\hat {\boldsymbol {u}}\), w) iterate are performed using a Schur’s complement approach (Ivarsson et al. 2018; Simo and Miehe 1992). At each iteration, an inner Newton loop is first completed to solve \(\boldsymbol {C}_{i}(\hat {\boldsymbol {u}}^{(n)}, \hat {\boldsymbol {u}}^{(n-1)}, \boldsymbol {w}^{(n)}, \boldsymbol {w}^{(n-1)}) = \boldsymbol {0}\) for w(n) for the given values of \(\hat {\boldsymbol {u}}^{(n)}, \hat {\boldsymbol {u}}^{(n-1)}\), and w(n− 1). The outer loop then commences whence the linearized system

$$ \boldsymbol{K}_{T}^{*}d\hat{\boldsymbol{u}}^{*} = - \boldsymbol{R}^{*} $$
(25)

is solved for \(d\hat {\boldsymbol {u}}^{*}\), where \(\boldsymbol {K}_{T}^{*} = \boldsymbol {P}^{T}\boldsymbol {K}_{T}\boldsymbol {P}\) follows from (21) and (24), in which KT is the consistent tangent stiffness matrix defined by

$$ \boldsymbol{K}_{T} = \left[\frac{\partial \boldsymbol{F}_{int}}{\partial \hat{\boldsymbol{u}}} - \frac{\partial \boldsymbol{F}_{int}}{\partial \boldsymbol{w}} \left( \frac{\partial \boldsymbol{C}}{\partial \boldsymbol{w}} \right)^{-1}\frac{\partial \boldsymbol{C}}{\partial \hat{\boldsymbol{u}}} \right], $$
(26)

where C contains the collection of the Ngp Gauss point residuals Ci, i = 1,2,…,Ngp. The use of the consistent tangent is crucial for preserving the quadratic rate of asymptotic convergence of the Newton iteration procedure (Simo and Taylor 1985). The successive updates of w(n) and \(\hat {\boldsymbol {u}}^{*(n)}\) continue until convergence is achieved. The time is then incremented and the procedure begins anew with the initial guess for the displacements \(\hat {\boldsymbol {u}}^{*(n)}_{0}\). A common choice for the initial displacement guess is the previous converged solution, i.e., \(\hat {\boldsymbol {u}}^{*(n)}_{0} = \hat {\boldsymbol {u}}^{*(n-1)}\). Based on our experience, this particular choice is not efficient and therefore, we use the initial guess

$$ \hat{\boldsymbol{u}}^{*(n)}_{0} = \frac{\xi^{(n)}}{\xi^{(n-1)}} \hat{\boldsymbol{u}}^{*(n-1)}, $$
(27)

i.e., \(\hat {\boldsymbol {u}}^{*(n)}_{0}\) is a scaling of the previous converged solution, which leads to

$$ \hat{\boldsymbol{u}}^{(n)}_{0} = \frac{\xi^{(n)}}{\xi^{(n-1)}}\boldsymbol{P}\hat{\boldsymbol{u}}^{*(n-1)} + \xi^{(n)}\bar{u}_{xx}\boldsymbol{I}_{xx} = \frac{\xi^{(n)}}{\xi^{(n-1)}} \hat{\boldsymbol{u}}^{(n-1)}. $$
(28)

The first n = 1 time step uses the initial guess \(\hat {\boldsymbol {u}}^{(1)}_{0} =\xi ^{(1)}\bar {u}_{xx}\boldsymbol {I}_{xx}\).

Remark 1: 1

In the numerical examples, we enforce orthotropic domain symmetry of the unit cell. For the x uniaxial case, this a priori ensures \(\bar {u}_{xy} = \bar {u}_{yx} = 0\) and Rxy = Ryx = 0. As such, we only enforce the \(\boldsymbol {I}^{T}_{yy} \boldsymbol {F}_{ext} = 0\) reaction condition to evaluate \(\bar {u}_{yy}\).

Remark 2: 1

For a pure shear load case, we prescribe \(\bar {u}_{xy} > 0\), \(\bar {u}_{yx} = 0\) and compute \(\bar {u}_{xx}\) and \(\bar {u}_{yy}\) to enforce \(\boldsymbol {I}^{T}_{xx}\boldsymbol {F}_{ext} = 0\) and \(\boldsymbol {I}^{T}_{yy}\boldsymbol {F}_{ext} = 0\).

5 Regularization and material interpolation

In this topology optimization study, we use restriction to formulate a well-posed problem. The continuous nondimensional volume fraction field c(X) describes the amount of material for reference point X, where locations filled with material are defined by c(X) = 1 and void locations are identified by c(X) = 0. The continuous volume fraction field c is a function of the design field \(\phi (\boldsymbol {X}) \in \left [ 0, 1 \right ]\) which is discretized to be piecewise uniform over the elements \({{\Omega }_{o}^{e}}\) such that ϕ(X) = ϕe for \(\boldsymbol {X} \in {{\Omega }_{o}^{e}}\). In this relationship, c is obtained by smoothing ϕ so as to define a well-posed topology optimization problem. The smoothing uses the Helmholtz partial differential equation filtering technique, cf., e.g., Lazarov and Sigmund (2011), wherein

$$ -{l_{o}^{2}}{\varDelta}_{o}c+ c = \phi, $$
(29)

where lo controls the length scale, i.e., smoothing and Δo is the Laplacian with respect to the material coordinates X. The filtering technique has previously been used with homogeneous Neumann boundary conditions, ocNo = 0 to conserve volume. In this work, periodicity is enforced on c, which implies that ocNo is antiperiodic and hence we also conserve volume.

We solve (29) using a standard finite element formulation. The filtered continuous volume fraction field c and the weight function δc are interpolated using the element shape function vector, i.e., \(c(\boldsymbol {X}) = {{~}^{\boldsymbol {c}}} \boldsymbol {N}_{e}(\boldsymbol {X}) \boldsymbol {c}_{e}\) within finite element \({{\Omega }_{o}^{e}}\), and the resulting linear system

$$ \boldsymbol{K}_{f}\boldsymbol{c} = \boldsymbol{F}_{f}\boldsymbol{\phi} $$
(30)

is solved for c, i.e., the nodal values of c. In (30), \({\boldsymbol {K}_{f}}= {\mathbb {A} {\int \limits }_{{{\Omega }_{o}^{e}}} ({l_{o}^{2}} \nabla _{o} {{~}^{\boldsymbol {c}}}\boldsymbol {N}_{e}^{T}\nabla _{o}{{~}^{\boldsymbol {c}}} \boldsymbol {N}_{e}} {+ {{~}^{\boldsymbol {c}}} \boldsymbol {N}_{e}^{T} {{~}^{\boldsymbol {c}}} \boldsymbol {N}_{e})\text {d}V}\) is the filter tangent matrix, \({\boldsymbol {F}_{f} = \mathbb {A} {\int \limits }_{{{\Omega }_{o}^{e}}}{{~}^{\boldsymbol {c}}} \boldsymbol {N}_{e}^{T} \text {d}V}\), and \(\boldsymbol {\phi } = \left [ \phi _{1}, \phi _{2}, \hdots \right ]^{T}\) is the design variable vector. Since the finite element discretization is fixed, the matrices Kf and Ff are computed once. In order to enforce periodicity, similar to (20), the constraint

$$ \boldsymbol{c} = \boldsymbol{T}_{f}\boldsymbol{c}^{*} $$
(31)

is included where the connectivity matrix Tf connects the master nodes, stored in c, to the slave nodes. Inserting (31) into (30), and premultiplying by \(\boldsymbol {T}_{f}^{T}\), yields the resulting linear system

$$ \boldsymbol{K}_{f}^{*}\boldsymbol{c}^{*} = \boldsymbol{T}^{T}_{f} \boldsymbol{F}_{f}\boldsymbol{\phi}, $$
(32)

where \(\boldsymbol {K}_{f}^{*} = \boldsymbol {T}^{T}_{f} \boldsymbol {K}_{f} \boldsymbol {T}_{f}\). Upon computing c from (32), the volume fraction field is obtained from (31) and the finite element interpolation \(c(\boldsymbol {X}) = {{}{^{\boldsymbol {c}}} \boldsymbol {N}_{e}(\boldsymbol {X}) \boldsymbol {c}_{e} }\).

To approach a distinct solid-void design, we use a Heaviside thresholding technique (Guest et al. 2004; Wang et al. 2014) and material penalization. First, the continuous filtered volume fraction c is thresholded using the smoothed Heaviside step function \(\bar {H}\), to define the physical volume fraction field

$$ \hat{c} = \bar{H}(c) = \frac{\tanh({\upbeta}_{H}\omega) + \tanh({\upbeta}_{H}(c-\omega))}{\tanh({\upbeta}_{H} \omega) + \tanh({\upbeta}_{H}(1-\omega))}. $$
(33)

The parameters βH and ω are such that \(\lim _{{\upbeta }_{H}\to \infty } \bar {H}(c) = u_{s}(c-\omega )\), where us is the unit step function.

Second, the material parameters κ, μ, H, σy0, and \(Y_{\infty }\) for the constituent material are penalized via the RAMP material interpolation scheme (Stolpe and Svanberg 2001). Using the physical volume fraction \(\hat {c}\) of (33), the material interpolation function for each parameter χ is defined as

$$ \chi(\hat{c}; q, \chi_{0}) = \left( \delta_{0} + \frac{\hat{c}(1- \delta_{0})}{1+q(1-\hat{c})}\right)\chi_{0} , $$
(34)

where the parameter q controls the level of penalization, χ0 is the nominal material parameter value, and δ0 = 10− 4 is a small residual value used in this ersatz material model to avoid numerical problems which otherwise arise if, e.g., the material stiffness is zero.

To summarize, the design variables ϕe are first filtered by solving (32) for c, then the thresholded physical periodic volume fraction field \(\hat {c}\) is computed via (31) and (33), and finally the penalized material parameters are evaluated through the application of (34) for χ0 = {κ, μ, H, σy0, \(Y_{\infty } \}\).

6 Topology optimization

The objective considered in this topology optimization is to design a material microstructure with maximum viscoplastic energy absorption, Wvp, cf. (18), subject to displacement constraints. One displacement constraint enforced during uniaxial loading \(\bar {u}_{xx}\) prescribes the transverse macroscopic displacement component \(\bar {u}_{yy}\). This Poisson’s ratio-type constraint is imposed by requiring

$$ {\text{g}_{\bar{u}_{yy}} = \sqrt[]{ \frac{1}{{}T^{f}}{\int}_{0}^{T^{f}}\left( \bar{u}_{yy} - \bar{u}^{*}_{yy}\right)^{2}\text{d}t} \leq \delta_{\bar{u}}}, $$
(35)

and using the implicit Euler scheme to discretize (35). As seen above, \(\text {g}_{\bar {u}_{yy}}< \delta _{\bar {u}} \) ensures the root-mean-square deviation (RMSD) of \(\bar {u}_{yy}\) from the prescribed target trajectory \(\bar {u}^{*}_{yy}\) is less than a small value \(\delta _{\bar {u}}\) taken as \(3 \cdot 10^{-3} \bar {u}_{xx}\). Similarly, \(\bar {u}_{xx}\) can be constrained for a prescribed uniaxial loading \(\bar {u}_{yy}\).

6.1 Optimization formulation

The topology optimization problem is to find a design ϕ by solving

$$ \begin{array}{@{}rcl@{}} \mathcal {O}\!:\! \left\{ \begin{array}{l} {\underset{\boldsymbol{\phi}}{\max}} \ W^{vp}\left( \boldsymbol{w}^{(N)}(\hat{f}(\boldsymbol{\phi})),\hdots,\boldsymbol{w}^{(0)}(\hat{f}(\boldsymbol{\phi})), \hat{f}(\boldsymbol{\phi})\right),\\ \text{s.t.} \left\{\begin{array}{ll} g_{\bar{u}_{yy}} & = \displaystyle \frac{1}{\delta_{\bar{u}}} \ \! \sqrt[]{ \frac{1}{T^{f}}\sum\limits_{n=1}^{N}\left( \bar{u}_{yy}^{(n)} - \bar{u}_{yy}^{*}\right)^{2}{\varDelta} t_{n}} \!\leq\! 1, \\ {g_{\bar{V}}} & = {\frac{1}{\bar{V}} {\int}_{{\Omega}_{o}}\hat{c}\text{d}V \leq 1}, \end{array} \right. \end{array} \right. \\ \end{array} $$
(36)

where \(\bar {V}\) is the maximum allowable volume in the reference configuration and the mapping

$$ \hat{f}(\boldsymbol{\phi}) = \hat{c}\left( c\left( \boldsymbol{c}(\boldsymbol{c}^{*}(\boldsymbol{\phi}))\right) \right) $$
(37)

which follows from (31)–(33) and the interpolation \(c = {{~}^{\boldsymbol {c}} }\boldsymbol {N}_{e}\boldsymbol {c}_{e}\), within each element. In the above reduced space optimization problem, we treat the equilibrium (24) and local constitutive (17) residuals as implicit constraints, i.e., in (36) we require

$$ \begin{array}{@{}rcl@{}} \boldsymbol{R}^{*} \left( \hat{\boldsymbol{u}},\boldsymbol{w}, \hat{f}(\boldsymbol{\phi})\right) &=& \boldsymbol{0}, \quad \forall \ {t_{n} \in [0, \ T^{f}]}, \\ \end{array} $$
(38)
$$ \begin{array}{@{}rcl@{}} \boldsymbol{C} \left( \hat{\boldsymbol{u}}, \boldsymbol{w} ,\hat{\boldsymbol{u}}^{(n-1)}, \boldsymbol{w}^{(n-1)},\hat{f}(\boldsymbol{\phi})\right) &=& \boldsymbol{0}, \quad \forall \ {t_{n} \in [0, \ T^{f}]}, \\ \end{array} $$
(39)

where \(\hat {\boldsymbol {u}} = \hat {\boldsymbol {u}}(\hat {\boldsymbol {u}}^{*}(\hat {f}(\boldsymbol {\phi })))\) and \(\boldsymbol {w} = \boldsymbol {w}(\hat {f}(\boldsymbol {\phi }))\).

Remark 3: 1

The optimization problem (36) allows for maximization of viscoplastic energy absorption subject to a maximum volume constraint by letting \(\delta _{\bar {u}} \rightarrow \infty \).

6.2 Sensitivity analysis

The optimization problem (36) is solved with the MMA scheme, cf. Svanberg (1987), using the standard MMA parameters as described in Svanberg (2002). The algorithm uses gradients of the objective and constraint functions to form a convex approximation of the optimization problem. We therefore perform a sensitivity analysis in each optimization iteration, and as the number of design variables greatly outnumber the constraints, we use the adjoint method presented in Michaleris et al. (1994). The sensitivity analyses for the objective function Wvp and the constraint \(g_{\bar {u}_{yy}}\) are performed in a similar manner by considering the generalized response function

$$ {\Theta} = {\Theta}\left( \hat{\boldsymbol{u}}^{(N)},\hdots,\hat{\boldsymbol{u}}^{(1)}, \boldsymbol{w}^{(N)},\hdots,\boldsymbol{w}^{(0)}, \hat{f}(\boldsymbol{\phi})\right). $$
(40)

The sensitivities with respect to the design variable ϕ are obtained by multiple applications of the chain rule, i.e.,

$$ \frac{D{\Theta}}{D\boldsymbol{\phi}} = \frac{D{\Theta}}{D\boldsymbol{c}} \frac{\partial\boldsymbol{c}}{\partial\boldsymbol{c}^{*}} \frac{\partial\boldsymbol{c}^{*}}{\partial \boldsymbol{\phi}}, $$
(41)

cf. (37), where \(\frac {\partial \boldsymbol {c}}{\partial \boldsymbol {c}^{*}} = \boldsymbol {T}_{f}\) and \(\frac {\partial \boldsymbol {c}^{*}}{\partial \boldsymbol {\phi }} = \boldsymbol {K}_{f}^{*-1}\left (\boldsymbol {T}^{T}_{f}\boldsymbol {F_{f}}\right )\) which follows from (31) and (32), respectively. In (41), we introduced \(\frac {D(\cdot )}{D(\star )}\) to denote the total differentiation of (⋅) with respect to (⋆). Differentiation of Θ with respect to the filtered nodal volume fractions c gives

$$ \begin{aligned} \frac{D{\Theta}}{D\boldsymbol{c}} = \sum\limits_{n=1}^{N} \left( \frac{\partial {\Theta}}{\partial\hat{\boldsymbol{u}}^{(n)} }\boldsymbol{P}\frac{D\hat{\boldsymbol{u}}^{*(n)} }{D\boldsymbol{c}} + \frac{\partial {\Theta}}{\partial\boldsymbol{w}^{(n)} }\frac{D\boldsymbol{w}^{(n)} }{D\boldsymbol{c}} \right)+ \frac{\partial {\Theta}}{\partial \boldsymbol{c}}, \end{aligned} $$
(42)

where we use the equality \(\partial \hat {\boldsymbol {u}}^{(n)}/\partial \hat {\boldsymbol {u}}^{*(n)} = \boldsymbol {P}\). The implicitly defined sensitivities \(D\hat {\boldsymbol {u}}^{*(n)}/D\boldsymbol {c}\) and Dw(n)/Dc are annihilated by augmenting a series of adjoint equations to the functional Θ. To this end, the adjoint vectors λ(n) and γ(n) are used to define the equivalent functional

$$ \tilde{\Theta}= {\Theta} - \sum\limits_{n=1}^{N}{{} \boldsymbol{\lambda}^{*(N-n+1)}}^{T} {{} \boldsymbol{R}^{*}}^{(n)} - \sum\limits_{n=1}^{N}{{} \boldsymbol{\gamma}^{(N-n+1)}}^{T} \boldsymbol{C}^{(n)}, $$
(43)

where we emphasize that the augmented functional \(\tilde {\Theta }\) equals Θ, since (38) and (39) hold.

Differentiating the augmented function (43) with respect to c and applying the chain rule yields

$$ \begin{array}{@{}rcl@{}} \frac{D\tilde{\Theta}}{D\boldsymbol{c}} &=& \sum\limits_{n=1}^{N} \left( \frac{\partial {\Theta}}{\partial\hat{\boldsymbol{u}}^{(n)} }\boldsymbol{P}\frac{D\hat{\boldsymbol{u}}^{*(n)} }{D\boldsymbol{c}} + \frac{\partial {\Theta}}{\partial\boldsymbol{w}^{(n)} }\frac{D\boldsymbol{w}^{(n)} }{D\boldsymbol{c}} \right)+ \frac{\partial {\Theta}}{\partial \boldsymbol{c}} \\ & &- \sum\limits_{n=1}^{N} \left( \boldsymbol{\lambda}^{*(N-n+1)}\right)^{T}\left[ {\boldsymbol{P}}^{T}\frac{\partial \boldsymbol{F}_{int}^{(n)} }{\partial\hat{\boldsymbol{u}}^{(n)} } {\boldsymbol{P}}\frac{D \hat{\boldsymbol{u}}^{*(n)} }{D\boldsymbol{c}}\right.\\ & &\left.+ {\boldsymbol{P}}^{T}\frac{\partial \boldsymbol{F}_{int}^{(n)} }{\partial\boldsymbol{w}^{(n)} }\frac{D\boldsymbol{w}^{(n)} }{D\boldsymbol{c}} + \frac{\partial \boldsymbol{R}^{*(n)}}{\partial \boldsymbol{c}} \right] \\ & &- \sum\limits_{n=1}^{N} \left( \boldsymbol{\gamma}^{(N-n+1)}\right)^{T}\left[\frac{\partial \boldsymbol{C}^{(n)} }{\partial \hat{\boldsymbol{u}}^{(n)}} {\boldsymbol{P}}\frac{D\hat{\boldsymbol{u}}^{*(n)}}{D\boldsymbol{c}} \right. \\ & &+\frac{\partial\boldsymbol{C}^{(n)} }{\partial \boldsymbol{w}^{(n)} }\frac{D\boldsymbol{w}^{(n)}}{D\boldsymbol{c}} + \frac{\partial\boldsymbol{C}^{(n)} }{\partial \hat{\boldsymbol{u}}^{(n-1)}}{\boldsymbol{P}} \frac{D\hat{\boldsymbol{u}}^{*(n-1)}}{D\boldsymbol{c}}\ \\ & &+\left. \ \frac{\partial\boldsymbol{C}^{(n)} }{\partial \boldsymbol{w}^{(n-1)}}\frac{D\boldsymbol{w}^{(n-1)}}{D\boldsymbol{c}} + \frac{\partial \boldsymbol{C}^{(n)}}{\partial \boldsymbol{c}} \right]. \end{array} $$
(44)

The above is divided into an explicit, \(D\tilde {\Theta }_{E}/D\boldsymbol {c}\), and implicit, \(D\tilde {\Theta }_{I}/D\boldsymbol {c}\), part as \(D\tilde {\Theta }/D\boldsymbol {c} = D\tilde {\Theta }_{E}/D\boldsymbol {c} + D\tilde {\Theta }_{I}/D\boldsymbol {c}\), where the explicit part is

$$ \begin{array}{@{}rcl@{}} \frac{D\tilde{\Theta}_{E}}{D\boldsymbol{c}} &=& \frac{\partial {\Theta}}{\partial \boldsymbol{c}} - \sum\limits_{n=1}^{N}\left( {\boldsymbol{\lambda}^{*(N-n+1)}}\right)^{T} \frac{\partial \boldsymbol{R}^{*(n)}}{\partial \boldsymbol{c}} \\ &&- \sum\limits_{n=1}^{N}\left( \boldsymbol{\gamma}^{(N-n+1)}\right)^{T} \frac{\partial \boldsymbol{C}^{(n)}}{ \partial \boldsymbol{c}} \end{array} $$
(45)

and (the transpose of) the implicit part is

$$ \begin{array}{@{}rcl@{}} \left( \frac{D\tilde{\Theta}_{I}}{D\boldsymbol{c}}\right)^{T} &=& - \sum\limits_{n=1}^{N-1} \left( \frac{D\hat{\boldsymbol{u}}^{*(n)}}{D\boldsymbol{c}}\right)^{T} \boldsymbol{P}^{T} \left[ {-\left( \frac{\partial {\Theta}}{\partial\hat{\boldsymbol{u}}^{(n)}}\right)^{T}}\right. \\ && + \left( \frac{\partial \boldsymbol{F}_{int}^{(n)}}{\partial \hat{\boldsymbol{u}}^{(n)}}\right)^{T}\boldsymbol{P}\boldsymbol{\lambda}^{*(N-n+1)} \\ &&+ \left( \frac{\partial \boldsymbol{C}^{(n)}}{\partial \hat{\boldsymbol{u}}^{(n)}}\right)^{T} \boldsymbol{\gamma}^{(N-n+1)} \\ &&+ \left( \frac{\partial \boldsymbol{C}^{(n+1)}}{\partial \hat{\boldsymbol{u}}^{(n)}}\right)^{T}\boldsymbol{\gamma}^{(N-n)} - \sum\limits_{n=1}^{N-1} \left( \frac{D\boldsymbol{w}^{(n)}}{D\boldsymbol{c}}\right)^{T} \\ &&\left[{-\left( \frac{\partial {\Theta}}{\partial \boldsymbol{w}^{(n)}}\right)^{T}}\right.+ \left( \frac{\partial \boldsymbol{F}_{int}^{(n)}}{\partial \boldsymbol{w}^{(n)}}\right)^{T}\boldsymbol{P}\boldsymbol{\lambda}^{*(N-n+1)} \\ &&+ \left( \frac{\partial \boldsymbol{C}^{(n)}}{\partial \boldsymbol{w}^{(n)}}\right)^{T}\boldsymbol{\gamma}^{(N-n+1)} \\ &&+ \left.\left( \frac{\partial \boldsymbol{C}^{(n+1)}}{\partial \boldsymbol{w}^{(n)}}\right)^{T}\boldsymbol{\gamma}^{(N-n)}\right] \\ &&-\left( \frac{D\hat{\boldsymbol{u}}^{*(N)}}{D\boldsymbol{c}}\right)^{T}\boldsymbol{P}^{T}\left[{-\left( \frac{\partial {\Theta}}{\partial\hat{\boldsymbol{u}}^{(N)}}\right)^{T}} \right. \\ &&+ \left( \frac{\partial\boldsymbol{F}_{int}^{(N)}}{\partial\hat{\boldsymbol{u}}^{(N)}}\right)^{T}\boldsymbol{P}\boldsymbol{\lambda}^{*(1)}+ \left.\left( \frac{\partial \boldsymbol{C}^{(N)}}{\partial \hat{\boldsymbol{u}}^{(N)} }\right)^{T}\boldsymbol{\gamma}^{(1)}\right] \\ &&-\left( \frac{D\boldsymbol{w}^{(N)}}{D\boldsymbol{c}}\right)^{T}\left[{-\left( \frac{\partial {\Theta}}{\partial\boldsymbol{w}^{(N)}}\right)^{T}}\right. \\ &&+ \left.\left( \frac{\partial\boldsymbol{F}_{int}^{(N)}}{\partial\boldsymbol{w}^{(N)}}\right)^{T}\boldsymbol{P}\boldsymbol{\lambda}^{*(1)} + \left( \frac{\partial\boldsymbol{C}^{(N)}}{\partial\boldsymbol{w}^{(N)}}\right)^{T}\boldsymbol{\gamma}^{(1)} \right]. \\ \end{array} $$
(46)

The implicitly defined derivatives \(D\hat {\boldsymbol {u}}^{*(N)}/D\boldsymbol {c}\) and Dw(N)/Dc in (46) are annihilated by making judicious choices of the adjoint vectors. We first require that λ(1) and γ(1) satisfy

$$ \begin{array}{@{}rcl@{}} &&\boldsymbol{P}^{T}\left[\left( \frac{\partial\boldsymbol{F}_{int}^{(N)}}{\partial\hat{\boldsymbol{u}}^{(N)}}\right)^{T}\boldsymbol{P}\boldsymbol{\lambda}^{*(1)} + \left( \frac{\partial \boldsymbol{C}^{(N)}}{\partial \hat{\boldsymbol{u}}^{(N)} }\right)^{T}\boldsymbol{\gamma}^{(1)} \right]\\ &=& \boldsymbol{P}^{T}\left( \frac{\partial {\Theta}}{\partial \hat{\boldsymbol{u}}^{(N)}} \right)^{T}, \end{array} $$
(47)
$$ \begin{array}{@{}rcl@{}} &&\left( \frac{\partial \boldsymbol{F}_{int}^{(N)}}{\partial \boldsymbol{w}^{(N)}}\right)^{T}\boldsymbol{P}{\boldsymbol{\lambda}^{*(1)}} + \left( \frac{\partial \boldsymbol{C}^{(N)}}{\partial \boldsymbol{w}^{(N)}}\right)^{T} \boldsymbol{\gamma}^{(1)} = {\left( \frac{\partial {\Theta}}{\partial \boldsymbol{w}^{(N)}}\right)^{T}}.\\ \end{array} $$
(48)

Or, by inserting (48) into (47) and some rearrangement, satisfy

$$ \begin{array}{@{}rcl@{}} &&(\boldsymbol{K}_{T}^{*(N)})^{T} \boldsymbol{\lambda}^{*(1)}=\boldsymbol{P}^{T} \left[\left( \frac{\partial {\Theta}}{\partial \hat{\boldsymbol{u}}^{(N)}} \right)^{T}- \left( \frac{\partial \boldsymbol{C}^{(N)}}{\partial \hat{\boldsymbol{u}}^{(N)} }\right)^{T}\right. \\ &&\qquad\qquad\qquad\quad \left.\times\left( \frac{\partial \boldsymbol{C}^{(N)}}{\partial \boldsymbol{w}^{(N)}}\right)^{-T} \left( \frac{\partial {\Theta}}{\partial \boldsymbol{w}^{(N)}}\right)^{T}\right], \end{array} $$
(49)
$$ \begin{array}{@{}rcl@{}} &&\left( \frac{\partial \boldsymbol{C}^{(N)}}{\partial \boldsymbol{w}^{(N)}}\right)^{T}\!\boldsymbol{\gamma}^{(1)} = \left[{\left( \frac{\partial {\Theta}}{\partial \boldsymbol{w}^{(N)}}\right)^{T}} - \left( \frac{\partial \boldsymbol{F}_{int}^{(N)}}{\partial \boldsymbol{w}^{(N)}}\right)^{T}\! \boldsymbol{P}\boldsymbol{\lambda}^{*(1)} \right], \\ \end{array} $$
(50)

where \(\boldsymbol {K}_{T}^{*(N)} = \boldsymbol {P}^{T}\boldsymbol {K}_{T}^{(N)}\boldsymbol {P}\) is the tangent operator at the terminal time step tN. Once λ∗(1) is obtained from (49), the adjoint variable γ(1) is obtained from (50). In the remaining time steps of the adjoint analysis, we determine the λ∗(n) and γ(n) to annihilate \(\frac {D\boldsymbol {w}^{(N-n+1)}}{D\boldsymbol {c}}\) and \(\frac {D\hat {\boldsymbol {u}}^{*(N-n+1)}}{D\boldsymbol {c}}\) for n = 2,…,N, by solving

$$ \begin{array}{@{}rcl@{}} &&\!\boldsymbol{P}^{T}\left[\left( \frac{\partial \boldsymbol{F}_{int}^{(N-n+1)}}{\partial \hat{\boldsymbol{u}}^{(N-n+1)}}\right)^{T}\boldsymbol{P}\boldsymbol{\lambda}^{*(n)} + \left( \frac{\partial \boldsymbol{C}^{(N\!-n+1)}}{\partial \hat{\boldsymbol{u}}^{(N\!-n+1)}}\right)^{T}\boldsymbol{\gamma}^{(n)}\right] \\ &=&\! \boldsymbol{P}^{T}\left( \frac{\partial {\Theta}}{\partial\hat{\boldsymbol{u}}^{(N-n+1)}}\right)^{T} \!- \boldsymbol{P}^{T}\left( \frac{\partial \boldsymbol{C}^{(N-n+2)}}{\partial \hat{\boldsymbol{u}}^{(N-n+1)}}\right)^{T}\boldsymbol{\gamma}^{(n-1)} \end{array} $$
(51)
$$ \begin{array}{@{}rcl@{}} &&\left( \frac{\partial \boldsymbol{F}_{int}^{(N-n+1)}}{\partial \boldsymbol{w}^{(N-n+1)}}\right)^{T} \boldsymbol{P}\boldsymbol{\lambda}^{*(n)}+ \left( \frac{\partial \boldsymbol{C}^{(N-n+1)}}{\partial \boldsymbol{w}^{(N-n+1)}}\right)^{T} \boldsymbol{\gamma}^{(n)} \\ &=& \left[ {\left( \frac{\partial {\Theta}}{\partial \boldsymbol{w}^{(N-n+1)}}\right)^{T}} - \left( \frac{\partial \boldsymbol{C}^{(N-n+2)}}{\partial \boldsymbol{w}^{(N-n+1)}}\right)^{T}\boldsymbol{\gamma}^{(n-1)} \right]. \end{array} $$
(52)

Alternatively, substituting (52) into (51), rearranging and using (26), we solve

$$ \begin{array}{@{}rcl@{}} &&\!\!\left( {\boldsymbol{K}_{T}^{*(N-n+1)}}\right)^{T}\boldsymbol{\lambda}^{*(n)} =-\boldsymbol{\Gamma}^{*(N-n+1)}, \end{array} $$
(53)
$$ \begin{array}{@{}rcl@{}} &&\!\!\left( \frac{\partial \boldsymbol{C}^{(N-n+1)}}{\partial \boldsymbol{w}^{(N-n+1)}}\right)^{T} \boldsymbol{\gamma}^{(n)} = \left[{\left( \frac{\partial {\Theta}}{\partial \boldsymbol{w}^{(N-n+1)}}\right)^{T}} \right.\\ &&\!\!\quad \left.- \left( \frac{\partial \boldsymbol{C}^{(N-n+2)}}{\partial \boldsymbol{w}^{(N-n+1)}}\right)^{T}\!\boldsymbol{\gamma}^{(n-1)} - \left( \frac{\partial \boldsymbol{F}_{int}^{(N-n+1)}}{\partial \boldsymbol{w}^{(N-n+1)}}\right)^{T} \boldsymbol{P}\boldsymbol{\lambda}^{*(n)}\!\right] \\ \end{array} $$
(54)

where

$$ \begin{array}{@{}rcl@{}} \boldsymbol{\Gamma}^{*(N-n+1)} &=& \boldsymbol{P}^{T} \left\{\left( \frac{\partial \boldsymbol{C}^{(N-n+1)}}{\partial \hat{\boldsymbol{u}}^{(N-n+1)}}\right)^{T}\left( \frac{\partial \boldsymbol{C}^{(N-n+1)}}{\partial \boldsymbol{w}^{(N-n+1)}}\right)^{-T}\right. \\ &&\times \left[\left( \frac{\partial {\Theta}}{\partial \boldsymbol{w}^{(N-n+1)}}\right)^{T} - \left( \frac{\partial \boldsymbol{C}^{(N-n+2)}}{\partial \boldsymbol{w}^{(N-n+1)}}\right)^{T}\right.\\ &&\left.\times \boldsymbol{\gamma}^{(n-1)} \vphantom{\left( \frac{\partial {\Theta}}{\partial \boldsymbol{w}^{(N-n+1)}}\right)^{T}}\right]- \left( \frac{\partial {\Theta}}{\partial\hat{\boldsymbol{u}}^{(N-n+1)}}\right)^{T} \\ &&+ \left.\left( \frac{\partial \boldsymbol{C}^{(N-n+2)}}{\partial \hat{\boldsymbol{u}}^{(N-n+1)}}\right)^{T}\boldsymbol{\gamma}^{(n-1)} \right\} \end{array} $$
(55)

is the adjoint load vector at step tNn+ 1. Equation 53 is solved for λ∗(n) and subsequently used in (54) to obtain γ(n).

Once the adjoint vectors λ∗(n) and γ(n) are computed, the sensitivity \(D{\Theta }/D\boldsymbol {c} = D\tilde {\Theta }_{E}/D\boldsymbol {c}\) is obtained from (45), and DΘ/Dϕ is computed via (41).

The sensitivity of the constraint \(g_{\bar {u}_{yy}}\) is found from the above derivations by equating \({\Theta } = g_{\bar {u}_{yy}}\) and thus Θ/c = 0, Θ/w(n) = 0, and

$$ \frac{\partial {\Theta}}{\partial\hat{\boldsymbol{u}}^{(n)}} = \frac{1}{\delta_{\bar{u}} T^{f}} (\delta_{\bar{u}}g_{\bar{u}_{yy}})^{-1/2} \left( \bar{u}_{yy}^{(n)} - \bar{u}_{yy}^{*} \right) {\varDelta} t_{n} \boldsymbol{1}_{yy}^{T}, $$
(56)

where we used \(\bar {u}_{yy}^{(n)} = \boldsymbol {1}_{yy}^{T}\hat {\boldsymbol {u}}^{(n)}\), where the vector 1yy has a single unit entry corresponding to the \(\bar {u}_{yy}\) degree of freedom of the unit cell and is zero elsewhere, cf. the discussion following (21).

For the objective function, Θ = Wvp, the sensitivity is found by using

$$ \begin{array}{@{}rcl@{}} \frac{\partial {\Theta}}{\partial \boldsymbol{c}} &=& \sum\limits_{n=1}^{N} {\mathbb{A} {\int}_{{{\Omega}_{o}^{e}}}\left( \chi^{\prime}_{\sigma_{y0}} + \chi^{\prime}_{H}\alpha\right.} \\ &&+ \left.\chi^{\prime}_{Y_{\infty}}[1 - \exp(-\delta \alpha)]\vphantom{\chi^{\prime}_{\sigma_{y0}}}\right)\vert_{t=t_{n}} \dot{\alpha} {\varDelta} t_{n} {{~}^{\boldsymbol{c}}} \boldsymbol{N}_{e}^{T}\bar{H}^{\prime} \text{d}V \end{array} $$
(57)

which follows from (7), (8), (18) and (34), and where e.g., \(\chi _{\sigma _{y0}} = \chi (\hat {c}; q,\sigma _{y0})\). In (57), we also used \(\partial \hat {c}/\partial c = \bar {H}^{\prime }\) and \(\partial c/ \partial \boldsymbol {c} = {{~}^{\boldsymbol {c}}}\boldsymbol {N}_{e}^{T}\) within the element \({{\Omega }_{o}^{e}}\). For the Θ/w(n) computation, \(\partial {\Theta } /\partial {{}\bar {\boldsymbol {b}}^{e}}^{(n)}, = \boldsymbol {0}\), n = 1,…,N and

$$ \begin{array}{@{}rcl@{}} {\frac{\partial {\Theta}}{\partial \alpha^{(n)}}} & =& \sum\limits_{n=1}^{N} {\int}_{{\Omega}_{o}} \left.\left( \frac{\partial K}{\partial \alpha} + \frac{3}{2}\frac{\eta}{{\varDelta} t_{n}} \right)\right\lvert_{t=t_{n}}\dot{\alpha}{\varDelta} t_{n}\text{d}V \\ & &+ \sum\limits_{n=1}^{N} {\int}_{{\Omega}_{o}} \left.\left( \chi_{\sigma_{y}(\alpha)} + \frac{3}{2}\eta\dot{\alpha} \right)\right\lvert_{t=t_{n}}\text{d}V, \end{array} $$
(58)

where \(\partial K / \partial \alpha = \chi _{H} + \chi _{Y_{\infty }}\delta \exp (-\delta \alpha )\) and \(\chi _{\sigma _{y}(\alpha )} = \chi _{\sigma _{y0}} + \chi _{H} \alpha + \chi _{Y_{\infty }}[1- \exp (-\delta \alpha )]\). Finally, we note that \(\partial {\Theta }/ \partial \hat {\boldsymbol {u}}^{(n)} = \boldsymbol {0}\).

The last two terms of the sensitivity \(D \tilde {\Theta }_{E}/D\boldsymbol {c}\) of (45) are computed in the same manner for both the constraint \({\Theta } = g_{\bar {u}_{yy}}\) and for the objective function Θ = Wvp. Using (13), (24), \(\partial \hat {c}/\partial c = \bar {H}^{\prime }\) and \(\partial c/ \partial \boldsymbol {c} = {{~}^{\boldsymbol {c}}}\boldsymbol {N}_{e}^{T}\) within \({{\Omega }_{o}^{e}}\), the first term of (45) is expressed as

$$ \begin{array}{@{}rcl@{}} &&{\sum\limits_{n=1}^{N}} {\left( \boldsymbol{\lambda}^{*(N-n+1}\right)^{T} \frac{\partial \boldsymbol{R}^{*(n)}}{\partial \boldsymbol{c}}} \\ &=& \sum\limits_{n=1}^{N}\mathbb{A} {\int}_{{{\Omega}_{o}^{e}}} \boldsymbol{{~}^{c} N}_{e}^{T} \left( {{} \boldsymbol{\lambda }_{e}^{(N-n+1)}}^{T}{{} \boldsymbol{B}_{e}^{(n)}}^{T} \frac{\partial \boldsymbol{S}^{(n)}}{\partial \hat{c}} \bar{H}^{\prime} \right) \text{d}V \end{array} $$
(59)

where λe contains the \({{\Omega }_{o}^{e}}\) element components of λ = , and \(\partial \boldsymbol {S}^{(n)}/\partial \hat {c} = \boldsymbol {F}^{-1} (\partial \boldsymbol {\tau }^{(n)}/\partial \hat {c})\boldsymbol {F}^{-T}\) where

$$ \partial \boldsymbol{\tau}/ \partial \hat{c} = \frac{\chi^{\prime}_{\kappa}}{2}((J^{e})^{2} - 1)\boldsymbol{1} + \chi^{\prime}_{\mu} \bar{\boldsymbol{b}}^{e, dev} $$
(60)

which follows from (4), τ = 2(we/be)be, \(\boldsymbol {\tau }^{dev} = \mu \bar {\boldsymbol {b}}^{e, dev}\) and (34). The last term of the sensitivity (45) is computed via

$$ \begin{array}{@{}rcl@{}} &&\sum\limits_{n=1}^{N} \left( \boldsymbol{\gamma}^{(N-n+1)} \right)^{T} \frac{\partial \boldsymbol{C}^{(n)}}{\partial \boldsymbol{c}} \\ &=& \sum\limits_{n=1}^{N}\mathbb{A}\boldsymbol{{~}^{c} N}_{e}^{T} \left( \sum\limits_{i=1}^{{N_{gp}}}{{} \boldsymbol{\gamma}_{i}^{(N-n+1)}}^{T} \frac{\partial \boldsymbol{C}_{i}^{(n)}}{\partial \hat{c}} \right) \bar{H}^{\prime}, \end{array} $$
(61)

where γi contains the Gauss point i and element \({{\Omega }_{o}^{e}}\) components of γ, and \(\partial \boldsymbol {C}_{i}/\partial \hat {c} = \left (\begin {array}{cc} \boldsymbol {0}^{T} & \partial {~}^{2} C_{i}/\partial \hat {c} \end {array}\right )^{T}\), where \(\partial {~}^{2} C_{i} / \partial \hat {c} = \chi _{\mu }^{\prime } ||{\bar {\boldsymbol {b}}^{e, dev}}|| + \sqrt {2/3}(\partial \chi _{\sigma _{y(\alpha )}}/\partial \hat {c})\) which follows from (6), \(\boldsymbol {\tau }^{dev} = \mu \bar {\boldsymbol {b}}^{e, dev}\), (16) and (34).

7 Numerical examples

In this section, the presented topology optimization framework is applied to design several solid-void composite materials for maximal energy absorption. The material parameters for the full material are those of steel and are presented in Ivarsson et al. (2018).

The primal viscoplasticity problem is solved with an adaptive time stepping scheme such that

$$ {\varDelta} t_{n+1} = {\varDelta} t_{n}(f_{iter}/N_{newt})^{v}, $$
(62)

where Nnewt is the number of Newton iterations that is required to attain convergence at the current time step tn, cf., e.g., Borgqvist and Wallin (2013), and the parameters fiter and v are chosen as fiter = 4 and v = 0.4. The convergence criterion is such that \(\lvert {{} \boldsymbol {R}^{*}}^{T} {\varDelta } \hat {\boldsymbol {u}}^{*} \lvert \ < 10^{-10}\)Nmm and diverging time steps are restarted with \({\varDelta } t_{n+1} \leftarrow {\varDelta } t_{n+1}/2\). The initial time increment is Δt1 = Tf/500 and the time increments used to perform the sensitivity analysis are consistent with those used to solve the primal problem.

Although the analysis is for two dimensions, we use fully integrated 8-node tri-linear brick elements to discretize the 1 mm× 1 mm× 0.01 mm unit cell with 80 × 80 × 1 elements. Plane strain boundary conditions are enforced on the z −displacement components. Because of this plane strain condition, the z-faces of the designs are necessarily periodic.

The Heaviside threshold parameter is ω = 0.5 and a continuation strategy is used for βH wherein its initial value βo = 10− 10 is used for the first 80 MMA optimization iterations, whereafter it is increased by increments of 1 every nβ design updates until the maximum value of βH = 10 is reached. In the first two examples nβ = 10, and for the optimizations including displacement constraints, the continuation is slower with nβ = 20. The RAMP penalization parameter is q = 10 for κ, μ, H, and \(Y_{\infty }\). To avoid large viscoplastic strain in low-density elements, the penalization parameter for the initial flow stress σy0 is chosen such that \(q_{\sigma _{y0}} = 2 < q\). The maximum volume fraction is \(\bar {V} = 0.4\) and the filter length scale parameter is lo = 1.25/80 mm.

In this study, 4-fold orthotropic domain symmetry of the design is imposed (case a), cf. Fig. 2a. This greatly reduces the number of design variables. Moreover, in the analysis, e.g., for uniaxial loading (1) the periodic boundary conditions are replaced by the usual domain boundary conditions over the quarter domain model and (2) zero shear forces are ensured (see, e.g., Wallin and Tortorelli (2020)), i.e., we necessarily have Rxy = Ryx = 0. Thus, we save computational effort as we need not consider the \(\boldsymbol {I}^{T}_{xy} \boldsymbol {F}_{ext} = 0\) and \(\boldsymbol {I}^{T}_{yx} \boldsymbol {F}_{ext}=0\) equations. We also impose cubic 8-fold domain symmetry (case b), cf. Fig. 2b. This further reduces the number of design variables; however, to avoid the imposition of complicated boundary constraints, we analyze this as if it has 4-fold symmetry. The latter case b ensures microstructures that perform identically when subjected to uniaxial loads \(\bar {u}_{xx}\) and \(\bar {u}_{yy}\) of same magnitude and thus, only one uniaxial load case is simulated.

Fig. 2
figure 2

Illustration of symmetry boundary conditions for domain with a 4-fold symmetry and b with 8-fold symmetry

The 4-fold symmetry also simplifies the PDE filter analysis as periodic boundary conditions are replaced by zero flux conditions on all faces.

The initial design must be nonuniform to avoid initially uniform sensitivities that inhibit the optimization (Alberdi and Khandelwal 2019; Träff et al. 2019). The optimization algorithm is therefore initiated such that all design variables are set to ϕe = 0.4, followed by a perturbation δ. We consider two different perturbations; (a) a value δ4 is added to the four center elements, i.e., ϕe = 0.4 + δ4, and (b) a different random number perturbation is added to all elements,Footnote 1 such that ϕe = 0.4 + δrnd × (rand(0,1) − 0.5).

7.1 Constitutive model

Prior to the optimization, we demonstrate the rate effects associated with the constitutive model. The demonstration is performed using a single element model of volume fraction field ϕe = 1, by simulating the uniaxial response for \(\bar {u}_{xx} = 0.05\)mm with symmetry boundary conditions of Fig. 2a. Figure 3 shows the macroscopic force component \(\boldsymbol {I}_{xx}^{T} \boldsymbol {F}_{int}=F_{xx}\), normalized by a factor of 1/(σy0Ao), where Ao = 0.01 mm2 is the area of the loaded unit cell x-face in the reference configuration, versus load \(\bar {u}_{xx}\) for the three different macroscopic engineering strain rates \(\dot {\varepsilon }_{xx}=10^{-15}\)s− 1, \(\dot {\varepsilon }_{xx}=100\)s− 1, and \(\dot {\varepsilon }_{xx}=500\)s− 1. The figure clearly shows the influence of the strain rate effects on the microstructural response.

Fig. 3
figure 3

Macroscopic normalized forces Fxx/(σy0Ao) versus load \(\bar {u}_{xx}\) for the one element model

7.2 Test problem: two simple load cases

We start by designing materials subjected to a slow loading rate \(\dot {\varepsilon } = 10^{-15}\)s− 1, without any displacement constraints. We do not enforce domain symmetry in this initial example and we consider two load cases: (a) a uniaxial tensile load case where \(\bar {u}_{xx} = 0.01\)mm is prescribed and we solve for \(\bar {u}_{xy}\), \(\bar {u}_{yx}\), \(\bar {u}_{yy}\), and (b) a pure shear load case where \(\bar {u}_{xy} = 0.01\)mm and \(\bar {u}_{yx} = 0\)mm are prescribed and we solve for \(\bar {u}_{xx}\) and \(\bar {u}_{yy}\). Figure 4 shows two optimized microstructural designs, both initiated with δ4 = 0.6, i.e., the four center elements are assigned the value 1. The yellow and blue regions represent the base steel material and void, respectively, and we emphasize that the physical volume fraction field \(\hat {c}\) is plotted. As expected, the two structures dissipating maximum energy consist of bars aligned with the maximum principal stress axes. Clearly, these designs are periodic, and although not explicitly enforced, they respectively exhibit 4-fold and 8-fold domain symmetries.

Fig. 4
figure 4

Undeformed optimized unit cells (left) and array of 3 × 3 unit cells (right)

7.3 Biaxial tensile loads

In many practical applications, it is of great importance that structures can withstand more complex load cases than those of uniaxial tension and pure shear. Therefore, we consider a biaxial loading scenario, \(\bar {u}_{xx} = \bar {u}_{yy} = 0.01\)mm again with \(\dot {\varepsilon } = 10^{-15}\)s− 1, cf. Fig. 5. In this study, we use 4-fold domain symmetry and the corresponding symmetry boundary conditions of Fig. 2a.

Fig. 5
figure 5

Illustration of the biaxial load case

We present optimized microstructures obtained using three different initial designs. Figure 6 a and b show two designs optimized with δ4 = 0.1 and δ4 = − 0.1, respectively. The topology of Design 6a consists of perpendicular bars aligned in the loading directions, whereas Design 6b has a more complex microstructure with both rectangular and elliptical material regions. This difference is reflected in the performance as Design 6a absorbs 1.0 % more viscoplastic energy than Design 6b, (cf. Fig. 7), i.e., Design 6b is a local maxima. We also note that Design 6a absorbs approximately 123 % more specific viscoplastic energy than a fully solid unit cell in which \(\hat {c}=1\).

Fig. 6
figure 6

Undeformed optimized unit cells (left) and array of 3 × 3 unit cells (right)

Fig. 7
figure 7

Topology evolutions of Designs 6a–6c (top) and normalized viscoplastic work Wvp/(σy0Vo) versus optimization iteration, corresponding to the solid, solid-star, and solid-circle lines, respectively (bottom)

Next, the optimization is performed using a random initial 8-fold symmetric perturbation δrnd = 0.1. The optimized design, cf. Fig. 6c, consists of an octagonal frame with connected bars aligned in the loading directions. The energy absorption of this design is also slightly (1.1 %) lower than that of Design 6a.

Designs 6a–c are alternate solutions to the optimization problem. And as shown in Fig. 7, the resulting energy absorption capabilities are not equal. In the upper part of this figure, we also see that the convergence towards a distinct solid-void design is slower for Designs 6b–c as compared with Design 6a. It is also seen that only minor design changes are observed when the thresholding parameter βH is increased after optimization iteration 80, but the viscoplastic work increases as the intermediate values of \(\hat {c}\) are thresholded closer towards 0 and 1.

We conclude that that the initial design choice is crucial, and that several local maxima to this optimization problem exist.

7.4 Varying biaxial load paths

Next, we demonstrate the importance of the path-dependent material model for material design under biaxial load cases. We consider the same final load state \(\bar {u}_{xx} = \bar {u}_{yy} = 0.01\)mm at t = Tf as for the previous optimization case, but vary the load path. Specifically, we use the same initial design δ4 = 0.1 and compare the optimized Design 6a, obtained with the loading conditions \(\bar {u}_{xx}(t) = \bar {u}_{yy}(t) = t/T^{f} \cdot 0.01 \)mm, to several other loading scenarios with \(\bar {u}_{xx}(t) \ne \bar {u}_{yy}(t) \) for 0 < t < Tf. Figure 8 shows the resulting optimized designs with corresponding prescribed trajectories \(\bar {u}_{xx}(t)\) and \(\bar {u}_{yy}(t)\) which are split into two piecewise linear trajectories

$$ f_{\bar{u}}(t,a) = \left\{ \begin{array}{ll} a\cdot t/T^{f}, &\quad t/T^{f} \!<\! 0.5,\\ a - 0.01 + (0.02 -a) \cdot t/T^{f}, &\quad t/T^{f} \!\geq\! 0.5, \end{array}\right. $$
(63)

where the parameter a values corresponding to each design appear in Table 1.

Table 1 Parameter a values for nonproportional biaxial loads

As seen in Fig. 8, different loading trajectories generate different optimized microstructures. This study clearly demonstrates the importance of including the path-dependent model for maximation of viscoplastic energy in microstructural design.

Fig. 8
figure 8

Undeformed optimized array of 3 × 3 unit cells (left) with corresponding load path (right)

7.5 Displacement constraints

In the following examples, we design microstructures with nearly zero transverse contraction when subjected to uniaxial tensile loading, e.g., for the \(\bar {u}_{xx}\) loading, the constraint \(g_{\bar {u}_{yy}}\) is included in the optimizations with the target trajectory \(\bar {u}_{yy}^{*} = 0 \ \forall \ {t_{n} \in [0, \ T^{f} ]} \). To avoid constraining both the transverse and z-component displacements, plane stress conditions are used, i.e., periodicity is not enforced on the z-faces. An initial design with δrnd = 0.002 is used. For the cases where viscous effects are studied, i.e., when \(\dot {\varepsilon } \neq 10^{-15}\)s− 1, the loading rate is ramped up from \(\dot {\varepsilon } = 0.5\)s− 1 to the specified final value during the first two optimization iterations. This avoids the possibility that the initial design response is nearly elastic which we found otherwise hinders the optimization.

7.5.1 Influence of strain rate and load magnitude

In this example, we design material microstructures that perform equally under two uniaxial loads \(\bar {u}_{xx}\) and \(\bar {u}_{yy}\) by imposing the 8-fold domain symmetry illustrated in Fig. 2b. Thus, the computational effort is eased as only the single uniaxial load case \(\bar {u}_{xx}\) needs be simulated. The effect of the load magnitude and loading rate on the microstructural topology is demonstrated by performing five different optimizations (Figs. 9 and 11). In the first three Designs 9a–9c are optimized under the moderate loads \(\bar {u}_{xx} = 0.01\)mm, with slow \(\dot {\varepsilon }_{xx} = 10^{-15}\)s− 1, intermediate \(\dot {\varepsilon }_{xx} = 100\)s− 1, and fast \(\dot {\varepsilon }_{xx} = 500\)s− 1 load rates (cf. Section 7.1 and Fig. 3).

Fig. 9
figure 9

Undeformed optimized designs (left) and array of 3 × 3 unit cells (right) under the load \(\bar {u}_{xx} = 0.01\)mm

We compare the performance of these three designs by exposing them to the same load magnitude \(\bar {u}_{xx} = 0.01\)mm and fast loading rate \(\dot {\varepsilon }_{xx} = 500\)s− 1, and measure their corresponding transverse contraction \(- \bar {u}_{yy}\), cf. Fig. 10.

Fig. 10
figure 10

Contraction \(-\bar {u}_{yy}\) versus load \(\bar {u}_{xx}\) for Designs 9a–c under the same \(\bar {u}_{xx} = 0.01\)mm load case with \(\dot {\varepsilon } = 500\)s− 1. Top two curves: responses of Designs 9a and 9b, which are not optimized for the fast \(\dot {\varepsilon } = 500\)s− 1 load rate. Both Design 9a and Design 9b violate \(g_{{}\bar {u}_{yy}} \leq 0\). Bottom curve: response of Design 9c which satisfies \(g_{{}\bar {u}_{yy}} \leq 0\)

In this figure we see that, although Designs 9a and 9c have a similar microstructure, Design 9a violates the contraction constraint (35), cf. the solid-triangle line in Fig. 10. Design 9b, corresponding to the solid-circle line of Fig. 10, also contracts more than the allowed tolerance \(\delta _{\bar {u}} = 3 \cdot 10^{-3}\bar {u}_{xx}\) = 3 ⋅ 10− 5mm. Figure 10 also shows that the contraction of all three designs is linearly increasing for loads \(\bar {u}_{xx}\) less than approximately 0.002 mm but is nonlinear for higher loads \(\bar {u}_{xx}>0.002\)mm. Clearly, the linear/nonlinear contraction versus load is a consequence of elastic and viscoplastic material response.

The last two optimizations are performed for a higher load \(\bar {u}_{xx} = 0.05\)mm, at slow \(\dot {\varepsilon }_{xx} = 10^{-15}\)s− 1 and fast \(\dot {\varepsilon }_{xx} = 500\)s− 1 loading rates. The optimized designs are shown in Fig. 11. Although no obvious similarities can be seen from the optimized unit cells (cf. the left column of Fig. 11), these two optimizations generate two microstructures with similar topology as seen in the right column of Fig. 11. Both Designs 11a and 11b satisfy the displacement constraint as shown by the center solid-circle and solid-triangle lines of Fig. 12a.

Fig. 11
figure 11

Undeformed optimized designs (left) and array of 3 × 3 unit cells (right) under the load \(\bar {u}_{xx} = 0.05\)mm

Fig. 12
figure 12

Performance of Designs 11a and 11b. a contraction \(-\bar {u}_{yy}\) versus load \(\bar {u}_{xx}\) and b normalized macroscopic force Fxx/(σy0Ao) versus load \(\bar {u}_{xx}\). The red lines with filled markers correspond to responses obtained from simulations with interchanged loading rates

We further analyze the performance of the two Fig. 11 designs by plotting their corresponding macroscopic force-displacement curves, cf. Fig. 12b. The two center solid-circle and solid-triangle lines correspond to the macroscopic force-displacement responses of Designs 11a and 11b, respectively. As expected, Design 11b which is optimized for a higher loading rate is exposed to higher macroscopic forces.

Next, we simulate the responses of Designs 11a and 11b at the load \(\bar {u}_{xx} = 0.05\)mm, but with interchanged loading rates, i.e., Designs 11a and 11b are subjected to the load rates \(\dot {\varepsilon } = 500\)s− 1 and \(\dot {\varepsilon } = 10^{-15}\)s− 1, respectively. Results of these simulations are displayed with red lines in Fig. 12 a and b.

The bottom two curves of Fig. 12b present the force-displacement responses of Designs 11a and 11b when subjected to the slow loading rate. As expected, Design 11b which is not optimized for this load rate performs worse than Design 11a; it supports less force and violates the displacement constraint, in fact it has negative transverse contraction. Surprisingly, Design 11a supports more force and hardens more than Design 11b when it is exposed to a fast loading rate. However, it violates the displacement constraint. These simulations show that more contraction leads to higher viscoplastic energy absorption. They also demonstrate that it is necessary to include rate effects in the optimization of viscoplastic microstructures.

We also compare the performance of Designs 9a and 11a by exposing them to the same load \(\bar {u}_{xx} = 0.05\)mm and slow \(\dot {\varepsilon }_{xx} = 10^{-15}\)s− 1 load rate. Figure 13 a shows that Design 9a which is optimized for the moderate load level \(\bar {u}_{xx}=0.01\)mm performs slightly better than Design 11a which is optimized for the \(\bar {u}_{xx} = 0.05\)mm load, i.e., in this example, the energy absorption capability is not improved when optimizing for high load magnitudes.

Fig. 13
figure 13

a Normalized viscoplastic energy absorption versus load \(\bar {u}_{xx}\) and b\(-\bar {u}_{yy}\) versus \(\bar {u}_{xx}\), for Designs 11a and 9a. Design 9a, optimized for \(\bar {u}_{xx}=0.01\)mm, absorbs 2.7 % more viscoplastic energy but also has 6.5 times higher RMSD of \(\bar {u}_{yy}\) from the target \(\bar {u}_{yy}^{*} = 0\) during the \(\bar {u}_{xx} = 0.05\)mm load than Design 11a (which is optimized for \(\bar {u}_{xx} = 0.05\)mm)

However, Design 11a fails to satisfy the displacement constraint when subjected to the larger load, cf. Fig. 13b, which shows strain-dependent contraction in the \( \bar {u}_{xx} \in [0.01, 0.05]\)mm interval, in contrast to Design 11a that exhibits nearly zero contraction throughout the load interval. Similar to the results presented in Fig. 12, this comparison shows that higher contraction leads to increased viscoplastic energy absorption.

7.5.2 Multiple uniaxial tensile loads: influence of load magnitude

In this final example, we optimize the unit cell under multiple load cases. Specifically, both longitudinal and transversal load cases are simulated using 4-fold domain symmetry with symmetry boundary conditions (cf. Fig. 2a). We include both the \(g_{\bar {u}_{yy}}\) and \(g_{\bar {u}_{xx}}\) constraints in the optimization.

The objective is to maximize the geometric mean of the viscoplastic energy absorption, \(({W^{vp}_{x} \cdot W^{vp}_{y}})^{1/2}\), where \(W^{vp}_{x}\) and \(W^{vp}_{y}\) are the energies absorbed under the uniaxial loads \(\bar {u}_{xx}\) and \(\bar {u}_{yy}\), respectively. The optimization is performed for the load magnitudes 0.01 mm, 0.05 mm, and 0.10 mm with the slow loading rate \(\dot {\varepsilon } = 10^{-15}\)s− 1, all initiated with the same design. The optimized designs are illustrated in Fig. 14. The microstructural Design 14a, optimized for the moderate load magnitude 0.01 mm, consists of a rectangular pattern of material with slight offsets to satisfy the near zero contraction constraints, whereas Designs 14b and 14c, optimized for the higher load magnitudes 0.05 mm and 0.10 mm, respectively, consist of more complex topologies. All three designs satisfy the displacement constraints.

Fig. 14
figure 14

Undeformed optimized designs (left) and array of 3 × 3 unit cells (right)

The macroscopic force-displacement responses of Designs 14a–14c, plotted in Fig. 15, show that Design 14a supports higher forces and thus can dissipate more viscoplastic energy than Designs 14b and 14c in the load interval [0,0.01] mm, for both the \(\bar {u}_{xx}\) and \(\bar {u}_{yy}\) loads. It is also seen that Design 14b supports higher forces than Design 14c in the load interval [0,0.05] mm for both loads.

Fig. 15
figure 15

Normalized macroscopic forces Fxx/(σy0Ao) and Fyy/(σy0Ao) versus load \(\bar {u}_{xx}\) and \(\bar {u}_{yy}\) for Designs 14a–c

Finally, we compare Designs 14a and 14c, optimized for the load magnitudes 0.01 mm and 0.10 mm, respectively, by exposing them to the same high load interval [0,0.10] mm. Figure 16 shows pronounced difference in the contraction versus load, e.g., \(-\bar {u}_{yy}\) versus \(\bar {u}_{xx}\) between Designs 14a and 14c. Indeed, Design 14a has nearly zero contraction in the [0,0.01] mm load interval for which it was designed but shows a considerable strain-dependent contraction in the (0.01,0.10] mm load interval.

Fig. 16
figure 16

Contraction \(-\bar {u}_{yy}\) and \(-\bar {u}_{xx}\) versus load \(\bar {u}_{xx}\) and \(\bar {u}_{yy}\) for Designs 14a and 14c

Figure 17 shows the normalized macroscopic force-displacement responses for Designs 14a and 14c. Here it is seen that Design 14c, optimized for the high load magnitude 0.10 mm, softens for loads \(\bar {u}_{xx}, \bar {u}_{yy} > 0.08\)mm, whereas Designs 14a exhibits macroscopic hardening. Similar to the previous studies, this example demonstrates that higher contraction (cf. Fig. 16) leads to more supportive structures (cf. Fig. 17) and thus higher viscoplastic energy absorption.

Fig. 17
figure 17

Normalized macroscopic forces Fxx/(σy0Ao) and Fyy/(σy0Ao) versus loads \(\bar {u}_{xx}\) and \(\bar {u}_{yy}\) for Designs 14a and 14c

8 Conclusions

We have established a topology optimization framework for designing periodic microstructural composite materials for maximum viscoplastic energy absorption. Constraints have also been imposed on designs such that, under uniaxial tensile loads, their macroscopic transverse contraction is close to zero. The optimization problems are solved using the MMA scheme and sensitivities required to drive the algorithm are obtained using the adjoint method. The effects of strain rate, load magnitude, and path-dependency are shown by optimizing designs under several complex macroscopic load cases. It is clear that these effects are of great importance on the optimized microstructural design. The present approach allows each material point in a macroscopic structure to be tailored to the loading rate, load path, and load magnitude it experiences.

The unit cell that characterizes the design domain has been discretized with 3D finite elements. This formulation enables a smooth transition to large-scale 3D problems by relaxing of the plane strain and plane stress assumptions. In future work, we will apply parallel programming to the framework to efficiently solve such large-scale problems.