Gao Et Al. - 2021 - IgaTop An Implementation of Topology Optimization For Structures Using IGA in MATLAB
Gao Et Al. - 2021 - IgaTop An Implementation of Topology Optimization For Structures Using IGA in MATLAB
https://doi.org/10.1007/s00158-021-02858-7
EDUCATIONAL PAPER
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.
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
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. 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 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)
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:
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.
ð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
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
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. 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
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
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.