0% found this document useful (0 votes)
65 views32 pages

Gao Et Al. - 2021 - IgaTop An Implementation of Topology Optimization For Structures Using IGA in MATLAB

This document presents IgaTop2D, a 56-line MATLAB code for isogeometric topology optimization (ITO) using non-uniform rational B-splines (NURBS). The code includes subfunctions for geometry modeling, isogeometric analysis, boundary conditions, density initialization, smoothing, stiffness calculations, objective function evaluation, optimization, and results plotting. Several numerical examples are provided to demonstrate the effectiveness of the ITO implementation for structural optimization problems.

Uploaded by

Antonio Benigni
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
65 views32 pages

Gao Et Al. - 2021 - IgaTop An Implementation of Topology Optimization For Structures Using IGA in MATLAB

This document presents IgaTop2D, a 56-line MATLAB code for isogeometric topology optimization (ITO) using non-uniform rational B-splines (NURBS). The code includes subfunctions for geometry modeling, isogeometric analysis, boundary conditions, density initialization, smoothing, stiffness calculations, objective function evaluation, optimization, and results plotting. Several numerical examples are provided to demonstrate the effectiveness of the ITO implementation for structural optimization problems.

Uploaded by

Antonio Benigni
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 32

Structural and Multidisciplinary Optimization (2021) 64:1669–1700

https://doi.org/10.1007/s00158-021-02858-7

EDUCATIONAL PAPER

IgaTop: an implementation of topology optimization for structures


using IGA in MATLAB
Jie Gao 1,2 & Lin Wang 1,2 & Zhen Luo 3 & Liang Gao 4

Received: 11 October 2020 / Revised: 2 December 2020 / Accepted: 19 January 2021 / Published online: 3 August 2021
# The Author(s), under exclusive licence to Springer-Verlag GmbH Germany, part of Springer Nature 2021

Abstract
In this paper, the key intention is to present a compact and efficient MATLAB code for the implementation of the
isogeometric topology optimization (ITO) method published by Jie Gao et al. (Int J Numer Methods Eng 119: 991–
1017, 2019). A main function IgaTop2D with eight inputs in the 56-line MATLAB code is developed, mainly including
nine components: (1) Geom_Mod subfunction that uses non-uniform rational B-splines (NURBS) to develop the geomet-
rical model; (2) the preparation of the isogeometric analysis (IGA) that is implemented in Pre_IGA subfunction; (3) the
definition of Dirichlet and Neumann boundary conditions in Boun_Cond subfunction; (4) the initialization of control
densities and the densities at Gauss quadrature points implemented from lines 11 to 20 of the main function; (5) a
Shep_Fun subfunction for the smoothing mechanism; (6) IGA to solve structural responses in three steps: compute
IGA element stiffness matrices in Stiff_Ele2D subfunction, assemble all IGA element stiffness matrices in
Stiff_Ass2D subfunction, and Solving; (7) calculation of the objective function and sensitivity analysis in lines
32–46 of IgaTop2D; (8) OC to advance design variables; and (9) the representations of the optimized solutions in
Plot_Data and Plot_Topy subfunctions. Finally, several numerical examples are shown to demonstrate the effective-
ness of the ITO MATLAB implementation IgaTop2D, which are attached in the Appendix, also offering an entry point for
newcomers who have an interest in the field of the ITO.

Keywords Topology optimization . Isogeometric analysis . NURBS . MATLAB

1 Introduction design domain (Bendsøe and Kikuchi 1988), the field of


topology optimization has undergone extensive develop-
Since the seminar research reports that a homogenization ments owing to its superior capability. In recent years, sev-
method is applied to generate the optimized topologies in a eral topology optimization methods with their specific
functions have been developed, such as the solid isotropic
Responsible Editor: Shikui Chen material with penalization (SIMP) method (Zhou and
Rozvany 1991; Bendsøe and Sigmund 1999), the evolu-
* Liang Gao tionary structural optimization (ESO) method (Xie and
[email protected] Steven 1993), the level set method (LSM) (Sethian and
1 Wiegmann 2000; Wang et al. 2003; Allaire et al. 2004),
Department of Engineering Mechanics, School of Aerospace
Engineering, Huazhong University of Science and Technology, 1037 and the moving morphable components/voids (MMC/Vs)
Luoyu Road, Wuhan 430074, Hubei, China method (Guo et al. 2014; Yang et al. 2016; Zhang et al.
2
Hubei Key Laboratory for Engineering Structural Analysis and 2017). These topology optimization methods have been
Safety Assessment, Huazhong University of Science and also applied to discuss several problems, such as heat con-
Technology, Wuhan 430074, China duction (Kato et al. 2018; Zhao et al. 2020b), materials
3
The School of Mechanical and Mechatronic Engineering, University design (Sigmund 1994; Vogiatzis et al. 2017a; Gao et al.
of Technology Sydney, 15 Broadway, Ultimo, NSW 2007, Australia 2018), and concurrent design (Xia and Breitkopf 2014; Li
4
The State Key Lab of Digital Manufacturing Equipment and et al. 2016; Wang et al. 2017a; Gao et al. 2019b; Chu et al.
Technology, Huazhong University of Science and Technology, 1037 2019; Zhang et al. 2020b).
Luoyu Road, Wuhan 430074, Hubei, China
1670 J. Gao et al.

As we know, the classic finite element method (FEM) to discuss several numerical optimization problems, for
(Hughes 2012) has achieved a broad of applications in instance, the multi-material structures (Gao et al. 2020a)
topology optimization to solve the unknown structural and the rational design of mechanical metamaterials (Gao
responses. In the FEM, spline basis functions are used et al. 2019d, 2020b; Xu et al. 2020). The applications of
in the construction of the computer-aided design (CAD) IGA to discuss the design of mechanical metamaterials
model, whereas Lagrangian and Hermitian polynomials with the auxetic were also realized using the shape opti-
are adopted in computer-aided engineering (CAE) model. mization by Wang et al. (2017b) and Wang and Poh
The disunification leads to several limitations in the FEM (2018). The T-splines-based ITO method was developed
to compute the structural responses: (1) the finite element (Zhao et al. 2020a) to discuss the optimization of arbi-
mesh can only approximate the initial structural geometry, trarily shaped domains. The ITO for the anisotropic meta-
which lowers numerical precision in analysis; (2) the low- materials to control high-frequency electromagnetic wave
order (C0) continuity of structural responses exists be- was addressed by Nishi et al. (2020). Gao et al. (2020c)
tween the neighboring finite elements; (3) a prohibitive comprehensively review the ITO in terms of its methods,
time cost achieves a finite element mesh with higher qual- applications, and prospects.
ity. The IGA (isogeometric analysis) proposed by Hughes The seminar work implemented topology optimization
and his co-workers (Hughes et al. 2005; Cottrell et al. using the 99-line MATLAB code (Sigmund 2001), and the
2009) can be viewed as a promising and powerful alter- promising alternatives of the 99-line with the higher compu-
native of the FEM to implement finite element analysis, tational efficiency were developed by Andreassen et al.
where the integration of the CAD model and CAE model (2011) and Ferrari and Sigmund (2020). Up to now, a large
using the same spline basis functions can effectively re- number of educational papers with MATLAB codes have
move the above numerical deficiencies of the FEM and been published to considerably promote the developments
offer more benefits for the latter optimization. of topology optimization, such as MATLAB codes for the
The earlier work (Seo et al. 2010) discussed the ITO LSM (Challis 2010; Otomori et al. 2015; Vogiatzis et al.
(isogeometric topology optimization) using trimmed 2017b; Wei et al. 2018), the 199-line MATLAB code for
spline surfaces to represent the outer and inner boundaries pareto-optimal tracing in topology optimization (Suresh
of design. An isogeometric approach that uses the concept 2010), the MATALB code for the ESO/BESO method
of density was developed by Hassani et al. (2012), where (Huang and Xie 2010; Da et al. 2018), the MATLAB codes
the IGA was applied to solve structural responses instead for topology optimization using unstructured polygonal finite
of the FEM. In the study of Dedè et al. (2012), the com- element meshes (Talischi et al. 2012; Sanders et al. 2018), the
bination of the phase field model and IGA was discussed 169-line MATLAB code for 3D topology optimization (Liu
to realize topology optimization. A B-spline space was and Tovar 2014), materials design (Xia and Breitkopf 2015),
developed for the density-based topology optimization concurrent topology optimization (Gao et al. 2019c), a 101-
(Qian 2013). In the study of Wang and Benson (2016), line MATLAB code for topology optimization of binary
an ITO method that employs a parameterized level set structures (Picelli et al. 2020), the implementation of the
method (Wang and Wang 2006) and IGA was developed MMC (Zhang et al. 2016), a 128-line MATLAB code for
for structural compliance problems. The considerations of the topology optimization via sequential integer program-
IGA into the framework of level set method were also ming and canonical relaxation algorithm (Liang and Cheng
studied by Ghasemi et al. (2017), Xia et al. (2017), 2020), and a MATLAB implementation of geometrically
Jahangiry and Tavakkoli (2017), and Nguyen et al. nonlinear structures (Chen et al. 2019). Meanwhile, the
(2020). The IGA for multiresolution topology optimiza- MATLAB implementations of IGA were also given, like a
tion was discussed (Lieu and Lee 2017a) and then applied suite of free software tools “GeoPDEs” (de Falco et al. 2011;
to study the multi-material optimization (Lieu and Lee Vázquez 2016). A brief overview and systematical
2017b). The topology optimization for the multi-material implementations of IGA were also addressed by Nguyen
and functionally graded structures using IGA was also et al. (2015). Meanwhile, a simplified description and imple-
studied by Taheri and Suresh (2017). In the study of mentation details for the considerations of IGA within the
Hou et al. (2017), the combination of IGA and MMC to existing FEA code were also given by Agrawal and Gautam
develop an explicit ITO method was realized. Later, the (2019).
discussions about the explicit ITO method using MMC/Vs The considerations of IGA into topology optimization
and IGA were extensively addressed by Xie et al. (2018, by replacing FEM to develop the ITO methods for sev-
2020), Gai et al. (2020), Du et al. (2020), and Zhang et al. eral numerical problems have received more and more
(2020a). An ITO method with an enhanced density distri- attentions in recent years. Moreover, the superior fea-
bution function (DDF) to show the structural topology tures of IGA offering more benefits for topology optimi-
was developed by Gao et al. (2019a), which was adopted zation have been also addressed in previously mentioned
IgaTop: an implementation of topology optimization for structures using IGA in MATLAB 1671

works. However, to the best knowledge of the authors,


Find : ρi; j ði ¼ 1; 2; ⋯; n; j ¼ 1; 2; ⋯; mÞ
the descriptions about the implementation of the ITO in
1
MATLAB are still lacking. Hence, the main intention of Min : J ðu; X Þ ¼ ∫Ω εðuÞT DðX ðξ; ηÞÞεðuÞdΩ
the current work is to present a compact and efficient 8 2
>
> aðu; δuÞ ¼ l ðδuÞ; ujΓ D ¼ g; ∀δu∈H 1 ðΩÞ ð1Þ
MATLAB code for the implementation of the ITO meth- <
1
od proposed by Jie Gao et al. (Gao et al. 2019a). S:t : G ðX Þ ¼ ∫Ω X ðξ; ηÞυ0 dΩ−V max ≤ 0
>
> j Ω j
Besides its educational purposes for the newcomers, it :
0 ≤ ρi; j ≤ 1
can also serve as an entry-level tutoring to lower the
barrier for researchers who have an interest in familiari- where ρi,j is the initial density defined at control points, name-
zation of the ITO and applications to other problems. ly control density; n and m denote the numbers of control
Although no new fundamental findings are presented, points in two parametric directions ξ and η, respectively; J is
the main contributions of the paper include the follow- the objective function defined by the structural compliance; X
ing: (1) a complete and self-contained MATLAB imple- is the DDF to represent the structural topology in design do-
mentation of the ITO with the effectiveness is developed main Ω; G is the volume constraint, in which υ0 is the volume
in IgaTop2D; (2) the MATLAB implementation of fraction of solid material and Vmax is the maximal material
density distribution function to represent the structural consumption; u denotes the displacement field in the design
topology is provided in Geom_Mod subfunction and domain, which will be solved by IGA, rather than the FEM; g
the initialization aspect in IgaTop2D; (3) the indicates the prescribed displacement vector on the Dirichlet
MATLAB implementation about how to employ the boundary ΓD; δu is the virtual displacement field in the kine-
IGA to solve structural responses in topology optimiza- matically admissible displacement spaceH1(Ω); a is the bilin-
tion is presented in Pre_IGA, Stiff_Ele2D, ear energy function; and l is the linear load function, defined
Stiff_Ass2D and Solving subfunctions; (4) the by:
MATLAB implementation on how to impose Dirichlet 
aðu; δuÞ ¼ ∫Ω εðuÞT DðX ðξ; ηÞÞεðδuÞdΩ
and Neumann boundary conditions in the ITO is provid- ð2Þ
ed in Boun_Cond; and (5) the representations of the l ðδuÞ ¼ ∫Ω fδudΩ þ ∫ΓN hδudΓN
optimized designs are provided in Plot_Data and
where f is the body force and h is the boundary traction on the
Plot_Topy subfunctions.
Neumann boundary ΓN.
The rest of this paper is organized as follows: a brief
description about the ITO method for the compliance-
minimization problem is given in Section 2, and
Section 3 provides the implementations in detail for the 3 IgaTop: a MATLAB implementation
ITO method. In Section 4, several numerical results are of the ITO method
provided to show the effectiveness of the current
MATLAB implementations, and the paper ends with the Before implementing the ITO in MATLAB, we should be
concluding remarks in Section 5. familiar with the basic conception of IGA with the spaces
and their relationships. It should be noticed that IGA is only
considered presently in the context of NURBS, namely the
2 The ITO formulation parametric space, physical space, and parent space.
for the compliance-minimization
Parametric space In the definition of NURBS for the structural
As we know, the basic intention of topology optimization is to geometry, the knot vectors with on ordered set of increasing
seek for the optimal layout of materials in a design domain. In parameters should be given. In IGA, the parametric space can
the ITO method proposed by Gao et al. (2019a), the optimizer be viewed as a pre-image of the NURBS mapping, and it is
aims to find an optimized density distribution function (DDF) defined by the nonzero intervals of knot vectors. Because all
with sufficient smoothness and continuity to represent the knot vectors can be normalized, the corresponding parametric
structural topology, and its iso-contour/surface represents the space can be reduced to a unit interval, square, or cube. In the
structural boundaries. In IGA, the same NURBS basis func- mathematical language, a symbol Ω∈ℝb d denotes the paramet-
tions in the DDF are applied to develop the solution space for ric space, and the related sets contain parametric coordinates
the unknown structural responses in the analysis. In the opti- ðΞ; ℋ ; Z Þ3D , where Ξ = {ξ1, ξ2, ⋯, ξn + p + 1}, ℋ = {η1, η2,
mization, the densities at control points work as design vari- ⋯ηm + q + 1}, and Z ¼ fζ 1 ; ζ 2 ; ⋯; ζ lþrþ1 g. ξ, η and ζ denote
ables to be evolved, and the mathematical formulation of the three parametric directions, respectively. p, q and r are the
ITO method for the compliance-minimization can be corresponding orders of NURBS basis functions, respectively.
expressed as: n, m and l denote the numbers of NURBS basis functions, also
1672 J. Gao et al.

control points, in three parametric directions, respectively. called in line 25 and a subfunction Plot_Topy with a 20-
Hence, the parametric space can be also defined as Ωb ¼ ½ξ ; line MATLAB code is called in line 47), and update design
1
ξnþpþ1 ⊗½η1 ; ηlþrþ1 ⊗½ζ 1 ; ζ mþqþ1 . variables and the DDF (a subfunction OC with a 14-line
MATLAB code is implemented in line 52). A systematic il-
lustration for the MATLAB implementation of the ITO meth-
Physical space A series of control points in space should be
od is shown in Fig. 1.
chosen in the definition of structural geometry using NURBS,
The main function in 2D code of a simple case using the
which constitute a control mesh in space. In the mathematical
ITO MATALB implementation is called from the MATLAB
language, the symbol Ω is applied to denote the physical space
prompt of the following line:
with a coordinate system (x, y, z). A NURBS mapping is de-
fined to transform the parametric space to the physical space.
In the physical space, the non-interpolatory of control points at
the structural geometry is an intrinsic feature. It is a notable
where L and W denote the structural sizes, namely the length
difference compared to conventional Lagrangian meshes in
and width, respectively. Order is an array that contains two
the FEM.
parameters, which indicate the elevated orders of NURBS
basis functions in two parametric directions. Num is also an
Parent space It is an additional space defined for the numerical
array that contains two parameters, which denote the total
integration in IGA to compute the stiffness matrices of all IGA
  numbers of knots in the unit interval in two para-
elements, termed by Ω e ¼ ½−1; 1ℝd . The symbol e η; e
ξ; e ζ is metric directions. It is noted that the new knots are assumed to
applied to denote the coordinates in the parent space. be uniformly inserted in the unit interval. BoundCon denotes
the choice of the boundary and load conditions. In the current
Mappings Compared to the conventional FEM, the use of MATLAB code, five numerical cases will be studied, namely
NURBS basis functions to construct the solution space in the cantilever beam (BoundCon = 1), MBB beam
analysis introduces the parametric space in IGA. The (BoundCon= 2), Michell-type structure (BoundCon= 3), L
isoparametric formulation is also employed to evaluate the beam (BoundCon= 4), and a quarter annulus (BoundCon=
elementary stiffness matrices. Hence, two mappings should 5). Vmax is the maximal material consumption. penal is the
b
be defined in IGA, including a mapping X : Ω→Ω from the penalty parameter in the optimization to push design variables
parametric space to the physical space and an affine mapping toward 0 or 1. rmin is the parameter to control the influence
e Ω b from the parent space to the parametric space. area of the current control point in the Shepard function,
Y : Ω→
which is the radius length of the circle domain along the first
In this section, we provide a detailed description about the
normal parametric direction.
MATLAB implementation of the ITO method for the
compliance-minimization problem. A main function
IgaTop2D with a 56-line MATLAB code is developed for 3.1 Geom_Mod: construct geometrical model using
the implementation of the ITO, and it mainly includes night NURBS
components, namely construct the geometrical model using
NURBS (a subfunction Geom_Mod with a 27-line As shown in Fig. 2, a NURBS surface for a quarter annulus is
MATLAB code is called in line 5), prepare IGA (a given, where the structural geometry is shown in Fig. 2a, the
subfunction Pre_IGA with a 39-line MATLAB code is im- corresponding NURBS surface is presented in Fig. 2b, and the
plemented in line 7), impose the Dirichlet and Neumann associated NURBS basis functions in two parametric direc-
boundary conditions (a subfunction Boun_Cond with a 38- tions are shown in Fig. 2c and d. We can easily find that the
line MATLAB code is called in line 9), initialize design definition of the structural geometry using NURBS needs the
variables and the DDF at Gauss quadrature points (lines 11– geometrical information of control points and the related
20), define the smoothing mechanism (a subfunction NURBS basis functions. In Fig. 2b, control points plotted with
Shep_Fun with a 22-line MATLAB code is called in line the red color constitute the control grid in space. The mathe-
22), use NURBS-based IGA to solve structural responses (a matical model of the NURBS surface is given as:
subfunction Stiff_Ele2D with a 33-line MATLAB code is n m
called in line 28, a subfunction Stiff_Ass2D with a 18-line Sðξ; ηÞ ¼ ∑ ∑ Rp;q
i; j ðξ; ηÞPi; j ð3Þ
i¼1 j¼1
MATLAB code is called in line 29, and a subfunction
Solving with a 14-line MATLAB code is implemented in where S denotes the NURBS surface for the structural geom-
line 30), compute the objective function and sensitivity anal-
etry in 2D, Pi, j is the (i, j)th control point, and Rp;q
i; j is the
ysis (lines 32–46), show the optimized solutions (a
NURBS basis function, which is defined by the B-spline basis
subfunction Plot_Data with a 16-line MATLAB code is
functions, given as:
IgaTop: an implementation of topology optimization for structures using IGA in MATLAB 1673

Fig. 1 A MATLAB implementation framework of ITO IgaTop2D

Fig. 2 A NURBS surface for a quarter annulus. a Quarter annulus, b NURBS surface, c NURBS basis functions in the first parametric direction, and d
NURBS basis functions in the second parametric direction
1674 J. Gao et al.

It should be noted that the fractions with the form 0/0 are
N i;p ðξÞM j;q ðηÞωij
Rp;q
i; j ðξ; ηÞ ¼ n m ð4Þ equal to zero in (6).
∑ ∑ N ðξÞM ðηÞω The subfunction Geom_Mod to develop the structural ge-
bi;p bj;q bibj
bi¼1 bj¼1 ometry using NURBS having five input parameters (L, W,
Order, Num and BoundCon) is called from the MATLAB
where Ni, p and Mj, q are the B-spline basis functions in two prompt by the command in line 5 of the main function
parametric directions, respectively. The B-spline basis func- IgaTop2D:
tions are defined recursively using the Cox-de Boor formula NURBS = Geom_Mod(L, W, Order, Num, BoundCon)
(De Boor 1978), starting with piecewise constants (p = 0), The output parameter is NURBS. It is a structure array con-
 taining six fields, namely form, dim, number, coefs,
1 if ξi ⩽ξiþ1
N i;0 ðξÞ ¼ ð5Þ knots and order. The output parameters in an example
0 otherwise: of Fig. 2b with the input parameters (L=10, W=10,
Order=[0 1], Num=[11 5] and BoundCon=5) can be
For p ⩾ 1, the B-spline basis functions are defined by: given as:

ξ−ξi ξiþpþ1 −ξ
N i;p ðξÞ ¼ N i;p−1 ðξÞ þ N iþ1;p−1 ðξÞ ð6Þ
ξiþp −ξi ξiþpþ1 −ξiþ1

Geom_Mod: In this subfunction, lines 2–21 define the ini- inserted in the initial knot vectors, realized by the function
tial knot vectors in two parametric directions, and the corre- nrbkntins. The corresponding NURBS surface 3 is shown
sponding control points with the homogeneous coordinates in Fig. 3d. The detailed implementations to construct the
(ωx, ωy, ωz, ω) are also provided, in which ω denotes the NURBS surface, the elevation of the orders, and the insertion
weight parameter in the definition of NURBS basis functions. of knots are called by the MATLAB lines:
In the Geom_Mod, a NURBS toolbox is developed by D.M.
Spink (Spink et al. 2010), and the detailed numerical algo-
rithms for NURBS are described by Piegl and Tiller (2012).
The function nrbmak in the NURBS toolbox is applied to
construct the NURBS surface 1 using the initial knot vectors
and control points, presented in Fig. 3b. The function The above process to develop the NURBS surface for the
nrbdegelev is employed to elevate the order of NRUBS quarter annulus corresponds to the k-refinement, namely first-
basis function in the second parametric direction; the corre- ly elevate the orders of NURBS basis functions and secondly
sponding NURBS surface 2 is displayed in Fig. 3c. Based on insert the knots in the initial knot vectors. Compared to the p-
the NURBS surface 2, a series of new knots are uniformly refinement, a much smaller number of NURBS basis
IgaTop: an implementation of topology optimization for structures using IGA in MATLAB 1675

Fig. 3 Three different NURBS surfaces for the quarter annulus. a Quarter annulus, b the NURBS surface 1, c the NURBS surface 2, and d the NURBS
surface 3

functions are required in the k-refinement. The details about (2009). The code of the Geom_Mod subfunction is given in
the k-refinement of NURBS are described by Cottrell et al. the following:

3.2 Pre_IGA: prepare IGA preparation of IGA is called from the prompt of the following
line with only one input parameter (NURBS):
In the preparation for IGA, the MATLAB code focuses on
developing the numbers of control points, IGA elements,
and Gauss quadrature points. The MATLAB code for the
1676 J. Gao et al.

The output parameters are CtrPts, Ele, and GauPts.


CtrPts is a structural array containing five fields, and the
corresponding details are given as:

The numbers of all control points with the corre- total number of control points that have the influence
sponding parametric directions are shown in Fig. 4. We on an IGA element and also denote the total number of
can easily find that each control point is identified with nonzero NURBS basis functions in an IGA element; (8)
the corresponding number ordered by the arc (the first CtrPtsNumU: the total number of control points that
parametric direction)-wise left-to-right and bottom-to-up, have the effect on each IGA element in the first paramet-
and the details of the numbers of control points are also ric direction; (9) CtrPtsNumV: the total number of con-
presented in Fig. 7a. trol points that have the effect on each IGA element in
Ele is also a structure array. Eleven fields are the second parametric direction; (10) CtrPtsCon: the
contained in this array, namely (1) NumU: the total num- numbers of control points that have the influence on
ber of IGA elements in the first parametric direction; (2) each IGA element (the ith row of this matrix contains
NumV: the total number of IGA elements in the second the six (equal to CtrPtsNum) indices of control points
parametric direction; (3) Num: the total number of IGA that have the influence on the ith IGA element, similar to
elements; (4) Seque the numbers of IGA elements in the matrix edofMat in 88-line MATLAB code
the physical space and the numbering manner in all (Andreassen et al. 2011), and the details of this matrix
IGA elements, which is same as control point, namely are given in Fig. 5); and (11) GauPtsNum: the total
the arc-wise left-to-right and bottom-to-up, also shown number of Gauss quadrature points for the latter numer-
in Fig. 7b; (5) KnotsU: the knot span related to each ical integration in each IGA element.
IGA element in the first parametric direction; (6) GauPts is also a structure array, which includes six
KnotsV: the knot span related to each IGA element in fields, namely (1) QuaPts the coordinates of Gauss
the second parametric direction; (7) CtrPtsNum: the quadrature points in the bi-unit parent space; (2)

Fig. 4 The numbers of all control


points
IgaTop: an implementation of topology optimization for structures using IGA in MATLAB 1677

Fig. 5 The matrix of


Ele.CtrPtsCon

Fig. 6 The matrix of


GauPts.Seque

Weigh: the corresponding weight parametric of each the quarter annulus is given in Fig. 7c, similar to the
Gauss quadrature point; (3) Num: the total number of numbering way of control points.
Gauss quadrature points; (4) CorU: the corresponding Pre_IGA: This subfunction focuses on calculating the
knots of Gauss quadrature points in the first parametric related data for the latter analysis. In lines 3–13, the
direction when mapping Gauss quadrature points from MATLAB implementation of the structural array
the parent space to the parametric space; (5) CorV: the CtrPts with five fields (Cordis, Num, NumU, NumV
corresponding knots of Gauss quadrature points in the and Seque) is performed. The structural array Ele with
second parametric direction when mapping Gauss quad- 11 fields (NumU, NumV, Num, Seque, KnotsU,
rature points from the parent space to the parametric KnotsV, CtrPtsNum, CtrPtsNumU, CtrPtsNumV,
space; and (6) Seque: the numbers of Gauss quadrature CtrPtsCon and GauPtsNum) is implemented from
points (the ith row of this matrix has the nine (equal to lines 15 to 26 of the subfunction code. A subfunction
Ele. GauPtsNum) indices of Gauss quadrature points Guadrature is called to calculate Gauss quadrature
that are located in the ith IGA element). The details of points with their corresponding weights. The MATLAB
the matrix GauPts.Seque are shown in Fig. 6. The implementation of the GauPts array with six fields
numbering mechanism of Gauss quadrature points in (QuaPts, Weigh, Num, CorU, CorV and Seque) is

Fig. 7 The numbers of control points, IGA elements, and all Gauss quadrature points. a The numbers of control points, b the numbers of IGA elements,
and c the numbers of Gauss quadrature points.
1678 J. Gao et al.
IgaTop: an implementation of topology optimization for structures using IGA in MATLAB 1679

programed in lines 26–37. The details for the MATLAB The 20-line MATLAB code for the subfunction
code of the subfunction Pre_IGA are given as: Guadrature is also given as:

3.3 Boun_Cond: define Dirichlet and CtrPts, BoundCon, NURBS and Dofs.Num. The corre-
Neumann boundary conditions sponding MATLAB line in the main function is given as:

The MATLAB implementation for the definition of Dirichlet


and Neumann boundary conditions is realized by the
subfunction Boun_Cond with four input parameters, including

There are two output parameters in the line, namely compute the parametric coordinates of the point that a force
DBoudary and F. DBoudary, which is a structural array only should be imposed, (2) evaluate all the nonzero NURBS basis
containing one field CtrPtsOrd that denotes the imposed lo- functions at the current parametric coordinates RS , and (3) im-
cations of the force in the physical space. However, if the total pose the force RS F at all related control points. From lines 3 to
number of control points in one parametric direction is an even 29, the Dirichlet and Neumann boundary conditions for five
and no control point will be located at the center of the physical numerical cases are given, where the lines 5–8 of MATLAB
space along one parametric direction, it is possible to impose the code are developed for the cantilever beam, lines 10–13 are
corresponding force at the exact control point. Hence, a simple defined for MBB beam, the MATLAB code in lines 15–18 is
method by Wang and Benson (2016) is also employed here: (1) programed for Michell-type structure, the MATLAB code for L
1680 J. Gao et al.

beam is in lines 20–23, and lines 25–28 are developed for the force in MATLAB is programmed in lines 30–38. The
quarter annulus. The numerical implementation of the imposed MATLAB code of the subfunction Boun_Cond is given as:

3.4 Initialize control densities and the DDF at Gauss smoothness of control densities; and (3) use a linear combina-
quadrature points tion of NURBS basis functions (used in the construction of the
NURBS surface for the initial structural geometry) with the
In the current ITO method, an enhanced DDF with the suffi- smoothed control densities applied to develop the correspond-
cient smoothness and continuity is developed to represent ma- ing DDF for the whole structural geometry. The mathematical
terial distribution in the design domain. The construction of equation of the DDF is given as:
the DDF mainly involves three steps: (1) assign a series of n m
discrete densities defined at control points, termed by control X ðξ; ηÞ ¼ ∑ ∑ Rp;q
i; j ðξ; ηÞe
ρi; j ð7Þ
i¼1 j¼1
densities; (2) define a smoothing mechanism to improve the
IgaTop: an implementation of topology optimization for structures using IGA in MATLAB 1681

In the optimization, the initial control densities work as de- the subfunction nrbbasisfun in NURBS toolbox is
sign variables to derive the advancement of the DDF, until the employed to evaluate the values of NURBS basis functions at
optimal material distribution with the expected structural per- the parametric coordinates of Gauss quadrature points, and the
formance can be found. In the representation of designs, control outputs contain N and id. In the matrix of N, the ith row has six
densities, acting as design variables, should be provided. values of NURBS basis functions at the corresponding para-
Meanwhile, the densities at Gauss quadrature points are calcu- metric coordinate of the ith Gauss quadrature point. In the ma-
lated to evaluate the stiffness matrices of all IGA elements. The trix of id, the ith row has six numbers of nonzero NURBS
representation of the DDF at Gauss quadrature points should be basis functions at the corresponding parametric coordinate of
also given. Finally, it is noted that the DDF is a representation the ith Gauss quadrature point. The first-order derivatives of
of the density in the whole design domain. The corresponding NURBS basis functions with respect to parametric directions
NURBS surface for the density should be also presented. are calculated at the corresponding parametric coordinate of the
The initial control densities with the values equal to one are ith Gauss quadrature point using nrbbasisfunder in the
defined in line 11 of the main program. With an input parameter NURBS toolbox, denoted by dRu and dRv. Based on (7), the
GauPts.Cor that denotes the coordinates of Gauss quadra- values of the DDF at Gauss quadrature points can be evaluated
ture points in the parametric space, the MATLAB command by calling the MATLAB code in line 20. The corresponding
nrbeval(NURBS, GauPts.Cor) is called to compute the MATLAB code for the initialization of control densities and the
coordinates of Gauss quadrature points in the physical space, DDF at Gauss quadrature points is given as:
namely the outputs GauPts.PCor and GauPts.Pw. Then,

3.5 Shep_Fun: define the smoothing where ψ is the Shepard function (Shepard 1968; Kang and
mechanism Wang 2011, 2012) and N and ℳ are the total numbers of
control densities located at the local support area of the current
The main intention of the Shepard function is to improve the control density in two parametric directions, respectively.
smoothness of the initial control densities in each iteration, Here, the compactly supported radial basis functions with C4
and the corresponding mathematical model is given as: continuity are adopted to define w, given as,
N ℳ    
wðϑÞ ¼ ð1−ϑÞ6þ 35ϑ2 þ 18ϑ þ 3 ð9Þ
e
ρi; j ¼ ∑ ∑ ψ ρi; j ρi; j
i¼1 j¼1
0 1 where ϑ = r/rm, rm is the radius of the influence area, and r is
N ℳ   N ℳ   the Euclidean distance from the current control density and the
B C
¼ ∑ ∑ @w ρi; j = ∑ ∑ w ρ Aρi; j ð8Þ other control density in the local support domain that corre-
i¼1 j¼1 bi;bj
bi¼1 bj¼1 sponds to a blue circle area shown in Fig. 8.
1682 J. Gao et al.

In the MATLAB code, the Shepard function to define the


smoothing mechanism is implemented by calling the line 22
with two input parameters (CtrPts and rmin) and two out-
puts (Sh and Hs). It is noted that rmin in the MATLAB
implementation denotes the radius length of the circle along
the normal parametric directions, generally equal to 2. As we
can see, the MATLAB implementation of the smoothing
mechanism is similar to the filtering mechanisms in the 88-
line SIMP code (Andreassen et al. 2011). However, they have
the intrinsic difference, and the detailed discussions are de-
scribed by Gao et al. (2019a). The MATLAB code of the
subfunction Shep_Fun can be given in the following:

Fig. 8 The Shepard function to smooth control densities


IgaTop: an implementation of topology optimization for structures using IGA in MATLAB 1683

3.6 Use IGA to solve structural responses


Ke ¼ ∫Ωe BT DBdΩe ð11Þ
In IGA, the same NURBS basis functions used in the above
The isoparametric formulation is employed in the calcula-
construction of the initial structural geometry and the DDF are
tion of element stiffness matrix, and the detailed derivations in
kept unchanged to develop the solution space for the unknown
MATLAB language are described by Gao et al. (2019c). In
structural responses, like the displacement, in analysis. Hence,
the evaluation of element stiffness matrix, the Gauss quadra-
the corresponding mathematical model is also given as:
ture method is employed, and the corresponding integration is
n m performed in a bi-unit area, namely the bi-unit parent element
Uðξ; ηÞ ¼ ∑ ∑ Rp;q
i; j ðξ; ηÞUi; j ð10Þ
i¼1 j¼1 space. As already given, two mappings X from the parametric
space to physical space and Y from the parent space to para-
As we can see, (10) has the same mathematical form with (3) metric space should be defined in IGA. An illustration in
and (7), with only a minor change of physical meanings of detail of these two mappings is provided in Fig. 9.
control coefficients. In (3), the physical coordinates of control Hence, (11) can be transformed into another form, given as:
points are used. In (7), each control point is assigned by a
density, and control densities work as the coefficients. In anal- ee
Ke ¼ ∫ BT DBj J1 jj J2 jd Ω ð12Þ
e
Ωe
ysis, each control point will be also assigned by structural re-
sponses, namely control responses acting as control coefficients where J1 and J2 are the Jacobi matrices of these two mappings
in the mathematical equation. In the MATLAB implementation X and Y, respectively. Meanwhile, the Gauss quadrature
to solve structural responses, three key components are in- method is employed to calculate (12). It is noticed that nine
volved, namely (1) calculate stiffness matrices of all IGA ele- Gauss quadrature points are chosen in each IGA element to
ments (it is realized by calling a subfunction Stiff_Ele2D in solve the IGA element stiffness matrices. Equation (12) can be
line 28 of the main function), (2) assemble all IGA element transformed into a new form, given as:
stiffness matrices using a subfunction Stiff_Ass2D imple-
3 3 n    γ   o
mented in line 29 of the main program, and (3) solve the struc- Ke ¼ ∑ ∑ BT ξ i ; η j X ξ i ; η j D0 B ξi ; η j j J1 jj J2 jϖi ϖ j
tural response by a subfunction Solving in line 30. i¼1 j¼1

ð13Þ
3.6.1 Stiff_Ele2D
The MATLAB implementation to solve all IGA element
The mathematical model for calculating IGA element stiffness stiffness matrices is called in line 28, given as:
matrices can be expressed by:

The subfunction Stiff_Ele2D has 12 input parameters, present the distribution of densities, including CtrPts field
namely (1) X is a structural array containing three fields to for control densities, GauPts field for the densities at Gauss

Fig. 9 The numerical integration of IGA element. a IGA mesh of a quarter annulus, b parametric space, and c parent element
1684 J. Gao et al.

quadrature points, and DDF field for the densities in design do- computation of the current IGA element stiffness matrix is
main; (2) penal is the penalty parameter, equal to 3; (3) Emin completed in a sub-loop from lines 14 to 29. In this sub-loop,
is the Young modulus of void materials to avoid numerical sin- Jacobi matrix J1, which denotes the first-order derivates of
gularity; (4) DH is material constitutive elastic tensor matrix; (5– physical space with respect to parametric space, is firstly cal-
7) three structure arrays CtrPts, Ele and GauPts; and (8–9) culated in lines 15–18, including dPhy_dPara and J1. The
dRu and dRv correspond to the first-order derivatives of strain-displacement matrix in each IGA element is calculated
NURBS basis functions with respect to two parametric direc- from lines 19 to 21, namely Be. In lines 22–24, the second
tions, respectively. Stiff_Ele2D outputs three parameters, Jacobi matrix J2, which denotes the first-order derivatives of
in which KE is a cell matrix containing all IGA element stiffness the parametric space with respect to parent space, is calculat-
matrices and dKE is a cell matrix containing the first-order de- ed, namely J2. Then, the current IGA element stiffness matrix
rivatives of all IGA element stiffness matrices with respect to the Ke, its derivatives dKe with respect to the densities of Gauss
densities of the Gauss quadrature points. dv_dg includes the quadrature points in the current IGA element, and the first-
first-order derivatives of volume constraint with respect to the order derivatives of volume constraint dv_dg with respect to
densities of the Gauss quadrature points. the densities of Gauss quadrature points in the current IGA
Stiff_Ele2D: the initial definitions of KE, dKE and element are calculated in lines 26–28, respectively. In the
dv_dg are implemented in lines 2–4. In lines 6–32, a MATLAB code, the calculation of IGA element stiffness ma-
MATLAB loop is programmed to compute all IGA element trices needs the information containing physical coordinates
stiffness matrices. The knots, numbers of control points, and of control points and the densities at Gauss quadrature points.
their corresponding physical coordinates of control points in The code of Stiff_Ele2D subfunction is given as follows:
each IGA element are firstly called in lines 7–11. Then, the
IgaTop: an implementation of topology optimization for structures using IGA in MATLAB 1685

3.6.2 Stiff_Ass2D of control points and all IGA elements, namely CtrPts and
Ele; (4) Dim denotes the structural dimension; and (5)
All IGA element stiffness matrices are assembled into a global Dofs.Num is the total number of degree of freedoms
stiffness matrix K by calling a subfunction stiff_Ass2D in (DOFs). The output parameter K denotes the global stiffness
line 29 of the main function with five input parameters, name- matrix. The corresponding MATLAB command can be given
ly (1) the cell matrix KE contains all IGA element stiffness as:
matrices; (2–3) two structural arrays include the information

Stiff_Ass2D: the indices II and JJ for two directions KX is called in lines 5–16. A final assembly to obtain the
of the matrix KX, which is another form of global stiffness global stiffness matrix K with a sparse form is performed in
matrix and a count ntriplets for the loop program, are line 17 of the subfunction. The MATLAB code of
defined from lines 2 to 4. The MATLAB code of the loop to Stiff_Ass2D is listed as:
realize the assembly of all IGA element stiffness matrices into

3.6.3 Solving line 30 of the main program. In six input parameters,


the detailed information of control points CtrPts,
The solving of global displacement field is realized in a boundary conditions DBoudary and BoundCon,
subfunction Solving with six inputs implemented in Dofs, the global stiffness matrix K, and the load force
1686 J. Gao et al.

F are included. The output corresponds to the global implementation of the subfunction solving is called by
displacement field U in the design domain. The a MATLAB line:

Solving: In lines 2 to 9, five different numerical cases are V_fixeddofs. Then, the matrix U is solved in lines 10 to
defined with the corresponding displacements equal to 0 at 13. The MATLAB code of the subfunction Solving is given
Dirichlet boundary conditions, namely U_fixeddofs and as:

3.7 Compute the objective function and sensitivity method is still adopted here to compute the above equations.
analysis During the optimization, the initial control densities act as
design variables; we should drive the first-order derivatives
The derivations of sensitivity analysis of the objective and of the objective and constraint functions with respect to the
constraint functions with respect to the design variables are initial control densities. A smoothing mechanism using
described by Gao et al. (2019a). Firstly, we compute the first- Shepard function and a linear combination of the NURBS
order derivatives of the objective and constraint functions with basis functions with the smoothed control densities are in-
respect to the DDF, given as: volved in the DDF. Using the chain rule, we derive the deriv-
8  
atives of the DDF with respect to the initial control densities,
> ∂J 1
< ¼ − ∫Ω εðuÞT γX γ−1 D0 εðuÞdΩ given as:
∂X 2 ð14Þ
> ∂G 1  
: ¼ ∫Ω υ0 dΩ ∂X ∂X ∂e ρi; j
∂X jΩj ¼ ¼ Rp;q ð ξ; η Þψ ρi; j ð15Þ
∂ρi; j ∂eρi; j ∂ρi; j
i; j

In the numerical implementations, the DDF at Gauss quad-


rature points is considered in (14), and the Gauss quadrature
IgaTop: an implementation of topology optimization for structures using IGA in MATLAB 1687

The final detailed form of sensitivity analysis of the objec- The MATLAB implementation of sensitivity analysis is
tive and constraint functions with respect to design variables given in lines 32–46 of the main function, mainly containing
can be explicitly described by: two steps based on the derivations of sensitivity analysis.
8   Firstly, the first-order derivatives of the objective and con-
> ∂J 1 γ−1 p;q
> T
< ∂ρ ¼ − 2 ∫Ω εðuÞ γ ðX ðξ; ηÞÞ Ri; j ðξ; ηÞψ ρi; j D0 εðuÞdΩ straint functions with respect to the DDF at the Gauss quad-
i; j
∂G   rature points are computed, and the corresponding MATLAB
>
> 1
: ¼ ∫Ω Rp;q
i; j ðξ; ηÞψ ρi; j υ0 dΩ implementation is called by the following command:
∂ρi; j jΩj
ð16Þ

J = 0;
dJ_dg = zeros(GauPts.Num,1);
for ide = 1:Ele.Num
Ele_NoCtPt = Ele.CtrPtsCon(ide,:);
edof = [Ele_NoCtPt,Ele_NoCtPt+CtrPts.Num];
Ue = U(edof,1);
J = J + Ue'*KE{ide}*Ue;
for i = 1:Ele.GauPtsNum
GptOrder = GauPts.Seque(ide, i);
dJ_dg(GptOrder) = -Ue'*dKE{ide}{i}*Ue;
end
end

Secondly, the chain derivatives of the DDF with respect to constraint functions with respect to the initial control densities
the initial control densities are calculated, and the MATLAB is realized by calling the corresponding command:
implementation for the derivatives of the objective and

3.8 OC: update design variables and DDF subfunction OC is developed with seven input parame-
ters, mainly including the DDF at control densities and
After computing the sensitivity analysis of the objective Gauss quadrature points given in a structural array X; the
and constraint functions with respect to the initial control Shepard function and NURBS basis functions developed
densities, the optimality criteria (OC) method is in the matrices Sh, Hs and R, respectively; and the sen-
employed here to solve the numerical optimization prob- sitivity analysis of the objective and constraint functions
lems. The MATLAB calling of the OC method is imple- with respect to design variables given in the matrices
m e n t e d i n l i n e 52 o f th e m a i n f u n c t i o n , a n d a dJ_dp and dv_dp, and Vmax denotes the maximal
1688 J. Gao et al.

material consumption in the optimization. The output calling of the OC method is performed in the corre-
parameter only contains the updated DDF at control den- sponding command, given as:
sities and Gauss quadrature points. The MATLAB

OC: In line 2, the updated parameters l1, l2 and move are the smoothing mechanism for control densities works in each
defined. The evolving of the design variables is implemented iteration, and the densities at the Gauss quadrature points are
in a while loop from lines 3 to 13, until the constraint for the applied to approximately calculate material volume fraction.
maximal material consumption is satisfied. It should be noted The MATLAB code of the subfunction OC is given as:

3.9 Plot_Data and Plot_Topy: represent the values of control densities. (2) The representation of
numerical results the densities at Gauss quadrature points, shown in
Fig. 10b; in the optimization, Gauss quadrature method
In the final representation of numerical results, five nu- is employed to calculate all IGA element stiffness matri-
merical designs in the optimization will be presented, ces; in each IGA element, nine Gauss quadrature points
namely (1) the representation of design variables that are chosen. In the final representation, there is no need to
correspond to the densities at control points, namely map control densities into densities at the center of all
control densities, in the design domain, presented in IGA elements working as IGA element densities. The
Fig. 10a. It is noted that the vertical direction denotes mapping will also introduce a large number of
IgaTop: an implementation of topology optimization for structures using IGA in MATLAB 1689

Fig. 10 The representation of the optimized designs: a the densities at points with the values higher than 0.5, and e the iso-contour of the DDF,
control points, namely control densities, b the DDF at Gauss quadrature namely the topology
points, c the DDF, d the 2D view for the densities at Gauss quadrature

intermediate densities. The densities at Gauss quadrature boundaries, and the discussions about the rationality of
points are more reasonable to present material distribu- the value equal to 0.5 are described by Gao et al. (2019a,
tion. (3) The DDF in the design domain to represent the 2020a). A function contourf in MATLAB is used
overall material distribution is also shown in Fig. 10c; a here to approximately plot the structural topology, and
function surf in MATLAB is adopted here to approx- the iso-contour of the DDF, namely the topology, is
imately present the DDF using a family of samples. (4) shown in Fig. 10e.
The 2D view of the densities at Gauss quadrature points The representation of numerical results involves two
with the values larger than 0.5 is given to approximately subfunctions Plot_Data and Plot_Topy. Firstly, a
describe the topology, shown in Fig. 10d. We can easily MATLAB implementation of the subfunction Plot_Data
find that it can be viewed as a discrete distribution of a with two input parameters (Num and NURBS) is called in line
series of point densities in design domain, similar to the 25 of the main function to construct some compulsory data for
layout of element densities. (5) It is assumed that the iso- the latter representation. The corresponding MATLAB com-
contour (the value 0.5) of the DDF represents structural mand is given as:

Two output parameters are contained, namely of all samples. The MATLAB implementation of the
DenFied and Pos. The first output parameter denotes DenFied is performed in lines 7–15, and the second
the detailed information for the latter samples to plot the out parameter denotes the positions of figures, imple-
DDF using the MATLAB function surf, including the mented in lines 2–6 of the subfunction Plot_Data,
knot vectors, and the corresponding physical coordinates and its MATLAB code is given as:
1690 J. Gao et al.

The MATLAB command for the subfunction quadrature points (GauPts and CtrPts), the detailed infor-
Plot_Topy with seven input parameters, mainly including mation for the samples of the DDF (DenFied), and the figure
the DDF structural array X, control points and the Gauss position Pos, is given as:

The MATLAB code for the representation of control den- plot the representation of 2D view of the densities at Gauss
sities is called in lines 2–4 of the subfunction, and the repre- quadrature points with the values larger than 0.5. In lines 17–
sentation of the densities at Gauss quadrature points is realized 19, the representation of the structural topology is
from lines 5 to 7. The MATLAB implementation of the rep- implemented.
resentation of the DDF is called in lines 8–12. Lines 13–16
IgaTop: an implementation of topology optimization for structures using IGA in MATLAB 1691

4 Numerical results IgaTop2D, the terminal criterion is that the L∞ norm of the
difference of control densities between two consecutive itera-
In this section, several numerical examples are tested to dem- tions is less than 1% or the maximum 150 iteration steps are
onstrate the effectiveness and efficiency of the MATLAB reached.
code IgaTop2D for the ITO method. In all numerical exam-
ples, the Poisson ratio is defined as 0.3, and Young’s moduli 4.1 Quarter annulus
for solids and voids are equal to 1 and 1e-9, respectively. A
personal laptop with the MATLAB R2018b (9.5.0.944444) is In this example, the quarter annulus with the boundary and
used. In next examples, the quarter annulus with boundary and load conditions shown in Fig. 3a is considered. The structural
load conditions, shown in Fig. 3a, is first considered here to sizes L and R are defined as 10 and 5, respectively. The al-
present the basic and positive features of the current ITO lowable material consumption in the optimization is equal to
method. Then, an L beam with boundary and load conditions 40%. In the construction of the geometrical model for the
is optimized by the MATLAB code. Finally, several bench- quarter annulus, the orders of NURBS basis functions in two
marks, including the cantilever beam, Michell-type structure, parametric directions are both set as 3. Hence, the input pa-
and MBB beam, are all tested using the current MATLAB rameter Order should be equal to [0 1]. It is assumed that
implementation framework. In the main function 101 × 51 knots with the unique values are used, and the input
1692 J. Gao et al.

parameter Num is [101 51]. The corresponding total number of surface for the quarter annulus is equal to 102 × 52. The opti-
all IGA elements in the physical space is equal to 100 × 50. mization of the quarter annulus using the current ITO method
The total number of control points to define the NURBS is performed by calling the MATLAB command:

The initial designs of the quarter annulus are presented in points is presented in Fig. 12d; and (5) the final structural
Fig. 11, where the distribution of control densities is displayed topology defined by the iso-contour (values equal to 0.5) of
in Fig. 11a, with all values equal to 1 in the design domain, the DDF in Fig. 12c is shown in Fig. 12e. As we can easily
and the distribution of the densities at Gauss quadrature points see, the final optimized DDF is characterized with the suffi-
is presented in Fig. 11b, also with all values equal to one, and cient smoothness and continuity, and the optimized structural
Fig. 11c shows the layout of the DDF in the whole design topology is also featured with the smooth structural bound-
domain. The initialization of the DDF keeps consistent with aries and distinct material interfaces between solids and voids.
the 88-line SIMP code with equal values of all element in the As already discussed by Gao et al. (2019a), the definition of
design domain. It should be noted that the equal values of the structural topology using the optimized DDF in an implicit
design variables can offer more benefits for the latter optimi- manner is simple but efficient. As shown in Fig. 13, the con-
zation of structures, namely avoiding a local optimum occur- vergent iterations of the structural compliance and volume
ring in the optimization. As already discussed by Gao et al. fraction during the optimization are provided, where the black
(2019a), design variables equal to 0 or the lower values in the curve represents the evolving of the objective function and the
initial design might be inclined to form the voids in the corre- advancement of volume fraction is displayed by the red curve.
sponding locations during the optimization, and it is difficult The final optimized value of the structural compliance is equal
to form the solids. A non-uniform distribution of design var- to 106.75, and the material volume fraction can arrive at the
iables offers the high possibility for the occurrence of the local prescribed maximal value of the consumption, namely 0.4. As
optimum solution in the design. However, we need to ensure we can easily see, the iterative curves of the objective and
the same possibility of design variables to be the voids or constraint function are both featured with a clear, smooth,
solids in each designable point of the initial design. Hence, a and fast convergence within the maximum iterative step equal
uniform distribution of design variables with same values in to 79, which shows the effectiveness and efficiency of the ITO
the initial design should be required in the optimization. method and also presents the validity of the current MATLAB
In Fig. 12, the optimized designs of the quarter annulus code IgaTop2D for the numerical implementation of the ITO
using the MATLAB code are provided, namely (1) the final method.
distribution of control densities is presented in Fig. 12a with a Meanwhile, it should be noted the iterative curve of the
series of discrete densities; (2) the optimized layout of the volume fraction in Fig. 13 shows the variation of the DDF
densities at Gauss quadrature points is shown in Fig. 12b, also in the optimization, rather than the final topology. The volume
with a family of discrete densities in the design domain; (3) the fraction of the final topology can be solved by slightly mod-
optimized DDF is displayed in Fig. 12c; (4) the 2D view of the ifying the DDF, namely χ → 1, ifχ ≥ 0.5 and χ → 0, ifχ < 0.5.
densities with values higher than 0.5 at Gauss quadrature The value of the volume fraction of the optimized topology is

Fig. 11 The initial designs of the quarter annulus: a control densities, b the densities at Gauss quadrature points, and c the DDF in the design domain
IgaTop: an implementation of topology optimization for structures using IGA in MATLAB 1693

Fig. 12 The optimized designs of the quarter annulus: a control densities, b the densities at Gauss quadrature points, c the DDF in the design domain, d
the 2D view of the densities with values higher than 0.5 at Gauss quadrature points, and e the structural topology

equal to 0.404, and we can obtain that it is nearly equal to the 4.2 L beam
prescribed value of material maximal consumption.
Meanwhile, nine intermediate designs of the DDF in the op- In this example, an L beam with the load and boundary con-
timization are also presented in Fig. 14, including iterations 1, ditions defined in Fig. 15 will be optimized using the devel-
3, 5, 12, 20, 27, 37, 57, and 79. We can easily find that the oped MATLAB code of the ITO method. As shown in
DDF can keep the sufficient smoothness and continuity in the Fig. 15, the origin of the physical coordinate plotted with the
optimization, without the wavy or zigzag features in the blue color is different from the origin of the parametric coor-
optimization. dinate with the red color. In the NURBS parametrization of

Fig. 13 The convergent histories


of the optimization for the quarter
annulus
1694 J. Gao et al.

Fig. 14 Iterations of the DDF in the optimization. a Iteration 1, b iteration 3, c iteration 5, d iteration 12, e iteration 20, f iteration 27, g iteration 37, h
iteration 57, and i iteration 79

the L beam, the first parametric direction is the L-shape in the


beam; the second parametric direction is along the horizontal
coordinate of the L beam. The structural sizes (L and W) of the
L beam are set at 10 and 5, respectively. In the optimization,
the maximal value of material volume fraction is defined as
0.3. In the NURBS parametrization of the L beam, we still
choose the NURBS basis functions with the third order in two
parametric directions, and the corresponding input parameter
Order should be equal to [1 1]. The same number of knots
101 × 51 with no repetitive values is still considered in the
current example, and the input parameter Num should be [101
51]. The IGA mesh contains 100 × 50 IGA elements, and the
total number of control points in the definition of NURBS
surface is equal to 102 × 52.
As shown in Fig. 16, the initial three designs containing the
Fig. 15 The structural geometry of L beam distribution of control densities in Fig. 16a with values equal
to one, the layout of densities at Gauss quadrature points in

Fig. 16 The initial designs: a control densities, b the densities at Gauss quadrature points, and c the DDF
IgaTop: an implementation of topology optimization for structures using IGA in MATLAB 1695

Fig. 16b with values equal to one, and the overall distribution provided. The ITO for the current L beam is implemented by
of the DDF in the whole design domain in Fig. 16c are both calling a line of MATLAB code:

The optimized numerical designs are presented in final topology shown in Fig. 17e is equal to 0.303,
Fig. 17, where the optimized layout of control densities and it is also almost equal to the pre-defined material
is shown in Fig. 17a, the optimized distribution of the volume fraction value 0.3, which shows the reasonabil-
densities at Gauss quadrature points is presented in Fig. ity of the representation of the structural boundaries
17b, the optimized DDF is distributed in Fig. 17c, the using the iso-contour of the DDF in an implicit manner.
view in 2D of the densities with the values higher than
0.5 at Gauss quadrature points is presented in Fig. 17d, 4.3 Other numerical examples
and the final topology of the L beam is provided in Fig.
17e. Firstly, we can easily see that the optimized DDF In this subsection, three numerical cases will be discussed,
is featured with the smoothness and continuity, which including the classic cantilever beam, Michell-type structure,
can offer more benefits for the latter representation of and MBB beam. A same feature of these three structures is
the structural topology. That is, the topology can have that a rectangular design domain is considered in the optimi-
the smooth structural boundaries and distinct interfaces zation. It is noted that the physical coordinate system and
using the iso-contour (0.5) of the DDF. The optimiza- parametric coordinate system will coincide in the rectangular
tion of the L beam is terminated at the 45th iteration design domain.
step, where the final optimized objective function is In the optimization of the cantilever beam, the structural
equal to 177.01 and the material volume fraction of sizes (L and W) are also set at 10 and 5, respectively. The
the DDF is equal to 0.3. The volume fraction of the orders of NURBS basis functions in the parametrization are

Fig. 17 The optimized designs of the quarter annulus: a control densities, b the densities at Gauss quadrature points, c the DDF in the design domain, d
the 2D view of the densities with values higher than 0.5 at Gauss quadrature points, and e the structural topology
1696 J. Gao et al.

Fig. 18 The optimized distributions of cantilever beam: a control densities, b the densities at Gauss quadrature points, c the 2D view of the densities with
values higher than 0.5 at Gauss quadrature points, d the DDF in the design domain, and e the structural topology

Fig. 19 The optimized distributions of Michell-type structure: a control densities, b the densities at Gauss quadrature points, c the 2D view of the
densities with values higher than 0.5 at Gauss quadrature points, d the DDF in the design domain, and e the structural topology

also equal to 3, and the input parameter Order is equal to [1 respectively. The orders of NURBS basis functions in the param-
1]. A family of 161 × 81 unique knots is used and the corre- etrization of the geometry are also equal to 3. The corresponding
sponding input parameter Num should be [161 81]. In the IGA input parameter Order is also equal to [1 1]. Meanwhile, a
mesh, 160 × 80 IGA elements are contained to discrete the family of 101 × 41 unrepetitive knots is considered in the para-
cantilever beam, and the total number of control points should metric space, and the related input parameter Num is [101 41]. In
be equal to 162 × 82. the IGA mesh, 100 × 40 IGA elements are employed in the
In the optimization of the Michell structure, the corresponding discretization of the Michell-type structure, and the total number
L and W in the structural sizes are defined as 10 and 4, of control points should be equal to 102 × 42.

Fig. 20 The optimized distributions of MBB beam: a control densities, b the densities at Gauss quadrature points, c the 2D view of the densities with
values higher than 0.5 at Gauss quadrature points, d the DDF in the design domain, and e the structural topology
IgaTop: an implementation of topology optimization for structures using IGA in MATLAB 1697

In the optimization of the MBB beam, the related corresponding input parameter Num is [241 41].
structure sizes L and W are set as 18 and 3, respective- Moreover, 240 × 40 IGA elements are included in the
ly. In the NURBS parametrization of the MBB beam, IGA mesh to discretize the MBB beam. The total num-
the third-order NRUBS basis functions are used, and the ber of control points should be equal to 242 × 42.
input parameter Order is also equal to [1 1]. Similarly, The corresponding MATLAB implementations for the
a series of 241 × 41 knots with unrepetitive values are cantilever beam, MBB beam, and Michell-type structure are
considered in the parametric space, and the realized by calling the following MATLAB commands:

The first line realizes the optimization of the cantile- mainly involves the construction of the geometrical model
ver beam, and the optimizations of MBB beam and the using the NURBS, the preparation for IGA, the definition
Michell-type structures are realized in the second and of boundary conditions, the initialization of the DDF at
third lines, respectively. The optimized solutions for control points and Gauss quadrature points, the definition
three numerical examples are shown in Figs. 18, 19 of smoothing mechanism, the IGA to solve structural re-
and 20, where the optimized designs of the cantilever sponses, the calculation of the objective function and sen-
beam are presented in Fig. 18; Fig. 19 presents the final sitivity analysis, the update of the design variables and the
optimized designs of Michell-type structure, and the op- DDF, and finally the presentation of the optimized designs.
timized designs of MBB beam are displayed in Fig. 20. Finally, five numerical examples are presented to demon-
The optimized layouts of control densities for the can- strate the effectiveness of the current MATLAB implemen-
tilever beam, Michell-type structure, and MBB beam are tation framework of the ITO method.
respectively shown in Figs. 18a, 19a, and 20a. As
shown in Figs. 18c, 19c, and 20c, the final optimized
DDFs of the cantilever beam, Michell-type structure, Supplementary Information The online version contains supplementary
material available at https://doi.org/10.1007/s00158-021-02858-7.
and MBB beam are all provided, and a similar feature
shows that the sufficient smoothness and continuity can
Acknowledgements The authors wish to thank Dr. Phu Nguyen, a
be observed in the DDFs. Meanwhile, the structural to- Lecturer from Department of Civil Engineering, Monash University.
pologies of three structures are all featured with the Dr. Phu Nguyen offers the complete MATLAB code of IGA (Nguyen
smooth structural boundaries and distinct interfaces be- et al. 2015) for us to extensively understand the concept and numerical
implementation of IGA.
tween solids and voids, shown in Figs. 18e, 19e, and
This work was partially supported by the Fundamental Research
20d. The optimized numerical results of the cantilever Funds for the Central Universities of Huazhong University of Science
beam, Michell-type structure, and MBB beam can obvi- and Technology (5003123021) and the Program for HUST Academic
ously demonstrate the effectiveness and efficiency of the Frontier Youth Team (2017QYTD04).
MATLAB code IgaTop2D for the ITO method.
Authors' contributions Jie Gao wrote the paper with the conceptualiza-
tion, writing, formal analysis, investigation and methodology. Prof. Lin
Wang, Prof. Zhen Luo and Prof. Liang Gao provided support, including
reviewing, modifying and proofing, for this paper. Prof. Liang Gao and
5 Conclusions Prof. Zhen Luo provided the project support for this paper, and they are
co-corresponding authors of this paper. Email of Prof. Zhen Luo:
[email protected] and Email of Prof. Liang Gao:
In this paper, a compact and efficient MATLAB implementa- [email protected].
tion code of the ITO is presented, where a main function
IgaTop2D with 11 subfunctions (Geom_Mod, Pre_IGA,
Declarations
Guadrature, Shep_Fun, Boun_Cond,
Stiff_Ele2D, Stiff_Ass2D, Solving, OC, Conflict of interest The authors declare that they have no conflict of
Plot_Data and Plot_Topy) for the optimization is de- interest.
veloped. The MATLAB implementation framework
1698 J. Gao et al.

Appendix

A 56-line MATLAB code for the main function


IgaTop2D
IgaTop: an implementation of topology optimization for structures using IGA in MATLAB 1699

References Gao J, Xiao M, Gao L et al (2020b) Isogeometric topology optimization


for computational design of re-entrant and chiral auxetic composites.
Comput Methods Appl Mech Eng 362:112876
Agrawal V, Gautam SS (2019) IGA: a simplified introduction and imple-
Gao J, Xiao M, Zhang Y, Gao L (2020c) A comprehensive review of
mentation details for finite element users. J Inst Eng Ser C 100:561–
isogeometric topology optimization: methods, applications and
585
prospects. Chinese J Mech Eng 33:87. https://doi.org/10.1186/
Allaire G, Jouve F, Toader AM (2004) Structural optimization using
s10033-020-00503-w
sensitivity analysis and a level-set method. J Comput Phys 194:
Ghasemi H, Park HS, Rabczuk T (2017) A level-set based IGA formu-
363–393
lation for topology optimization of flexoelectric materials. Comput
Andreassen E, Clausen A, Schevenels M et al (2011) Efficient topology Methods Appl Mech Eng 313:239–258
optimization in MATLAB using 88 lines of code. Struct Multidiscip
Guo X, Zhang W, Zhong W (2014) Doing topology optimization explic-
Optim 43:1–16
itly and geometrically—a mew moving morphable components
Bendsøe M, Kikuchi N (1988) Generating optimal topologies in stuctural based framework. J Appl Mech 81:081009
design using a homogenization method. Comput Methods Appl Hassani B, Khanzadi M, Tavakkoli SM (2012) An isogeometrical ap-
Mech Eng 71:197–224 proach to structural topology optimization by optimality criteria.
Bendsøe MP, Sigmund O (1999) Material interpolation schemes in to- Struct Multidiscip Optim 45:223–233
pology optimization. Arch Appl Mech 69:635–654 Hou W, Gai Y, Zhu X et al (2017) Explicit isogeometric topology opti-
Challis VJ (2010) A discrete level-set topology optimization code written mization using moving morphable components. Comput Methods
in Matlab. Struct Multidiscip Optim 41:453–464 Appl Mech Eng 326:694–712
Chen Q, Zhang X, Zhu B (2019) A 213-line topology optimization code Huang X, Xie Y-MM (2010) A further review of ESO type methods for
for geometrically nonlinear structures. Struct Multidiscip Optim 59: topology optimization. Struct Multidiscip Optim 41:671–683
1863–1879 Hughes TJR (2012) The finite element method: linear static and dynamic
Chu S, Gao L, Xiao M, Li H (2019) Design of sandwich panels with truss finite element analysis. Courier Corporation
cores using explicit topology optimization. Compos Struct 210:892– Hughes TJR, Cottrell JAA, Bazilevs Y (2005) Isogeometric analysis:
905 CAD, finite elements, NURBS, exact geometry and mesh refine-
Cottrell JA, Hughes TJR, Bazilevs Y (2009) Isogeometric analysis: to- ment. Comput Methods Appl Mech Eng 194:4135–4195
ward integration of CAD and FEA[M]. John Wiley & Sons Jahangiry HA, Tavakkoli SM (2017) An isogeometrical approach to
Da D, Xia L, Li G, Huang X (2018) Evolutionary topology optimization structural level set topology optimization. Comput Methods Appl
of continuum structures with smooth boundary representation. Mech Eng 319:240–257
Struct Multidiscip Optim 57:2143–2159 Kang Z, Wang Y (2011) Structural topology optimization based on non-
De Boor C (1978) A practical guide to splines. Springer-Verlag, New local Shepard interpolation of density field. Comput Methods Appl
York Mech Eng 200:3515–3525
de Falco C, Reali A, Vázquez R (2011) GeoPDEs: a research tool for Kang Z, Wang Y (2012) A nodal variable method of structural topology
isogeometric analysis of PDEs. Adv Eng Softw 42:1020–1034 optimization based on Shepard interpolant. Int J Numer Methods
Dedè L, Borden MJ, Hughes TJR (2012) Isogeometric analysis for topol- Eng 90:329–342
ogy optimization with a phase field model. Arch Comput Methods Kato J, Ogawa S, Ichibangase T, Takaki T (2018) Multi-phase field
Eng 19:427–465 topology optimization of polycrystalline microstructure for maxi-
Du B, Zhao Y, Yao W et al (2020) Multiresolution isogeometric topology mizing heat conductivity. Struct Multidiscip Optim 57:1937–1954
optimisation using moving morphable voids. Comput Model Eng Li H, Luo Z, Zhang N et al (2016) Integrated design of cellular compos-
Sci 122:1119–1140 ites using a level-set topology optimization method. Comput
Ferrari F, Sigmund O (2020) A new generation 99 line Matlab code for Methods Appl Mech Eng 309:453–475
compliance topology optimization and its extension to 3D. Struct Liang Y, Cheng G (2020) Further elaborations on topology optimization
Multidiscip Optim 62:2211–2228 via sequential integer programming and canonical relaxation algo-
Gai Y, Zhu X, Zhang YJ et al (2020) Explicit isogeometric topology rithm and 128-line MATLAB code. Struct Multidiscip Optim 61:
optimization based on moving morphable voids with closed B- 411–431
spline boundary curves. Struct Multidiscip Optim 61:963–982 Lieu QX, Lee J (2017a) Multiresolution topology optimization using
Gao J, Li H, Gao L, Xiao M (2018) Topological shape optimization of 3D isogeometric analysis. Int J Numer Methods Eng 112:2025–2047
micro-structured materials using energy-based homogenization Lieu QX, Lee J (2017b) A multi-resolution approach for multi-material
method. Adv Eng Softw 116:89–102 topology optimization based on isogeometric analysis. Comput
Gao J, Gao L, Luo Z, Li P (2019a) Isogeometric topology optimization Methods Appl Mech Eng 323:272–302
for continuum structures using density distribution function. Int J Liu K, Tovar A (2014) An efficient 3D topology optimization code writ-
Numer Methods Eng 119:991–1017 ten in Matlab. Struct Multidiscip Optim 50:1175–1196
Gao J, Luo Z, Li H, Gao L (2019b) Topology optimization for multiscale Nguyen VP, Anitescu C, Bordas SPA, Rabczuk T (2015) Isogeometric
design of porous composites with multi-domain microstructures. analysis: an overview and computer implementation aspects. Math
Comput Methods Appl Mech Eng 344:451–476 Comput Simul 117:89–116
Nguyen C, Zhuang X, Chamoin L et al (2020) Three-dimensional topol-
Gao J, Luo Z, Xia L, Gao L (2019c) Concurrent topology optimization of
ogy optimization of auxetic metamaterial using isogeometric analy-
multiscale composite structures in Matlab. Struct Multidiscip Optim
sis and model order reduction. Comput Methods Appl Mech Eng
60:2621–2651
371:113306
Gao J, Xue H, Gao L, Luo Z (2019d) Topology optimization for auxetic
Nishi S, Yamada T, Izui K et al (2020) Isogeometric topology optimiza-
metamaterials based on isogeometric analysis. Comput Methods
tion of anisotropic metamaterials for controlling high-frequency
Appl Mech Eng 352:211–236
electromagnetic wave. Int J Numer Methods Eng 121:1218–1247
Gao J, Luo Z, Xiao M et al (2020a) A NURBS-based multi-material
Otomori M, Yamada T, Izui K, Nishiwaki S (2015) Matlab code for a
interpolation (N-MMI) for isogeometric topology optimization of
level set-based topology optimization method using a reaction dif-
structures. Appl Math Model 81:818–843
fusion equation. Struct Multidiscip Optim 51:1159–1172
1700 J. Gao et al.

Picelli R, Sivapuram R, Xie YM (2020) A 101-line MATLAB code for Wang Z-P, Poh LH, Dirrenberger J et al (2017b) Isogeometric shape
topology optimization using binary variables and integer program- optimization of smoothed petal auxetic structures via computational
ming. Struct Multidiscip Optim 63:935–954 periodic homogenization. Comput Methods Appl Mech Eng 323:
Piegl L, Tiller W (2012) The NURBS book. Springer Science & Business 250–271
Media Wei P, Li Z, Li X, Wang MY (2018) An 88-line MATLAB code for the
Qian X (2013) Topology optimization in B-spline space. Comput parameterized level set method based topology optimization using
Methods Appl Mech Eng 265:15–35 radial basis functions. Struct Multidiscip Optim 58:831–849
Sanders ED, Pereira A, Aguiló MA, Paulino GH (2018) PolyMat: an Xia L, Breitkopf P (2014) Concurrent topology optimization design of
efficient Matlab code for multi-material topology optimization. material and structure within FE2 nonlinear multiscale analysis
Struct Multidiscip Optim 58:2727–2759 framework. Comput Methods Appl Mech Eng 278:524–542
Seo Y-D, Kim H-J, Youn S-K (2010) Isogeometric topology optimization Xia L, Breitkopf P (2015) Design of materials using topology optimiza-
using trimmed spline surfaces. Comput Methods Appl Mech Eng tion and energy-based homogenization approach in Matlab. Struct
199:3270–3296 Multidiscip Optim 52:1229–1241
Sethian JA, Wiegmann A (2000) Structural boundary design via level set Xia Z, Wang Y, Wang Q, Mei C (2017) GPU parallel strategy for pa-
and immersed interface methods. J Comput Phys 163:489–528 rameterized LSM-based topology optimization using isogeometric
Shepard D (1968) A two-dimensional interpolation function for analysis. Struct Multidiscip Optim 56:413–434
irregularly-spaced data. In: Proceedings of the 1968 23rd ACM Xie YM, Steven GP (1993) A simple evolutionary procedure for struc-
national conference. ACM, pp 517–524 tural optimization. Comput Struct 49:885–969
Sigmund O (1994) Materials with prescribed constitutive parameters: an Xie X, Wang S, Xu M, Wang Y (2018) A new isogeometric topology
inverse homogenization problem. Int J Solids Struct 31:2313–2329 optimization using moving morphable components based on R-
Sigmund O (2001) A 99 line topology optimization code written in functions and collocation schemes. Comput Methods Appl Mech
Matlab. Struct Multidiscip Optim 21:120–127 Eng 339:61–90
Spink M, Claxton D, Falco C de, Vazquez R (2010) NURBS toolbox. Xie X, Wang S, Xu M et al (2020) A hierarchical spline based
Octave Forge. https://octave.sourceforge.io/nurbs/overview.html isogeometric topology optimization using moving morphable com-
Suresh K (2010) A 199-line Matlab code for Pareto-optimal tracing in ponents. Comput Methods Appl Mech Eng 360:112696
topology optimization. Struct Multidiscip Optim 42:665–679 Xu J, Gao L, Xiao M et al (2020) Isogeometric topology optimization for
Taheri AH, Suresh K (2017) An isogeometric approach to topology op- rational design of ultra-lightweight architected materials. Int J Mech
timization of multi-material and functionally graded structures. Int J Sci 166:105103
Numer Methods Eng 109:668–696 Yang WY, Zhang WS, Guo X (2016) Explicit structural topology opti-
Talischi C, Paulino GH, Pereira A, Menezes IFM (2012) PolyTop: a mization via moving morphable voids (MMV) approach. In: 2016
Matlab implementation of a general topology optimization frame- Asian Congress of Structural and Multidisciplinary Optimization,
work using unstructured polygonal finite element meshes. Struct Nagasaki, Japan. p 98
Multidiscip Optim 45:329–357
Zhang W, Yuan J, Zhang J, Guo X (2016) A new topology optimization
Vázquez R (2016) A new design for the implementation of isogeometric
approach based on moving morphable components (MMC) and the
analysis in Octave and Matlab: GeoPDEs 3.0. Comput Math Appl
ersatz material model. Struct Multidiscip Optim 53:1243–1260
72:523–554
Zhang W, Yang W, Zhou J et al (2017) Structural topology optimization
Vogiatzis P, Chen S, Wang X et al (2017a) Topology optimization of
through explicit boundary evolution. J Appl Mech 84:011011
multi-material negative Poisson’s ratio metamaterials using a recon-
Zhang W, Li D, Kang P et al (2020a) Explicit topology optimization
ciled level set method. Comput Des 83:15–32
using IGA-based moving morphable void (MMV) approach.
Vogiatzis P, Chen S, Zhou C (2017b) An open source framework for
Comput Methods Appl Mech Eng 360:112685
integrated additive manufacturing and level-set-based topology op-
timization. J Comput Inf Sci Eng 17:041012 Zhang Y, Xiao M, Gao L et al (2020b) Multiscale topology optimization
Wang Y, Benson DJ (2016) Isogeometric analysis for parameterized for minimizing frequency responses of cellular composites with
LSM-based structural topology optimization. Comput Mech 57: connectable graded microstructures. Mech Syst Signal Process
19–35 135:106369
Wang Z-P, Poh LH (2018) Optimal form and size characterization of Zhao G, Yang J, Wang W et al (2020a) T-splines based isogeometric
planar isotropic petal-shaped auxetics with tunable effective proper- topology optimization with arbitrarily shaped design domains.
ties using IGA. Compos Struct 201:486–502 Comput Model Eng Sci 123:1033–1059
Wang S, Wang MY (2006) Radial basis functions and level set method Zhao Q, Fan C-M, Wang F, Qu W (2020b) Topology optimization of
for structural topology optimization. Int J Numer Methods Eng 65: steady-state heat conduction structures using meshless generalized
2060–2090 finite difference method. Eng Anal Bound Elem 119:13–24
Wang MY, Wang X, Guo D (2003) A level set method for structural Zhou M, Rozvany GIN (1991) The COC algorithm, Part II: Topological,
topology optimization. Comput Methods Appl Mech Eng 192: geometrical and generalized shape optimization. Comput Methods
227–246 Appl Mech Eng 89:309–336
Wang Y, Chen F, Wang MY (2017a) Concurrent design with connectable
graded microstructures. Comput Methods Appl Mech Eng 317:84– Publisher's note Springer Nature remains neutral with regard to jurisdic-
101 tional claims in published maps and institutional affiliations.

You might also like