<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.1 20151215//EN" "http://jats.nlm.nih.gov/publishing/1.1/JATS-journalpublishing1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" article-type="research-article" dtd-version="1.1">
<front>
<journal-meta>
<journal-id journal-id-type="pmc">CMES</journal-id>
<journal-id journal-id-type="nlm-ta">CMES</journal-id>
<journal-id journal-id-type="publisher-id">CMES</journal-id>
<journal-title-group>
<journal-title>Computer Modeling in Engineering &#x0026; Sciences</journal-title>
</journal-title-group>
<issn pub-type="epub">1526-1506</issn>
<issn pub-type="ppub">1526-1492</issn>
<publisher>
<publisher-name>Tech Science Press</publisher-name>
<publisher-loc>USA</publisher-loc>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">17704</article-id>
<article-id pub-id-type="doi">10.32604/cmes.2021.017704</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Article</subject>
</subj-group>
</article-categories>
<title-group>
<article-title>An XBi-CFAO Method for the Optimization of Multi-Layered Variable Stiffness Composites Using Isogeometric Analysis</article-title>
<alt-title alt-title-type="left-running-head">An XBi-CFAO Method for the Optimization of Multi-Layered Variable Stiffness Composites Using Isogeometric Analysis</alt-title>
<alt-title alt-title-type="right-running-head">An XBi-CFAO Method for the Optimization of Multi-Layered Variable Stiffness Composites Using Isogeometric Analysis</alt-title>
</title-group>
<contrib-group content-type="authors">
<contrib id="author-1" contrib-type="author">
<name name-style="western">
<surname>Mei</surname>
<given-names>Chao</given-names>
</name>
<xref ref-type="aff" rid="aff-1">1</xref>
<xref ref-type="aff" rid="aff-2">2</xref>
</contrib>
<contrib id="author-2" contrib-type="author" corresp="yes">
<name name-style="western">
<surname>Wang</surname>
<given-names>Qifu</given-names>
</name>
<xref ref-type="aff" rid="aff-1">1</xref><email>wangqf@hust.edu.cn</email>
</contrib>
<contrib id="author-3" contrib-type="author">
<name name-style="western">
<surname>Yu</surname>
<given-names>Chen</given-names>
</name>
<xref ref-type="aff" rid="aff-1">1</xref>
</contrib>
<contrib id="author-4" contrib-type="author">
<name name-style="western">
<surname>Xia</surname>
<given-names>Zhaohui</given-names>
</name>
<xref ref-type="aff" rid="aff-1">1</xref>
</contrib>
<aff id="aff-1"><label>1</label><institution>School of Mechanical Science and Engineering, Huazhong University of Science &#x0026; Technology</institution>, <addr-line>Wuhan, 430074</addr-line>, <country>China</country></aff>
<aff id="aff-2"><label>2</label><institution>School of Mechanical Engineering, Yangtze University</institution>, <addr-line>Jingzhou, 434023</addr-line>, <country>China</country></aff>
</contrib-group>
<author-notes>
<corresp id="cor1">&#x002A;Corresponding Author: Qifu Wang. Email: <email>wangqf@hust.edu.cn</email></corresp>
</author-notes>
<pub-date pub-type="epub" date-type="pub" iso-8601-date="2021-09-29">
<day>29</day>
<month>09</month>
<year>2021</year>
</pub-date>
<volume>129</volume>
<issue>2</issue>
<fpage>627</fpage>
<lpage>659</lpage>
<history>
<date date-type="received">
<day>31</day>
<month>5</month>
<year>2021</year>
</date>
<date date-type="accepted">
<day>27</day>
<month>7</month>
<year>2021</year>
</date>
</history>
<permissions>
<copyright-statement>&#x00A9; 2021 Mei et al.</copyright-statement>
<copyright-year>2021</copyright-year>
<copyright-holder>Mei et al.</copyright-holder>
<license xlink:href="https://creativecommons.org/licenses/by/4.0/">
<license-p>This work is licensed under a <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</ext-link>, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</license-p>
</license>
</permissions>
<self-uri content-type="pdf" xlink:href="TSP_CMES_17704.pdf"></self-uri>
<abstract>
<p>This paper presents an effective fiber angle optimization method for two and multi-layered variable stiffness composites. A gradient-based fiber angle optimization method is developed based on isogeometric analysis (IGA). Firstly, the element densities and fiber angles for two and multi-layered composites are synchronously optimized using an extended Bi-layered continuous fiber angle optimization method (XBi-CFAO). The densities and fiber angles in the base layer are attached to the control points. The structure response and sensitivity analysis are accomplished using the non-uniform rational B-spline (NURBS) based IGA. By the benefit of the B-spline space, this method is free from checkerboards, and no additional filtering is needed to smooth the sensitivity numbers. Then the curved fiber paths are generated using the streamline method and the discontinuous fiber paths are smoothed using a partitioned selection process. The proposed method in the paper can alleviate the phenomenon of fiber discontinuity, enhance information retention for the optimized fiber angles of the singular points and save calculating resources effectively.</p>
</abstract>
<kwd-group kwd-group-type="author">
<kwd>Isogeometric analysis</kwd>
<kwd>fiber angle optimization</kwd>
<kwd>variable stiffness laminates</kwd>
<kwd>fiber path optimization</kwd>
<kwd>topology optimization</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="s1">
<label>1</label>
<title>Introduction</title>
<p>The last two decades have witnessed the tremendous progress of advanced fiber reinforced plastics (FRP) and the increasingly usage of FRP in the aerospace and automotive industries [<xref ref-type="bibr" rid="ref-1">1</xref>&#x2013;<xref ref-type="bibr" rid="ref-4">4</xref>]. Benefit from the rapid development of automated fiber placement (AFP) technologies [<xref ref-type="bibr" rid="ref-5">5</xref>&#x2013;<xref ref-type="bibr" rid="ref-7">7</xref>] the variable stiffness laminates (VSLs) emerged [<xref ref-type="bibr" rid="ref-1">1</xref>&#x2013;<xref ref-type="bibr" rid="ref-3">3</xref>,<xref ref-type="bibr" rid="ref-8">8</xref>&#x2013;<xref ref-type="bibr" rid="ref-11">11</xref>]. These VSLs are reinforced by continuous fibers with curved trajectories within each layer, and so that they provide the engineers full potential and design flexibility by substantially enlarging the design space when compared with traditional constant stiffness laminates.</p>
<p>To exploit the potential and design freedom enabled by VSLs, a variety of design and optimization methods are actively developed [<xref ref-type="bibr" rid="ref-11">11</xref>]. Such as the discrete material optimization (DMO) [<xref ref-type="bibr" rid="ref-12">12</xref>&#x2013;<xref ref-type="bibr" rid="ref-14">14</xref>], bi-value coding parameterization method (BCP) [<xref ref-type="bibr" rid="ref-15">15</xref>,<xref ref-type="bibr" rid="ref-16">16</xref>], and continuous fiber angle optimization method (CFAO) [<xref ref-type="bibr" rid="ref-17">17</xref>&#x2013;<xref ref-type="bibr" rid="ref-20">20</xref>].</p>
<p>However, the design and optimization of VSLs with curvilinear fibers are still challenging. Because of the processing characteristics of curved fiber variable stiffness composites, how to improve the properties of composites while satisfying the manufacturing constraints has become an urgent problem to be solved [<xref ref-type="bibr" rid="ref-14">14</xref>,<xref ref-type="bibr" rid="ref-17">17</xref>,<xref ref-type="bibr" rid="ref-21">21</xref>].</p>
<p>In practice, the FEM method is utilized for structure response analysis in topology optimization. But there are some drawbacks if the conventional FEM method is used, <italic>e.g</italic>., the low continuity between the elements, and the low efficiency for high-order elements. In recent years, IGA proposed by Hughes et al. [<xref ref-type="bibr" rid="ref-22">22</xref>] has been widely used for the optimization of variable-stiffness panels [<xref ref-type="bibr" rid="ref-3">3</xref>,<xref ref-type="bibr" rid="ref-8">8</xref>,<xref ref-type="bibr" rid="ref-23">23</xref>,<xref ref-type="bibr" rid="ref-24">24</xref>]. As a novel and promising numerical method for structural analysis, IGA shows advantage in accurate representation of geometric models for structures with complex geometry [<xref ref-type="bibr" rid="ref-25">25</xref>&#x2013;<xref ref-type="bibr" rid="ref-27">27</xref>]. The same basis functions are employed for geometry description and the structure response field variables representation as well, in the IGA method. Due to its high accuracy and high continuity, IGA is widely used in topology optimization [<xref ref-type="bibr" rid="ref-25">25</xref>,<xref ref-type="bibr" rid="ref-28">28</xref>,<xref ref-type="bibr" rid="ref-29">29</xref>] and fiber angle optimization problems [<xref ref-type="bibr" rid="ref-3">3</xref>,<xref ref-type="bibr" rid="ref-8">8</xref>,<xref ref-type="bibr" rid="ref-23">23</xref>,<xref ref-type="bibr" rid="ref-24">24</xref>,<xref ref-type="bibr" rid="ref-30">30</xref>]. As mentioned in [<xref ref-type="bibr" rid="ref-23">23</xref>], IGA is particularly suitable for the optimization of variable-stiffness composites benefits from the local support property of the NURBS basis function. The curved fiber paths of the VSLs are continuously laying in most of areas. In the CFAO method, the fiber angles are set as design variables during the optimization process. The control points-based-IGA can optimize the design variables attached to the control points, such as densities and fiber angles. The element parameters profit from the local support characteristics of the B-spline space, and they are naturally filtered. It should be pointed out that the natural filtering technique from the local support characters is naturally used in the NURBS-based-IGA. And the control-points-based-CFAO are checkerboard free for densities and local singular points free for fiber angles. The singular points of the fiber angles can be avoided benefit by the NURBS-based-IGA [<xref ref-type="bibr" rid="ref-8">8</xref>,<xref ref-type="bibr" rid="ref-29">29</xref>].</p>
<p>Commonly, in the gradient-based optimization methods, the fiber angles in single-layer laminates are optimized [<xref ref-type="bibr" rid="ref-31">31</xref>]. In recent years, the fiber angle optimization for two-layered [<xref ref-type="bibr" rid="ref-32">32</xref>] and multi-layered [<xref ref-type="bibr" rid="ref-18">18</xref>,<xref ref-type="bibr" rid="ref-33">33</xref>] laminates using gradient-based optimization methods are studied in the literatures [<xref ref-type="bibr" rid="ref-23">23</xref>,<xref ref-type="bibr" rid="ref-34">34</xref>]. In the literature [<xref ref-type="bibr" rid="ref-35">35</xref>], the fiber angles in all the considered layers are set as design variables for the three-layered plate and shells. The fiber angles in single-layered plates are set as the benchmarking to demonstrate the advantages and the potential for minimizing the compliance. The multilayer examples are utilized to present the application in the applicative design problems in industry.</p>
<p>It is found that, without additional treatment, the final optimized fiber angles may have spatial discontinuities [<xref ref-type="bibr" rid="ref-4">4</xref>,<xref ref-type="bibr" rid="ref-19">19</xref>,<xref ref-type="bibr" rid="ref-24">24</xref>] and singularities [<xref ref-type="bibr" rid="ref-36">36</xref>&#x2013;<xref ref-type="bibr" rid="ref-38">38</xref>]. And the fiber paths are unsmooth or sharp in the related areas. Many literatures have reported the phenomenon [<xref ref-type="bibr" rid="ref-36">36</xref>,<xref ref-type="bibr" rid="ref-39">39</xref>&#x2013;<xref ref-type="bibr" rid="ref-42">42</xref>], which is shown in <?A3B2 "fig1",5,"anchor"?><xref ref-type="fig" rid="fig-1">Fig. 1</xref>. The treatments are different and may be classified into two kinds including: the filtering-like and the reconstruction-like. The former kind discards the original local singular angles by using the spatial interpolation values instead of the original angles. The discontinuity is thus avoided [<xref ref-type="bibr" rid="ref-17">17</xref>,<xref ref-type="bibr" rid="ref-19">19</xref>,<xref ref-type="bibr" rid="ref-40">40</xref>]. However, the latter kind retains the information of the singular angles, and the original angles are rotated at an angle of &#x00B1;180<italic>&#x00B0;</italic> [<xref ref-type="bibr" rid="ref-36">36</xref>,<xref ref-type="bibr" rid="ref-37">37</xref>] or &#x00B1;90<italic>&#x00B0;</italic> [<xref ref-type="bibr" rid="ref-24">24</xref>] to accomplish the reconstruction process.</p>
<fig id="fig-1">
<label>Figure 1</label>
<caption>
<title>The spatial discontinuity of the fiber angles shown in the literatures [<xref ref-type="bibr" rid="ref-36">36</xref>,<xref ref-type="bibr" rid="ref-39">39</xref>&#x2013;<xref ref-type="bibr" rid="ref-42">42</xref>]</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_17704-fig-1.png"/>
</fig>
<p>To overcome the spatial discontinuity and singularities, the NURBS-based IGA is utilized in [<xref ref-type="bibr" rid="ref-24">24</xref>]. A two-layered fiber angle optimization method called Bi-CFAO is proposed. The fiber angles and the element densities are set as design variables and they are optimized synchronously. The fiber angles are then updated by a user-defined function called the reselection procedure. In [<xref ref-type="bibr" rid="ref-24">24</xref>], the angles in base layers are set as the design variables instead of the angles in all the layers. The fiber angles between different layers are predefined as constants for multi-layered composites which is similar to [<xref ref-type="bibr" rid="ref-43">43</xref>].</p>
<p>The IGA based Bi-CFAO method is effective to generate fiber paths with smaller curvatures compared to the conventional CFAO. However, the previous paper found that even with this nature filtering advantage, the spatial discontinuities still exist in the generated fiber paths.</p>
<p>In order to eliminate the discontinuities, this paper continues to investigate the IGA method based on control points and proposes a more effective angle selection strategy to solve the problem of fiber path discontinuity. A new updating strategy called the modified angle selection procedure is developed. Firstly, the adjacent points in the abrupt changing areas are connected to lines and the lines are classified into edge-to-edge lines and non-edge-to-edge lines. The fiber angles in the non-edge-to-edge lines are interpolated by the angles around them. Then, the design domain is separated by edge-to-edge lines into subdomains. The angles in the biggest subdomain remains and the angles in the nearby subdomains are updated by flipping 90&#x00B0;. The biggest subdomain will be enlarged by the updated nearby subdomains, and new iterations are performed until all the subdomains are updated. After the updating process the continuous curve fiber paths are obtained. The locations and geometries of the discontinuous points are involved in the new updating strategy. More complex situations can be solved compared with the original angle selection procedure. The new method is extended to multi-layered cases.</p>
<p>This article is structured as follows: basic theories are introduced in Section 2, including the NURBS based IGA, the modified CFAO fiber angle optimization. In Section 3, the proposed control-points based XBi-CFAO method for the typical elasticity problems are presented. The new angle updating process is introduced. In Section 4, effectiveness and stability of the proposed method is illustrated by three benchmark problems. The article concludes with a discussion in Section 5.</p>
</sec>
<sec id="s2">
<label>2</label>
<title>Basic Theory</title>
<p>In this section, the basic theories are introduced. The NURBS-based IGA method is applied to calculate the structure response, the fiber angle optimization for single layer and two-layered composites are both based on the CFAO method, the design variables are updated by using the MMA algorithm [<xref ref-type="bibr" rid="ref-44">44</xref>].</p>
<sec id="s2_1">
<label>2.1</label>
<title>The Overview of NURBS Based IGA</title>
<p>In IGA approaches [<xref ref-type="bibr" rid="ref-22">22</xref>], a unified mathematical form for both CAD and CAE models is performed, by utilizing the same NURBS basis functions to describe the geometry and to construct the space for structural responses.</p>
<p>Non-uniform rational B-splines (NURBS), constructed from B-splines, is a standard technology employed in CAD systems to represent curves and surfaces. NURBS is one of the most thoroughly developed and in most widespread use in both CAD and IGA [<xref ref-type="bibr" rid="ref-22">22</xref>].</p>
<p>To construct B-spline basis functions of order <italic>p</italic>, a knot vector <bold><italic>&#x03A0;</italic></bold>, which consists of <italic>n</italic> spline basis functions, is defined in the parameter space as</p>
<p><disp-formula id="eqn-1">
<label>(1)</label>
<mml:math id="mml-eqn-1" display="block"><mml:mi mathvariant="bold">&#x03A0;</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:msub><mml:mi>&#x03B7;</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>&#x03B7;</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>&#x03B7;</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mi>p</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>}</mml:mo></mml:mrow></mml:math>
</disp-formula></p>
<p>where <italic>p</italic> is the order of the B-spline. The vector <bold><italic>&#x03A0;</italic></bold> is a sequence of non-decreasing real numbers representing parametric coordinates of a curve. The interval [<italic>&#x03B7;</italic><sub><italic>1</italic></sub>, <italic>&#x03B7;</italic><sub><italic>n&#x002B;p&#x002B;1</italic></sub>] is called a patch, and the knot interval [<italic>&#x03B7;</italic><sub><italic>i</italic></sub>, <italic>&#x03B7;</italic><sub><italic>i&#x002B;1</italic></sub>) is called a span.</p>
<p>The B-spline basis functions are recursively defined following the Cox-de Boor formula [<xref ref-type="bibr" rid="ref-45">45</xref>]</p>
<p><disp-formula id="eqn-2">
<label>(2)</label>
<mml:math id="mml-eqn-2" display="block"><mml:mrow><mml:mo>{</mml:mo><mml:mtable columnalign="left" rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:msub><mml:mi>B</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mi>&#x03BE;</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mtable columnalign="left" rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:mn>1</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd></mml:mtr></mml:mtable><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow><mml:mtable columnalign="left" rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:mi>i</mml:mi><mml:mi>f</mml:mi><mml:msub><mml:mi>&#x03BE;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2264;</mml:mo><mml:mi>&#x03BE;</mml:mi><mml:mo>&#x003C;</mml:mo><mml:msub><mml:mi>&#x03BE;</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mi mathvariant="italic">o</mml:mi><mml:mi mathvariant="italic">t</mml:mi><mml:mi mathvariant="italic">h</mml:mi><mml:mi mathvariant="italic">e</mml:mi><mml:mi mathvariant="italic">r</mml:mi><mml:mi mathvariant="italic">w</mml:mi><mml:mi mathvariant="italic">i</mml:mi><mml:mi mathvariant="italic">s</mml:mi><mml:mi mathvariant="italic">e</mml:mi></mml:mrow></mml:mtd></mml:mtr></mml:mtable><mml:mo>,</mml:mo><mml:mi>p</mml:mi><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mi>B</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mi>&#x03BE;</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mi>&#x03BE;</mml:mi><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>&#x03BE;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>&#x03BE;</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>+</mml:mo><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>&#x03BE;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:msub><mml:mi>B</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>p</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mi>&#x03BE;</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>&#x03BE;</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>+</mml:mo><mml:mi>p</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mi>&#x03BE;</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mi>&#x03BE;</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>+</mml:mo><mml:mi>p</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>&#x03BE;</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:msub><mml:mi>B</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>p</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mi>&#x03BE;</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mi>p</mml:mi><mml:mo>&#x2265;</mml:mo><mml:mn>1</mml:mn></mml:mtd></mml:mtr></mml:mtable><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow></mml:math>
</disp-formula></p>
<p>It is observed that the B-spline basis functions constitute a partition of unity.</p>
<p><disp-formula id="eqn-3">
<label>(3)</label>
<mml:math id="mml-eqn-3" display="block"><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:munderover><mml:msub><mml:mi>B</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mi>&#x03BE;</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:math>
</disp-formula></p>
<p>In two-dimensional cases, the B-spline basis functions are constructed as tensor products</p>
<p><disp-formula id="eqn-4">
<label>(4)</label>
<mml:math id="mml-eqn-4" display="block"><mml:msubsup><mml:mi>B</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:msup><mml:mi></mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mi>q</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msubsup><mml:mrow><mml:mo>(</mml:mo><mml:mi>&#x03BE;</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03B7;</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mi>B</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mi>&#x03BE;</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:msub><mml:mi>B</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mi>q</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mi>&#x03B7;</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math>
</disp-formula></p>
<p>where <italic>B</italic><sub><italic>i,p</italic></sub><italic>(&#x03BE;)</italic> and <italic>B</italic><sub><italic>j,q</italic></sub><italic>(&#x03B7;)</italic> are univariate B-spline basis functions of order <italic>p</italic> and <italic>q</italic>, corresponding to knot vectors &#x03A0; &#x003D; {<italic>&#x03BE;</italic><sub>1</sub>, <italic>&#x03BE;</italic><sub>2</sub>, &#x2026;, <italic>&#x03BE;</italic><sub><italic>m&#x002B;q&#x002B;1</italic></sub>} and &#x03A8; &#x003D; {<italic>&#x03B7;</italic><sub><italic>1</italic></sub>, <italic>&#x03B7;</italic><sub><italic>2</italic></sub>, <italic>&#x2026;, &#x03B7;</italic><sub><italic>n&#x002B;p&#x002B;1</italic></sub>}. Given a set of control points <italic>P</italic><sub><italic>i,j</italic></sub>, a bivariate B-spline surface is obtained as the tensor product of two B-spline curves</p>
<p><disp-formula id="eqn-5">
<label>(5)</label>
<mml:math id="mml-eqn-5" display="block"><mml:mrow><mml:mi mathvariant="normal">S</mml:mi></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>&#x03BE;</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03B7;</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:munderover><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:munderover><mml:msubsup><mml:mi>B</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mi>q</mml:mi></mml:mrow></mml:msubsup><mml:mrow><mml:mo>(</mml:mo><mml:mi>&#x03BE;</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03B7;</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:math>
</disp-formula></p>
<p>where <italic>P</italic><sub><italic>i,j</italic></sub> is the (<italic>i, j</italic>)-th control point in the design space. The patch for the surface is now the domain [<italic>&#x03BE;</italic><sub><italic>1</italic></sub>, <italic>&#x03BE;</italic><sub><italic>n&#x002B;p&#x002B;1</italic></sub>] &#x00D7; [<italic>&#x03B7;</italic><sub>1</sub>, <italic>&#x03B7;</italic><sub><italic>m&#x002B;q&#x002B;1</italic></sub>].</p>
<p>Assigning a positive weight <italic>&#x03C9;</italic><sub><italic>i</italic></sub> to each basis function of the B-splines then we get the NURBS basis functions. It is easy to find that, if the weight values are all equal, the NURBS becomes B-splines. When describing the circles, cylinders, cones, and spheres, the weight values are not all equal [<xref ref-type="bibr" rid="ref-46">46</xref>].</p>
<p><disp-formula id="eqn-6">
<label>(6)</label>
<mml:math id="mml-eqn-6" display="block"><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mi>&#x03BE;</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>B</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mi>&#x03BE;</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:msub><mml:mi>&#x03C9;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:munderover><mml:msub><mml:mi>B</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mi>&#x03BE;</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:msub><mml:mi>&#x03C9;</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:math>
</disp-formula></p>
<p>The two-dimensional NURBS basis functions are constructed as</p>
<p><disp-formula id="eqn-7">
<label>(7)</label>
<mml:math id="mml-eqn-7" display="block"><mml:msubsup><mml:mi>N</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mi>q</mml:mi></mml:mrow></mml:msubsup><mml:mrow><mml:mo>(</mml:mo><mml:mi>&#x03BE;</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03B7;</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>B</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mi>&#x03BE;</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:msub><mml:mi>B</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mi>q</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mi>&#x03B7;</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:msub><mml:mi>&#x03C9;</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>k</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:munderover><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>l</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:munderover><mml:msub><mml:mi>B</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mi>&#x03BE;</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:msub><mml:mi>B</mml:mi><mml:mrow><mml:mi>l</mml:mi><mml:mo>,</mml:mo><mml:mi>q</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mi>&#x03B7;</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:msub><mml:mi>&#x03C9;</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi>l</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:math>
</disp-formula></p>
<p>where <italic>&#x03C9;</italic><sub><italic>i,j</italic></sub> is the weight value of the control point <italic>P</italic><sub><italic>i</italic>,<italic>j</italic></sub> in the NURBS surface. The weight values of rational basis functions are not equal for the circle, cylinder, cone, and sphere, but could be all equal when describing some other geometries. If the weights are all equal, the NURBS becomes B-splines. More details are referred to [<xref ref-type="bibr" rid="ref-8">8</xref>,<xref ref-type="bibr" rid="ref-22">22</xref>,<xref ref-type="bibr" rid="ref-46">46</xref>].</p>
<p>To represent a NURBS surface with the control points <italic>P</italic><sub><italic>i,j</italic></sub>, <italic>i &#x003D; (1, 2, &#x2026;, n), j &#x003D; (1, 2, &#x2026;, m)</italic>, orders of <italic>p</italic> and <italic>q</italic>, the parametric form is</p>
<p><disp-formula id="eqn-8">
<label>(8)</label>
<mml:math id="mml-eqn-8" display="block"><mml:mi>S</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>&#x03BE;</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03B7;</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:munderover><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:munderover><mml:msubsup><mml:mi>N</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mi>q</mml:mi></mml:mrow></mml:msubsup><mml:mrow><mml:mo>(</mml:mo><mml:mi>&#x03BE;</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03B7;</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:math>
</disp-formula></p>
<p>In NURBS based IGA, these NURBS basis functions are applied for both shape representation and physical field approximation. It is noted that <italic>P</italic><sub><italic>i,j</italic></sub> can represent the control points for describing the geometry as well as other physical quantities that is associated with [<xref ref-type="bibr" rid="ref-22">22</xref>,<xref ref-type="bibr" rid="ref-27">27</xref>,<xref ref-type="bibr" rid="ref-47">47</xref>]. For example, the displacements, the stress and strain, the design fiber variables like fiber angles and material densities.</p>
</sec>
<sec id="s2_2">
<label>2.2</label>
<title>The Bi-CFAO Method</title>
<p>In this paper, the fiber angles and material densities are simultaneously optimized using the Bi-CFAO method. The densities and fiber angles are both set as design variables. And the optimization process is similar to the conventional CFAO. The fiber angles update continuously during the iteration.</p>
<p>In the Bi-CFAO approach [<xref ref-type="bibr" rid="ref-24">24</xref>], the composite plates are consist of two layers of curved fibers. The fibers in the upper layer are set as perpendicular to the ones in the bottom. Firstly, the IGA model is constructed with predefined material parameters, displacement constraints and force constraints in the design domain. Then the structure response and the objective function are calculated. After that, the sensitivity computations are accomplished and the design variables are optimized using the MMA approach. The difference between the Bi-CFAO and the common CFAO is the layer numbers. The element fiber angles in the Bi-CFAO represents two layers, but the element fiber angles in the common CFAO represents one layer. The element stiffness matrix should be defined as the sum of the two layers as well as the analysis of the sensitivities of the fiber angles in Bi-CFAO. The fiber paths of the two layers should be generated related to the fiber angles respectively. After the fiber angle optimization, a selection process is applied to update the fiber angles and to guarantee the fiber paths are smooth.</p>
</sec>
</sec>
<sec id="s3">
<label>3</label>
<title>Definitions of IGA Based XBi-CFAO</title>
<sec id="s3_1">
<label>3.1</label>
<title>Definition of the Optimization Problem</title>
<p>In this study, the general compliance minimization problem is considered. The optimization problem is defined as</p>
<p><disp-formula id="eqn-9">
<label>(9)</label>
<mml:math id="mml-eqn-9" display="block"><mml:mrow><mml:mo>{</mml:mo><mml:mtable columnalign="left" rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:mrow><mml:mi mathvariant="italic">F</mml:mi><mml:mi mathvariant="italic">i</mml:mi><mml:mi mathvariant="italic">n</mml:mi><mml:mi mathvariant="italic">d</mml:mi></mml:mrow><mml:mo>&#x003A;</mml:mo><mml:mi mathvariant="bold-italic">&#x03B8;</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo mathvariant="italic">,</mml:mo></mml:mrow><mml:msub><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mspace width="1em" /><mml:mi mathvariant="bold-italic">&#x03C1;</mml:mi><mml:mrow><mml:mo mathvariant="italic">=</mml:mo></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>&#x03C1;</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo mathvariant="italic">,</mml:mo></mml:mrow><mml:msub><mml:mi>&#x03C1;</mml:mi><mml:mrow><mml:mrow><mml:mn mathvariant="italic">2</mml:mn></mml:mrow></mml:mrow></mml:msub><mml:mrow><mml:mo mathvariant="italic">,</mml:mo></mml:mrow><mml:mo>&#x22EF;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>&#x03C1;</mml:mi><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mi mathvariant="italic">M</mml:mi><mml:mi mathvariant="italic">i</mml:mi><mml:mi mathvariant="italic">n</mml:mi></mml:mrow><mml:mo>&#x003A;</mml:mo><mml:mi>c</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">&#x03B8;</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">&#x03C1;</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">f</mml:mi><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">&#x03B8;</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">&#x03C1;</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd /></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mi mathvariant="italic">S</mml:mi></mml:mrow><mml:mrow><mml:mo mathvariant="italic">.</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="italic">t</mml:mi></mml:mrow><mml:mo>&#x003A;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mtable columnalign="left" rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:mfrac><mml:mrow><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi mathvariant="italic">V</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>&#x03C1;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="italic">V</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mn mathvariant="italic">0</mml:mn></mml:mrow></mml:mrow></mml:msub></mml:mfrac><mml:mo>&#x2264;</mml:mo><mml:mrow><mml:mi mathvariant="italic">f</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mi mathvariant="bold-italic">K</mml:mi><mml:mi mathvariant="bold-italic">u</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mi mathvariant="bold-italic">f</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mo movablelimits="true" form="prefix">min</mml:mo></mml:mrow></mml:msub><mml:mo>&#x2264;</mml:mo><mml:msub><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x003C;</mml:mo><mml:msub><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mo movablelimits="true" form="prefix">max</mml:mo></mml:mrow></mml:msub></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mi>&#x03C1;</mml:mi><mml:mrow><mml:mo movablelimits="true" form="prefix">min</mml:mo></mml:mrow></mml:msub><mml:mo>&#x2264;</mml:mo><mml:msub><mml:mi>&#x03C1;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x003C;</mml:mo><mml:msub><mml:mi>&#x03C1;</mml:mi><mml:mrow><mml:mo movablelimits="true" form="prefix">max</mml:mo></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow></mml:math>
</disp-formula></p>
<p>where <bold>&#x03B8;</bold> is the element angle vector, <bold>&#x03C1;</bold> is the element density. <italic>N</italic> is the element number, c is the compliance, <bold><italic>u</italic></bold>, <bold><italic>K</italic></bold> and <bold><italic>f</italic></bold> are the global displacements, global stiffness matrix and force vectors, respectively, <italic>f</italic> is the volume constraint. <italic>V</italic><sub>0</sub> is the domain volume. <italic>V</italic>(<italic>&#x03C1;</italic><sub><italic>i</italic></sub>) is the <italic>i</italic>-th element volume (area in 2D problems). The material density optimization procedure is based on SIMP approach [<xref ref-type="bibr" rid="ref-48">48</xref>,<xref ref-type="bibr" rid="ref-49">49</xref>]. In this paper, the penalization factor is 3. If the solid design domain is considered (this means that, only fiber angles are optimized while the design domain is all filled with solid materials), all the element densities should be set as 1. The <italic>&#x03B8;</italic><sub><italic>min</italic></sub> <italic>and &#x03B8;</italic><sub><italic>max</italic></sub> are set as &#x2013;90&#x00B0; and 90&#x00B0;, respectively. The <italic>&#x03C1;</italic><sub><italic>min</italic></sub> <italic>and &#x03C1;</italic><sub><italic>max</italic></sub> are set as 0.001 and 1, respectively.</p>
<p>As a common practice for numerical implementation purposes in the literature [<xref ref-type="bibr" rid="ref-48">48</xref>], a filter is applied to avoid the checkerboard patterns. In the present work, the filtering form is taken as</p>
<p><disp-formula id="eqn-10">
<label>(10)</label>
<mml:math id="mml-eqn-10" display="block"><mml:mover><mml:msub><mml:mi>&#x03C1;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo accent="false">&#x00AF;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:munder><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>N</mml:mi></mml:mrow></mml:munder><mml:msub><mml:mi mathvariant="bold-italic">H</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:munder><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>N</mml:mi></mml:mrow></mml:munder><mml:msub><mml:mi mathvariant="bold-italic">H</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi>&#x03C1;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:math>
</disp-formula></p>
<p>where <inline-formula id="ieqn-1"><mml:math id="mml-ieqn-1"><mml:mover><mml:msub><mml:mi>&#x03C1;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo accent="false">&#x00AF;</mml:mo></mml:mover></mml:math></inline-formula> is the filtered design variables, which is referred to as the physical element density or fiber angle of <italic>i</italic>-th element. It is noted that, when the filtering approach is used for fiber angles, it is not performed during the fiber angle optimization iterations, but performed after all the optimized iterations. The purpose is not only for time saving, but also for avoiding leading to local optimization results.</p>
<p>The design variables are updated by a set of elements that has the center-to-center distance smaller than the filter radius <italic>r</italic><sub>min</sub>, and <bold><italic>H</italic></bold><sub><bold><italic>i</italic></bold></sub> is a weight factor defined as</p>
<p><disp-formula id="eqn-11">
<label>(11)</label>
<mml:math id="mml-eqn-11" display="block"><mml:msub><mml:mi mathvariant="bold-italic">H</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo movablelimits="true" form="prefix">max</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mo movablelimits="true" form="prefix">min</mml:mo></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mi>&#x03B5;</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</disp-formula></p>
<p>where <italic>&#x00404;</italic>(<italic>i, j</italic>) is the distance between element <italic>i</italic> and <italic>j</italic>.</p>
<p>The plane-stress quadrilateral element is used in this study. The orthotropic material element stiffness matrix is:</p>
<p><disp-formula id="eqn-12">
<label>(12)</label>
<mml:math id="mml-eqn-12" display="block"><mml:mtable columnalign="left" rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:msub><mml:mi mathvariant="bold-italic">K</mml:mi><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi>N</mml:mi><mml:mi>L</mml:mi></mml:mrow></mml:munderover><mml:msub><mml:mi mathvariant="bold-italic">K</mml:mi><mml:mrow><mml:mi>e</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mi mathvariant="bold-italic">K</mml:mi><mml:mrow><mml:mi>e</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>&#x222B;</mml:mo><mml:msub><mml:mo>&#x222B;</mml:mo><mml:mrow><mml:mi>A</mml:mi></mml:mrow></mml:msub><mml:msup><mml:mi mathvariant="bold-italic">B</mml:mi><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:mi mathvariant="bold-italic">D</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mrow><mml:msub><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msup><mml:mo>)</mml:mo></mml:mrow><mml:mi mathvariant="bold-italic">B</mml:mi><mml:mtext>dxdy</mml:mtext></mml:mtd></mml:mtr></mml:mtable></mml:math>
</disp-formula></p>
<p>where the 2-D integration is performed over each element domain <italic>A</italic>, <italic>NL</italic> is the total number of layers, <bold><italic>B</italic></bold> is the strain-displacement matrix. <bold><italic>D</italic></bold> is the element orthotropic constitutive matrix. <inline-formula id="ieqn-1000"><mml:math id="mml-ieqn-1000"><mml:msubsup><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> represents the angles of <italic>i</italic>-th element in the <italic>j</italic>-th layer. The <bold><italic>K</italic></bold><sub><italic>ej</italic></sub> is calculated layer by layer. We call the base layer as <italic>&#x03B8;</italic><sup><italic>L</italic>0</sup>. The layer index <italic>j</italic> starts with 0 in the optimization process. If the total layer number is 3, the layers are called as <inline-formula id="ieqn-1001"><mml:math id="mml-ieqn-1001"><mml:msubsup><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mtext>&#xA0;</mml:mtext><mml:msubsup><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mtext>&#xA0;</mml:mtext><mml:msubsup><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula>, respectively. For 2-layered cases, the layers are. It should be noted that the fiber angles are perpendicular in the Bi-CFAO, which leads to <inline-formula id="ieqn-1002"><mml:math id="mml-ieqn-1002"><mml:msubsup><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mn>0</mml:mn></mml:mrow></mml:msubsup><mml:mo>&#x00B1;</mml:mo><mml:msup><mml:mn>90</mml:mn><mml:mrow><mml:mo>&#x2218;</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula>. The global stiffness matrix <bold><italic>K</italic></bold> is finally assembled using the elemental stiffness matrices <bold><italic>K</italic></bold><sub><bold><italic>e</italic></bold></sub>.</p>
<p>In the multi-layered cases, the fiber angles in other layers are set as different from the angles in the base layer [<xref ref-type="bibr" rid="ref-43">43</xref>,<xref ref-type="bibr" rid="ref-50">50</xref>]. Similar to the 2-layered cases, the angle difference between layer <italic>j</italic> and the base layer is set as constants <italic>&#x03B1;</italic>. Which can be represented as <inline-formula id="ieqn-1003"><mml:math id="mml-ieqn-1003"><mml:msubsup><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>L</mml:mi><mml:mn>0</mml:mn></mml:mrow></mml:msubsup><mml:mo>+</mml:mo><mml:mi>a</mml:mi></mml:math></inline-formula>. The angles in the base layer are set as design variables [<xref ref-type="bibr" rid="ref-43">43</xref>,<xref ref-type="bibr" rid="ref-50">50</xref>]. The element fiber angles in other layers are calculated by the angles in the base layer [<xref ref-type="bibr" rid="ref-43">43</xref>].</p>
<p>The orthotropic material with angle <italic>&#x03B8;</italic><sub><italic>i</italic></sub> has the elastic matrix calculated as</p>
<p><disp-formula id="eqn-13">
<label>(13)</label>
<mml:math id="mml-eqn-13" display="block"><mml:mrow><mml:mi mathvariant="bold">D</mml:mi></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mi mathvariant="bold">T</mml:mi></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="bold">D</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mi mathvariant="bold">T</mml:mi></mml:mrow><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="normal">T</mml:mi></mml:mrow></mml:mrow></mml:msup></mml:math>
</disp-formula></p>
<p>where D<sub>0</sub> is the original elastic matrix, T is related to the fiber angle <italic>&#x03B8;</italic> and it is the transformation matrix [<xref ref-type="bibr" rid="ref-19">19</xref>,<xref ref-type="bibr" rid="ref-20">20</xref>].</p>
<p><disp-formula id="eqn-14">
<label>(14)</label>
<mml:math id="mml-eqn-14" display="block"><mml:msub><mml:mrow><mml:mi mathvariant="bold">D</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:mn>1</mml:mn><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>&#x03C5;</mml:mi><mml:mrow><mml:mi>x</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi>&#x03C5;</mml:mi><mml:mrow><mml:mi>y</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mrow><mml:mo>[</mml:mo><mml:mtable columnalign="left left left" rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>x</mml:mi></mml:mrow></mml:msub></mml:mtd><mml:mtd><mml:msub><mml:mi>&#x03C5;</mml:mi><mml:mrow><mml:mi>y</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>x</mml:mi></mml:mrow></mml:msub></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mi>&#x03C5;</mml:mi><mml:mrow><mml:mi>x</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>y</mml:mi></mml:mrow></mml:msub></mml:mtd><mml:mtd><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>y</mml:mi></mml:mrow></mml:msub></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:mn>0</mml:mn></mml:mtd><mml:mtd><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mi>x</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable><mml:mo>]</mml:mo></mml:mrow></mml:math>
</disp-formula></p>
<p><disp-formula id="eqn-15">
<label>(15)</label>
<mml:math id="mml-eqn-15" display="block"><mml:mrow><mml:mi mathvariant="bold">T</mml:mi></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mtable columnalign="left left left" rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:msup><mml:mi>cos</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>&#x2061;</mml:mo><mml:msub><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mtd><mml:mtd><mml:msup><mml:mi>sin</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>&#x2061;</mml:mo><mml:msub><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mtd><mml:mtd><mml:mo>&#x2212;</mml:mo><mml:mn>2</mml:mn><mml:mi>cos</mml:mi><mml:mo>&#x2061;</mml:mo><mml:msub><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mi>sin</mml:mi><mml:mo>&#x2061;</mml:mo><mml:msub><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msup><mml:mi>sin</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>&#x2061;</mml:mo><mml:msub><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mtd><mml:mtd><mml:msup><mml:mi>cos</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>&#x2061;</mml:mo><mml:msub><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mtd><mml:mtd><mml:mn>2</mml:mn><mml:mi>cos</mml:mi><mml:mo>&#x2061;</mml:mo><mml:msub><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mi>sin</mml:mi><mml:mo>&#x2061;</mml:mo><mml:msub><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi>cos</mml:mi><mml:mo>&#x2061;</mml:mo><mml:msub><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mi>sin</mml:mi><mml:mo>&#x2061;</mml:mo><mml:msub><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mtd><mml:mtd><mml:mo>&#x2212;</mml:mo><mml:mi>cos</mml:mi><mml:mo>&#x2061;</mml:mo><mml:msub><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mi>sin</mml:mi><mml:mo>&#x2061;</mml:mo><mml:msub><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mtd><mml:mtd><mml:msup><mml:mi>cos</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>&#x2061;</mml:mo><mml:msub><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msup><mml:mi>sin</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>&#x2061;</mml:mo><mml:msub><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable><mml:mo>]</mml:mo></mml:mrow></mml:math>
</disp-formula></p>
<p>where <italic>E</italic><sub><italic>x</italic></sub> and <italic>E</italic><sub><italic>y</italic></sub> are the Youngs modulus, <italic>G</italic><sub><italic>xy</italic></sub> is the shear modulus, <italic>v</italic><sub><italic>xy</italic></sub> and <italic>v</italic><sub><italic>yx</italic></sub> are the Poisson&#x2019;s ratios.</p>
</sec>
<sec id="s3_2">
<label>3.2</label>
<title>Control-Point Based XBi-CFAO</title>
<p>In the isogeometric Bi-CFAO procedure, the general numerical analytical method FEM is replaced by the NURBS-based IGA. The NURBS basis functions are directly used in structural analysis as shape functions. Hence, a variable <italic>x</italic> (<italic>e.g</italic>., density, fiber angle, displacement, or stress) whose parametric coordinate is <italic>x</italic> (<italic>&#x03B7;, &#x03BE;</italic>) can be evaluated from the control point values</p>
<p><disp-formula id="eqn-16">
<label>(16)</label>
<mml:math id="mml-eqn-16" display="block"><mml:mi>x</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>&#x03B7;</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03BE;</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:munder><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:munder><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mi>&#x03B7;</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03BE;</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mi>P</mml:mi><mml:msubsup><mml:mrow></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow></mml:mrow></mml:msubsup><mml:mrow></mml:mrow><mml:mrow></mml:mrow></mml:math>
</disp-formula></p>
<p>where <italic>N</italic><sub><italic>i</italic></sub> is the basis function of the <italic>i</italic>-th control point influencing the position of (<italic>&#x03B7;, &#x03BE;</italic>), and <italic>P</italic><sub><italic>i</italic></sub> is the corresponding variable value of the related control point.</p>
<p>The <italic>j</italic>-th layer elementary stiffness matrix <bold><italic>K</italic></bold><sub><italic>ej</italic></sub> can be calculated as</p>
<p><disp-formula id="eqn-17">
<label>(17)</label>
<mml:math id="mml-eqn-17" display="block"><mml:msub><mml:mi mathvariant="bold-italic">K</mml:mi><mml:mrow><mml:mi>e</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mo>&#x222C;</mml:mo><mml:mrow><mml:mrow><mml:mover><mml:mi>A</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mrow></mml:msub><mml:msup><mml:mi mathvariant="bold-italic">B</mml:mi><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:msub><mml:mi mathvariant="bold-italic">D</mml:mi><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mrow><mml:msup><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mi mathvariant="bold-italic">B</mml:mi><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">J</mml:mi><mml:mrow><mml:mn mathvariant="bold">1</mml:mn></mml:mrow></mml:msub><mml:mo>|</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi></mml:mrow><mml:mrow><mml:mover><mml:mrow><mml:mi mathvariant="normal">A</mml:mi></mml:mrow><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mo>&#x222C;</mml:mo><mml:mrow><mml:mover><mml:mi>A</mml:mi><mml:mo accent="false">&#x00AF;</mml:mo></mml:mover></mml:mrow></mml:msub><mml:msup><mml:mi mathvariant="bold-italic">B</mml:mi><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:msub><mml:mi mathvariant="bold-italic">D</mml:mi><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mrow><mml:msup><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mi mathvariant="bold-italic">B</mml:mi><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">J</mml:mi><mml:mrow><mml:mn mathvariant="bold">1</mml:mn></mml:mrow></mml:msub><mml:mo>|</mml:mo></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">J</mml:mi><mml:mrow><mml:mn mathvariant="bold">2</mml:mn></mml:mrow></mml:msub><mml:mo>|</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi></mml:mrow><mml:mover><mml:mrow><mml:mi mathvariant="normal">A</mml:mi></mml:mrow><mml:mo accent="false">&#x00AF;</mml:mo></mml:mover></mml:math>
</disp-formula></p>
<p>where <inline-formula id="ieqn-2"><mml:math id="mml-ieqn-2"><mml:mrow><mml:mover><mml:mi>A</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:math></inline-formula> and <inline-formula id="ieqn-3"><mml:math id="mml-ieqn-3"><mml:mover><mml:mi>A</mml:mi><mml:mo accent="false">&#x00AF;</mml:mo></mml:mover></mml:math></inline-formula> are the parametric domain in the NURBS parametric space and the integration parametric space, and <bold><italic>J</italic></bold><sub><bold><italic>1</italic></bold></sub> and <bold><italic>J</italic></bold><sub><bold><italic>2</italic></bold></sub> are the transformation matrix from the NURBS parametric space to the physical space and the integration parametric space to the NURBS parametric space, respectively. More details are referred to [<xref ref-type="bibr" rid="ref-27">27</xref>&#x2013;<xref ref-type="bibr" rid="ref-29">29</xref>,<xref ref-type="bibr" rid="ref-51">51</xref>,<xref ref-type="bibr" rid="ref-52">52</xref>,<xref ref-type="bibr" rid="ref-53">53</xref>].</p>
<p>The &#x2018;&#x2018;NURBS elements&#x2019;&#x2019; play the dominant role in IGA, and this is similar to the character of the elements in FEM. To be exact, they are called the &#x2018;&#x2018;spans&#x2019;&#x2019; in IGA [<xref ref-type="bibr" rid="ref-22">22</xref>]. A patch is a local domain of B-spline parametric space. The physical model of the structure is constructed by these patches, like it is constructed by elements in the FEM. In this paper, we call the &#x2018;&#x2018;patches&#x2019;&#x2019; elements, for the sake of simplicity.</p>
<p>As the physical models are attached to the control points and represented by the NURBS basis functions. The design variables could be optimized on the control points as well as located at the center of the elements. The former is called control point-based and the latter is called the element-based ITO.</p>
<p>In the element-based IGA topology and fiber angle optimization, the element density and fiber angle are represented by the values at the element center, which is calculated by</p>
<p><disp-formula id="eqn-18">
<label>(18)</label>
<mml:math id="mml-eqn-18" display="block"><mml:mtable columnalign="left" rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:msub><mml:mi>&#x03C1;</mml:mi><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>&#x03C1;</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:munder><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>k</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:munder><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow><mml:mi>e</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:msub><mml:mover><mml:mi>&#x03C1;</mml:mi><mml:mrow><mml:mo stretchy="false">&#x2DC;</mml:mo></mml:mrow></mml:mover><mml:mrow><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow><mml:mi>e</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:munder><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>k</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:munder><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow><mml:mi>e</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:msub><mml:mover><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mo stretchy="false">&#x2DC;</mml:mo></mml:mrow></mml:mover><mml:mrow><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow><mml:mi>e</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:math>
</disp-formula></p>
<p>where <italic>e</italic><sub><italic>c</italic></sub> denotes the center of the <italic>e</italic>-th element, <italic>p</italic><sub><italic>e</italic></sub> is the control point set that influences element <italic>e</italic>, <italic>p</italic><sub><italic>ek</italic></sub> is the <italic>k</italic>-th control point of <italic>p</italic><sub><italic>e</italic></sub>, and <italic>N</italic><sub><italic>pek</italic></sub><italic>(e</italic><sub><italic>c</italic></sub><italic>)</italic> is the NURBS basis function of control point <italic>p</italic><sub><italic>ek</italic></sub> corresponding to the center of element <italic>e</italic>. The <inline-formula id="ieqn-4"><mml:math id="mml-ieqn-4"><mml:msub><mml:mover><mml:mi>&#x03C1;</mml:mi><mml:mrow><mml:mo stretchy="false">&#x2DC;</mml:mo></mml:mrow></mml:mover><mml:mrow><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow><mml:mi>e</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, and <inline-formula id="ieqn-5"><mml:math id="mml-ieqn-5"><mml:msub><mml:mover><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mo stretchy="false">&#x2DC;</mml:mo></mml:mrow></mml:mover><mml:mrow><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow><mml:mi>e</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> are the density and angle of the <italic>k</italic>-th control point of <italic>p</italic><sub><italic>e</italic></sub>.</p>
<p>In the minimum compliance problems, the compliance sensitivity for element density can be written as</p>
<p><disp-formula id="eqn-19">
<label>(19)</label>
<mml:math id="mml-eqn-19" display="block"><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mi>&#x03C1;</mml:mi><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mo>=</mml:mo><mml:mo>&#x2212;</mml:mo><mml:msup><mml:mrow><mml:mi mathvariant="bold">u</mml:mi></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:mi mathvariant="bold">K</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mi>&#x03C1;</mml:mi><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mrow><mml:mi mathvariant="bold">u</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mo>&#x2212;</mml:mo><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>e</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:munderover><mml:mrow><mml:mo>(</mml:mo><mml:mi>q</mml:mi><mml:msup><mml:mrow><mml:msub><mml:mi>&#x03C1;</mml:mi><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>q</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi>N</mml:mi><mml:mi>L</mml:mi></mml:mrow></mml:munderover><mml:msup><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="bold">u</mml:mi></mml:mrow><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:msup><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="bold">k</mml:mi></mml:mrow><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="bold">u</mml:mi></mml:mrow><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math>
</disp-formula></p>
<p>The derivatives of compliance for the element fiber angles are obtained as</p>
<p><disp-formula id="eqn-20">
<label>(20)</label>
<mml:math id="mml-eqn-20" display="block"><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mo>=</mml:mo><mml:mo>&#x2212;</mml:mo><mml:msup><mml:mrow><mml:mi mathvariant="bold">u</mml:mi></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mrow><mml:mi mathvariant="bold">K</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mrow><mml:mi mathvariant="bold">u</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mo>&#x2212;</mml:mo><mml:msup><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>q</mml:mi></mml:mrow></mml:msup><mml:msup><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="bold">u</mml:mi></mml:mrow><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo>{</mml:mo><mml:msub><mml:mo>&#x222C;</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub><mml:mrow><mml:mo>[</mml:mo><mml:msup><mml:mrow><mml:mi mathvariant="bold">B</mml:mi></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi>N</mml:mi><mml:mi>L</mml:mi></mml:mrow></mml:munderover><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msup><mml:mrow><mml:mi mathvariant="bold">T</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mrow><mml:msup><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="bold">C</mml:mi></mml:mrow><mml:msup><mml:mrow><mml:mi mathvariant="bold">T</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mi mathvariant="bold">B</mml:mi></mml:mrow><mml:mo>+</mml:mo><mml:msup><mml:mrow><mml:mi mathvariant="bold">B</mml:mi></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:msup><mml:mrow><mml:mi mathvariant="bold">T</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mrow><mml:mi mathvariant="bold">C</mml:mi></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi>N</mml:mi><mml:mi>L</mml:mi></mml:mrow></mml:munderover><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msup><mml:mrow><mml:mi mathvariant="bold">T</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mrow><mml:msup><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="bold">B</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi></mml:mrow><mml:mi>A</mml:mi><mml:mo>}</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="bold">u</mml:mi></mml:mrow><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub></mml:math>
</disp-formula></p>
<p>However, the design variables should be changed from elemental to control point variables in the control point-based ITO. Therefor an additional job should be performed during sensitivity analysis. The sensitivities of the objective function <italic>c</italic> for respect to the density of control points are written as</p>
<p><disp-formula id="eqn-21">
<label>(21)</label>
<mml:math id="mml-eqn-21" display="block"><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mover><mml:mi>&#x03C1;</mml:mi><mml:mrow><mml:mo stretchy="false">&#x2DC;</mml:mo></mml:mrow></mml:mover><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mo>=</mml:mo><mml:munder><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>k</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:munder><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mi>&#x03C1;</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mi>&#x03C1;</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mover><mml:mi>x</mml:mi><mml:mrow><mml:mo stretchy="false">&#x2DC;</mml:mo></mml:mrow></mml:mover><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mo>=</mml:mo><mml:mo>&#x2212;</mml:mo><mml:munder><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>k</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:munder><mml:mi>q</mml:mi><mml:msup><mml:mrow><mml:msub><mml:mi>&#x03C1;</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>q</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:msup><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="bold">u</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo>[</mml:mo><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi>N</mml:mi><mml:mi>L</mml:mi></mml:mrow></mml:munderover><mml:msub><mml:mrow><mml:mi mathvariant="bold">k</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mrow><mml:msub><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msup><mml:mo>)</mml:mo></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="bold">u</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mi>&#x03C1;</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mover><mml:mi>&#x03C1;</mml:mi><mml:mrow><mml:mo stretchy="false">&#x2DC;</mml:mo></mml:mrow></mml:mover><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:math>
</disp-formula></p>
<p>And the sensitivity of fiber angle on a control point is calculated as</p>
<p><disp-formula id="eqn-22">
<label>(22)</label>
<mml:math id="mml-eqn-22" display="block"><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mover><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mo stretchy="false">&#x2DC;</mml:mo></mml:mrow></mml:mover><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mo>=</mml:mo><mml:munder><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>k</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:munder><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mover><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mo stretchy="false">&#x2DC;</mml:mo></mml:mrow></mml:mover><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mo>=</mml:mo><mml:mo>&#x2212;</mml:mo><mml:munder><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>k</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:munder><mml:msup><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="bold">u</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo>[</mml:mo><mml:munderover><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi>N</mml:mi><mml:mi>L</mml:mi></mml:mrow></mml:munderover><mml:msub><mml:mrow><mml:mi mathvariant="bold">k</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mrow><mml:msup><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="bold">u</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mover><mml:mi>&#x03B8;</mml:mi><mml:mrow><mml:mo stretchy="false">&#x2DC;</mml:mo></mml:mrow></mml:mover><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:math>
</disp-formula></p>
<p>The derivation in the chain derivation process can be written as</p>
<p><disp-formula id="eqn-23">
<label>(23)</label>
<mml:math id="mml-eqn-23" display="block"><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2202;</mml:mi><mml:msub><mml:mover><mml:mi>x</mml:mi><mml:mrow><mml:mo stretchy="false">&#x2DC;</mml:mo></mml:mrow></mml:mover><mml:mrow><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow><mml:mi>e</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mo>=</mml:mo><mml:munder><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>k</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow><mml:mi>e</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:munder><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mrow><mml:mi>e</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math>
</disp-formula></p>
<p>where <italic>x</italic> denotes density or fiber angle.</p>
</sec>
<sec id="s3_3">
<label>3.3</label>
<title>Optimization Algorithm</title>
<p>There are series of methods such as the method of moving asymptotes (MMA) [<xref ref-type="bibr" rid="ref-44">44</xref>], the sequential quadratic programming (SQP) [<xref ref-type="bibr" rid="ref-54">54</xref>], and the optimality criteria method (OC) [<xref ref-type="bibr" rid="ref-48">48</xref>], are competent to solve the gradient-based topology and angle optimization problems. In this work, the MMA optimizer is adopted. The convergence criteria are set as the density and fiber angles of the current iteration is less than the preset convergence error <italic>&#x03B4;</italic> or the iteration number is greater than the max iterations number <italic>Nt</italic> (in this paper, <italic>&#x03B4;</italic> &#x003D; 0.0001, <italic>Nt</italic> &#x003D; 40).</p>
<p><?A3B2 "fig2",5,"anchor"?><xref ref-type="fig" rid="fig-2">Fig. 2</xref> shows the flowchart of the main procedure. The optimization procedure for optimizing the fiber angles and element densities is shown in the left part of the figure. It can be outlined as follows:</p>
<p>Step 1. Initialize the design domain, boundary conditions, and optimization parameters.</p>
<p>Step 2. Define NURBS spaces and IGA models.</p>
<p>Step 3. Calculate the element stiffness matrixes with the element densities and fiber angles.</p>
<p>Step 4. Assemble the global stiffness matrix.</p>
<p>Step 5. Analyze with IGA.</p>
<p>Step 6. Calculate the sensitivities of the control points.</p>
<p>Step 7. Optimize the design variables with the MMA process.</p>
<p>Step 8. Iterate until the convergence.</p>
<p>After the fiber angle optimization process, the fiber paths are generated and updated if the fiber angles are changing abruptly. The detailed fiber path updating algorithm is introduced in the next section and the flowchart is shown in the right part of <xref ref-type="fig" rid="fig-2">Fig. 2</xref>.</p>
<fig id="fig-2">
<label>Figure 2</label>
<caption>
<title>The flowchart of IGA based XBi-CFAO optimization procedure</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_17704-fig-2.png"/>
</fig>
</sec>
<sec id="s3_4">
<label>3.4</label>
<title>The New Selection Process for Smooth the Fiber Path</title>
<p>As is mentioned in our former work [<xref ref-type="bibr" rid="ref-24">24</xref>], the path generation procedure is performed applying the MATLAB function stream slice. The path generation procedure can plot the fiber paths during or after the optimization iterations.</p>
<p>As introduced in Section 1, a new updating strategy called the modified angle selection procedure is developed in this paper to handle the discontinuous of the fiber paths. <?A3B2 "tbl1",5,"anchor"?><xref ref-type="table" rid="table-1">Tab. 1</xref> shows the new selection progress. The Matlab functions like stream slice, abs, sum, min, and find are applied in a loose form for the sake of simplification. Three user-defined functions are used: <italic>fit</italic>, <italic>curvature_radius</italic>, and <italic>point_in_polygon</italic> in the algorithm. The former two user-defined functions are the same as our former work [<xref ref-type="bibr" rid="ref-24">24</xref>]. The detailed algorithm of the third user-defined function in step 06 is referred to literature [<xref ref-type="bibr" rid="ref-26">26</xref>].</p>
<table-wrap id="table-1">
<label>Table 1</label>
<caption>
<title>Algorithm for angle selecting</title>
</caption>
<table>
<colgroup>
<col/>
</colgroup>
<tbody>
<tr>
<td>Input: <italic><bold>X</bold></italic>, <italic><bold>Y</bold></italic>, <italic><bold>ang,</bold> Rmin</italic></td>
</tr>
<tr>
<td>Output: <bold><italic>ang</italic>1</bold></td>
</tr>
<tr>
<td>Step01: Initialization</td>
</tr>
<tr>
<td> <italic>update</italic> &#x003D; 0, <italic>loop</italic> &#x003D; 0;</td>
</tr>
<tr>
<td>Step02: Calculate the initial curvature radius</td>
</tr>
<tr>
<td><bold> <italic>L</italic> &#x003D;</bold> <italic>streamslice</italic>(<bold><italic>X</italic></bold>, <bold><italic>Y</italic></bold>, <bold><italic>ang</italic></bold>)</td>
</tr>
<tr>
<td> [<bold><italic>L</italic></bold><sub><bold><italic>f1</italic></bold></sub>] &#x003D; <italic>fit</italic> (<bold><italic>L</italic></bold>)</td>
</tr>
<tr>
<td> [<bold><italic>r</italic></bold>] &#x003D; <italic>curvature_radius</italic>(<bold><italic>L</italic></bold><sub><bold><italic>f1</italic></bold></sub>)</td>
</tr>
<tr>
<td>Step03: Find abrupt changing angles</td>
</tr>
<tr>
<td><bold> <italic>Di</italic></bold><italic>(i)</italic> &#x003D; abs<italic>(</italic><bold><italic>ang</italic></bold><italic>(i) &#x2013;</italic> <bold><italic>ang</italic></bold><italic>(near_i));</italic></td>
</tr>
<tr>
<td> <bold> if</bold> <italic>size(Find(abs(</italic><bold><italic>Di</italic></bold><italic>(i) &#x2013; 90) &#x003C; 45))</italic> &#x003E; C, <italic>is_abrupt(i)</italic> &#x003D; 1, <bold>else</bold>, <italic>is_abrupt(i)</italic> &#x003D; 0, <bold>end if</bold></td></tr>
<tr>
<td>Step04: Find neighbors</td>
</tr>
<tr>
<td><bold> <italic> d_abrupt</italic></bold><italic>(i, j)</italic> &#x003D; <bold><italic>P</italic></bold><italic>(is_abrupt(i)) &#x2013;</italic> <bold><italic>P</italic></bold><italic>(is_abrupt(j))</italic>,</td>
</tr>
<tr>
<td>[<italic>d, j</italic>] &#x003D; min(<bold><italic>d_abrupt</italic></bold><italic>(i,:)</italic>), <italic>count</italic> &#x003D; 0, <italic>line_num</italic> &#x003D; 1;</td>
</tr>
<tr>
<td> <bold> while</bold> count &#x003C; number of abrupt changing angles</td>
</tr>
<tr>
<td> if <italic>d</italic> &#x003C; <italic>Rmin</italic>,</td>
</tr>
<tr>
<td> <italic>   is_neighbor(i, j)</italic> &#x003D; 1, <italic>next</italic> &#x003D; <italic>j</italic>, <italic>line(i) &#x003D; line_num, line(j) &#x003D; line_num</italic>;</td>
</tr>
<tr>
<td>   else,</td>
</tr>
<tr>
<td> <italic>   is_neighbor(i, j)</italic> &#x003D; 0, <italic>next &#x003D; j</italic>, <italic>line(i) &#x003D; line_num, line_num &#x003D; line_num &#x002B;1</italic>;</td>
</tr>
<tr>
<td>   end if, <italic>count &#x003D; count</italic> &#x002B; 1,</td>
</tr>
<tr>
<td> <bold>  end while</bold></td>
</tr>
<tr>
<td>Step05: Check whether the neighbors are from edge to edge</td>
</tr>
<tr>
<td> <bold>for</bold> <italic>i &#x003D; 1:line_num</italic>,</td>
</tr>
<tr>
<td><bold> <italic>   d_pedge &#x003D; P</italic></bold>(<italic>edge</italic>) <bold><italic>&#x2013; P</italic></bold>(find(<italic>line &#x003D;&#x003D; line_num</italic>))</td>
</tr>
<tr>
<td> <bold>   if</bold> min(<bold><italic>d_pedge</italic></bold>) &#x003C; <italic>Rmin</italic>, <italic>is_edge2edge (i)</italic> &#x003D; 1, <bold>else</bold>, <italic>is_edge2edge(i)</italic> &#x003D; 0, <bold>end if</bold></td>
</tr>
<tr>
<td> <bold>  end for</bold></td>
</tr>
<tr>
<td>Step06: Divide domain</td>
</tr>
<tr>
<td> <bold>  for</bold> <italic>i</italic> &#x003D; 1: number of closed lines</td>
</tr>
<tr>
<td>   get elements in the <italic>i-</italic>th piece [<xref ref-type="bibr" rid="ref-26">26</xref>],[<italic>elements_in</italic>] <italic>&#x003D; point_in_polygon</italic></td>
</tr>
<tr>
<td> <italic>   piece(elements_in) &#x003D; i</italic>, <italic>piece_num &#x003D; piece_num</italic> &#x002B; 1;</td>
</tr>
<tr>
<td> <bold>  end for</bold></td>
</tr>
<tr>
<td>Step07: Update angles in some of the other pieces</td>
</tr>
<tr>
<td> <bold>  for</bold> <italic>i</italic> &#x003D; 2: <italic>piece_num</italic>, <bold><italic>ang0</italic></bold>(find(<italic>piece &#x003D;&#x003D; i</italic>)) <bold> <italic>&#x003D; ang</italic></bold>(find(<italic>piece &#x003D;&#x003D; i</italic>)) <bold> <italic>&#x002B;</italic></bold> 90<italic>&#x00B0;</italic>, <bold>end for</bold></td>
</tr>
<tr>
<td>Step08: Calculate the new curvature radius.</td>
</tr>
<tr>
<td>Step09: Compare the radius and determine whether the convergence is satisfied</td>
</tr>
<tr>
<td> <bold>  if</bold> min( <bold><italic>r</italic></bold><sub><italic>1</italic></sub>) &#x003E; min( <bold><italic>r</italic></bold>), <italic>update</italic> &#x003D; 1, <bold><italic>ang1 &#x003D; ang0</italic>, else</bold>, <italic>update</italic> &#x003D; 0, <bold>endif</bold>, <italic>loop &#x003D; loop</italic> &#x002B; 1</td>
</tr>
<tr>
<td>Step10: End</td>
</tr>
<tr>
<td> <bold>  if</bold> <italic>loop</italic> &#x003C; <italic>piece_num</italic>, <bold>do</bold>Step02, else, <bold>break, endif</bold></td>
</tr>
</tbody>
</table>
</table-wrap>
<p>The sketch map of these steps is shown in <?A3B2 "fig3",5,"anchor"?><xref ref-type="fig" rid="fig-3">Fig. 3</xref>. The first row with four pictures shows the schematic diagram. The second row shows the steps listed in <xref ref-type="table" rid="table-1">Tab. 1</xref>. The last row shows the detailed process flow chart of some steps.</p>
<p>It is easy to find that the first picture in the first row shows the abrupt changing angles in the design domain. We should find these angles first. The first picture in the third row shows how to find these angles. The abrupt angles can be determined by the size number of Di close to 90<italic>&#x00B0;</italic>. The number C is the biggest lever set size number (C is set as 8 in this paper).</p>
<p>As shown in the second picture of the first row, the singular angles could be interpolated according to the surrounding angles, because their neighbors are uniformly smooth. However, the abrupt changing angles near the edge-to-edge line could not be smoothed by the filtering technique. The angles are continuous and uniform in each side of the edge-to-edge line. And these angles are divided into two parts by the edge-to-edge line. Flipping the angles by 90<italic>&#x00B0;</italic> in one side can make the angles more continuous and uniform in both sides.</p>
<fig id="fig-3">
	<label>Figure 3</label>
	<caption>
		<title>Schematic diagram of the selecting strategy in the XBi-CFAO</title>
	</caption>
	<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_17704-fig-3.png"/>
	</fig>
<p>Therefore, we should classify the abrupt changing angles into two kinds, including the angles in an edge-to-edge line and the angles in a non-edge-to-edge line (including the singular angles). To classify the abrupt changing angles, all the points located at the abrupt changing angles and the points located in the boundaries of the design domain should be taken into account. The distances between all these boundary-points and the abrupt changing points should be calculated to find the neighbors of each abrupt changing point. Then we should connect the local neighbored points into a line. A minimum spatial distance <italic>R</italic><sub><italic>min</italic></sub> is applied to distinguish whether the point is in the same line. (<italic>R</italic><sub><italic>min</italic></sub> is set as twice of the element length). Then we should classify the lines into the two kinds, including the edge-to-edge line and the non-edge-to-edge line. As shown in the second picture in the first row, the blue line located in the dashed blue circle is a typical singular point (non-edge-to-edge line). The black lines are made of the angle points located in the edge-to-edge line.</p>
<p>After the edge-to-edge line is determined, the domain is divided into pieces. It is shown by the red lines and black lines in the third picture in the first row. The edge-to-edge line divides the domain to sub-block A and sub-block B. The angles are set as different groups by the location using a point-in-polygon algorithm [<xref ref-type="bibr" rid="ref-26">26</xref>] to determine which sub-block the element is located in.</p>
<p>We set the largest group of angles remain as the original values and the sub-blocks around the largest group update. As shown in the fourth picture in the first row, the sub-block A has the largest group of the angles so that the fiber angles remain the original angles. The fiber angles flip 90&#x00B0; in sub-block B.</p>
<p>After updating the fiber angles sub-block by sub-block, the minimum radius of curvature of the new paths should be calculated. If the minimum radius is maximized and remains constant or the loop number is bigger than the number of pieces, the updating process will be ended.</p>
<p>As we have described in the former part of this section, the elements are constructed by two layers, and the fiber angles in the two layers are perpendicular to each other. In the updated groups, the fiber angles just like flip from the base layer to the other layer. This fiber angles updating process seems to select an appropriate assembly of the divided pieces to avoid spatial discontinuity of the fiber paths. After this process, most of the local discontinuity may vanish.</p>
<p>In this work, the fiber angles for multi-layered composites are then considered by extending the Bi-CFAO method to multi-layered cases. The main difference between the multi-layered and two-layered laminates is the construction of the element stiffness matrix. For the sake of simplicity, the manufacturing constants are not considered in the present paper.</p>
</sec>
</sec>
<sec id="s4">
<label>4</label>
<title>Examples</title>
<p>In this section, numerical results generated with the proposed XBi-CFAO method are presented. The mechanical parameters for the composite material are assumed as <italic>E</italic><sub>x</sub> &#x003D; 1.0, <italic>E</italic><sub>y</sub> &#x003D; 0.1, <italic>G</italic><sub>xy</sub> &#x003D; 0.02, <italic>v</italic><sub>xy</sub> &#x003D; 0.3. In the sake of simplicity, the target volumes are <italic>V</italic><sub>0</sub> &#x003D; 1 and <italic>V</italic><sub>0</sub> &#x003D; 0.8, respectively. In this paper, the fiber angles with and without topology optimizations are both performed. In the <italic>V</italic><sub>0</sub> &#x003D; 1 case, they are optimized without changing densities. Both quadratic elements are used for IGA and FEM.</p>
<sec id="s4_1">
<label>4.1</label>
<title>Quarter Annulus</title>
<p>The first example is a typical problem that is frequently applied in NURBS-based IGA topology optimization. As shown in <?A3B2 "fig4",5,"anchor"?><xref ref-type="fig" rid="fig-4">Fig. 4</xref>, the design domain is a quarter annulus, which with the inner radius r &#x003D; 1 and outer radius R &#x003D; 2. A horizontally loaded concentrated force F is at the left-top corner. The bottom boundary is fixed. The quadratic NURBS element is applied in this example for IGA and the h-refinement is used to generate the finer NURBS meshes.</p>
<fig id="fig-4">
	<label>Figure 4</label>
	<caption>
		<title>Quarter annulus design problem</title>
	</caption>
	<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_17704-fig-4.png"/>
	</fig>
<p><?A3B2 "fig5",5,"anchor"?><xref ref-type="fig" rid="fig-5">Fig. 5</xref> shows the quadratic NURBS elements constructed by the control points. It is noted that, some of the NURBS control points are out of the design domain, which is different from the interpolation type FEM node. The mesh construction process is described in the former work [<xref ref-type="bibr" rid="ref-55">55</xref>]. For a better understanding of the NURBS-based IGA, readers may refer to [<xref ref-type="bibr" rid="ref-22">22</xref>,<xref ref-type="bibr" rid="ref-29">29</xref>,<xref ref-type="bibr" rid="ref-46">46</xref>]. The NURBS element size is 32 &#x00D7; 32 and the control point size is 34 &#x00D7; 34. In this example, a 9-node quadratic element is applied to execute the FEM computing.</p>
<fig id="fig-5">
<label>Figure 5</label>
<caption>
<title>The control points of quarter annulus with (a) 1 &#x00D7; 1 quadratic NURBS element and (b) 3 &#x00D7; 3 quadratic NURBS elements</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_17704-fig-5.png"/>
</fig>
<p>In this example, three optimizations are accomplished with the different initial angles, which are set as 0<italic>&#x00B0;</italic>, 45<italic>&#x00B0;</italic> and 90<italic>&#x00B0;</italic>, respectively. The phenomenon of fiber angle discontinuity and the selection process is presented firstly. The fiber angle results of the three optimizations are shown in <?A3B2 "fig6",5,"anchor"?><xref ref-type="fig" rid="fig-6">Fig. 6</xref>. The abrupt changes of fiber angles are found in all the results, and the discontinuity points partitioned the design domain into 2 pieces. The fiber angles in the sub-blocks are mainly continuous with some local singular points. The locations of the abrupt changing angles and shapes of the sub-blocks are different in the three cases. But it should be noted that the fiber angles in the smooth areas are similar to each other.</p>
<fig id="fig-6">
	<label>Figure 6</label>
	<caption>
		<title>Optimized fiber angles with different initial values (a) <italic>&#x03B8;</italic><sub>0</sub> &#x003D; 0&#x00B0;, (b) <italic>&#x03B8;</italic><sub>0</sub> &#x003D; 45&#x00B0;, (c) <italic>&#x03B8;</italic><sub>0</sub> &#x003D; 90<italic>&#x00B0;</italic></title>
	</caption>
	<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_17704-fig-6.png"/>
	</fig>
<p>The fiber paths are generated using the Matlab function stream slice with discontinuities shown in <?A3B2 "fig7",5,"anchor"?><xref ref-type="fig" rid="fig-7">Fig. 7</xref>. The red lines are the paths in the basic layer. The blue lines are the paths in the next layer. The locations of the unsmoothed fiber paths are attached to the abrupt changing angles. The shapes of the fiber paths in the uniformly continuous parts of the sub-blocks are almost the same to each other. The fiber paths with different initial fiber angles seem like several identical paintings whom are torn to pieces in different starting positions. The updating process seems like a restoration for the destroyed paintings. A schematic diagram of the updating process is shown in <?A3B2 "fig8",5,"anchor"?><xref ref-type="fig" rid="fig-8">Fig. 8</xref>. It is noted that, during the optimization process, the singular fiber angles exist in the control points, these singular points can be ignored in the selection process. Profit from the NURBS-based IGA, the element angles in these areas are smoothed by the natural NURBS filtering. In the FEM cases, additional filtering should be performed to handle these singular points. The results of the updated fiber angles are shown in <?A3B2 "fig9",5,"anchor"?><xref ref-type="fig" rid="fig-9">Fig. 9</xref> and the updated fiber paths are shown in <?A3B2 "fig10",5,"anchor"?><xref ref-type="fig" rid="fig-10">Fig. 10</xref>.</p>
<fig id="fig-7">
<label>Figure 7</label>
<caption>
<title>Fiber paths with different initial fiber angles (a) <italic>&#x03B8;</italic><sub>0</sub> &#x003D; 0&#x00B0;, (b) <italic>&#x03B8;</italic><sub>0</sub> &#x003D; 45&#x00B0;, (c) <italic>&#x03B8;</italic><sub>0</sub> &#x003D; 90&#x00B0;</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_17704-fig-7.png"/>
</fig>
<fig id="fig-8">
<label>Figure 8</label>
<caption>
<title>The schematic diagram of updating process</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_17704-fig-8.png"/>
</fig>
<p>The element fiber angles generated by the IGA and FEM are shown in <?A3B2 "fig11",5,"anchor"?><xref ref-type="fig" rid="fig-11">Fig. 11</xref>. It is shown that the fiber angles are similar. The abrupt changing angles are located in the same area, but the line in the FEM is more evident as the differences between the angles located beside the line are closer to 90<italic>&#x00B0;</italic>. As the angles in the IGA are naturally filtered by the NURBS. The <?A3B2 "fig12",5,"anchor"?><xref ref-type="fig" rid="fig-12">Fig. 12</xref> shows the convergence history of the objective function for IGA and FEM. The objective function numbers for the IGA in the CFAO, Bi-CFAO, and XBi-CFAO are 26.9, 37.9 and 32.7, respectively. And the values in FEM are tiny bigger, they are 27.3, 38.0 and 32.8, respectively. The IGA is more effective to generate uniform smooth fiber angles and to obtain better results of objective functions than FEM.</p>
<fig id="fig-9">
	<label>Figure 9</label>
	<caption>
		<title>The updated fiber angles at the control points</title>
	</caption>
	<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_17704-fig-9.png"/>
	</fig>
	<fig id="fig-10">
		<label>Figure 10</label>
		<caption>
			<title>The fiber paths generated from the updated fiber angles (a) Layers (&#x03B8;<sup>0</sup>) and (&#x03B8;<sup>90</sup>), (b) Layers (&#x03B8;<sup>45</sup>) and (&#x03B8;<sup>&#x2013;45</sup>)</title>
		</caption>
		<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_17704-fig-10.png"/>
		</fig>
<fig id="fig-11">
<label>Figure 11</label>
<caption>
<title>The element angles generated by IGA and FEM (a) IGA element angle distribution, (b) FEM element angle distribution (c) IGA element angles, (d) FEM element angles</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_17704-fig-11.png"/>
</fig>
<fig id="fig-12">
<label>Figure 12</label>
<caption>
<title>The convergence of the objective function using IGA and FEM</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_17704-fig-12.png"/>
</fig>
<p><?A3B2 "fig13",5,"anchor"?><xref ref-type="fig" rid="fig-13">Fig. 13</xref> shows the synchronous optimization of the topology and fiber angles. In the XBi-CFAO, the fiber angles and topology can be optimized synchronously and the fiber angles can be optimized alone as well. It is found that, in Bi-CFAO and XBi-CFAO, the optimized results for the fiber angles and fiber paths may differ in different areas of the design domain, but the locations and shapes of the abrupt areas are not near or attached to the void elements.</p>
<p>However, the results for conventional CFAO, shown in <?A3B2 "fig14",5,"anchor"?><xref ref-type="fig" rid="fig-14">Fig. 14</xref>, are near to the void areas. The shapes of the fiber paths are different in the void areas, compared to the paths located in the solid areas [<xref ref-type="bibr" rid="ref-19">19</xref>]. The Bi-CFAO and XBi-CFAO are not as sensitive as the CFAO to the topology changes. As shown in <xref ref-type="fig" rid="fig-10">Figs. 10</xref> and <xref ref-type="fig" rid="fig-13">13</xref>, the shapes of the updated fiber paths for the target volumes V &#x003D; 1 and V &#x003D; 0.8 in the remained design domain areas are the same.</p>
<fig id="fig-13">
<label>Figure 13</label>
<caption>
<title>The topology and fiber paths for target volume 0.8 using XBi-CFAO (a) The updated fiber angles, (b) The fiber paths</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_17704-fig-13.png"/>
</fig>
<fig id="fig-14">
<label>Figure 14</label>
<caption>
<title>Optimized fiber angles and fiber paths for single layer using CFAO that with different initial values (a) <italic>&#x03B8;</italic><sub>0</sub> &#x003D; 0&#x00B0; (b) <italic>&#x03B8;</italic><sub>0</sub> &#x003D; 45&#x00B0; (c) <italic>&#x03B8;</italic><sub>0</sub> &#x003D; 90&#x00B0; (d) <italic>&#x03B8;</italic><sub>0</sub> &#x003D; 0&#x00B0; (e) <italic>&#x03B8;</italic><sub>0</sub> &#x003D; 45&#x00B0; (f) <italic>&#x03B8;</italic><sub>0</sub> &#x003D; 90&#x00B0;</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_17704-fig-14.png"/>
</fig>
<p>The three-layered composites are optimized as well. The results are shown in <?A3B2 "fig15",5,"anchor"?><xref ref-type="fig" rid="fig-15">Fig. 15</xref>. The red lines are corresponding to the base layer <italic>&#x03B8;</italic><sup>0</sup>, the blue lines are corresponding to the layer <italic>&#x03B8;</italic><sup>45</sup>, the green are corresponding to the layer <italic>&#x03B8;</italic><sup>&#x2013;45</sup>. The optimized fiber paths in <xref ref-type="fig" rid="fig-15">Fig. 15c</xref> are similar with <xref ref-type="fig" rid="fig-10">Fig. 10a</xref>. The results show that, the fiber paths for three-layered cases can be smoothed using the XBi-CFAO method as well as two-layered cases.</p>
<fig id="fig-15">
<label>Figure 15</label>
<caption>
<title>The fiber angles and fiber paths by XBi-CFAO (a) Fiber angles in base layer by XBi-CFAO (b) Fiber paths (c) Updated fiber paths</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_17704-fig-15.png"/>
</fig>
<p>As shown in <?A3B2 "fig16",5,"anchor"?><xref ref-type="fig" rid="fig-16">Fig. 16</xref>, the convergence of the objective functions using conventional CFAO (blue lines), Bi-CFAO (red lines) and the extended Bi-CFAO (green lines) for single layer, bi-layered and three-layered composites are compared. The total thicknesses for the IGA models are set as equal in these problems for the sake of fairness. The results indicate that the objective functions of the Bi-CFAO for two layers are bigger than the others. The conventional CFAO for single layer yield better objective functions than the other two. This is mainly because the restricted condition in element angle combinations for the conventional CFAO is the weakest and the restricted condition for the Bi-CFAO is the strongest. Suppose the best fiber angle for an arbitrary element is 0<italic>&#x00B0;</italic>. The fibers in the three layers in conventional CFAO could all be 0<italic>&#x00B0;</italic>. But for Bi-CFAO, one could be in 0<italic>&#x00B0;</italic>, the other should be in the 90<italic>&#x00B0;</italic>, which is in the most opposite direction to the best field. For the extended Bi-CFAO, one fiber could be along the direction of 0<italic>&#x00B0;</italic>, the other two fibers may have a &#x2018;component&#x2019; in the best direction of 0<italic>&#x00B0;</italic>. However, the effect of the manufacturing defects induced by the big curvature is not considered during the objective function computing process. The minimum curvature radius for CFAO is equal to the minimum length of the element (refer to <xref ref-type="fig" rid="fig-14">Fig. 14</xref>), while the minimum curvature radius for Bi-CFAO is equal to 10 times of the minimum length of the element (refer to <xref ref-type="fig" rid="fig-10">Fig. 10b</xref>). The Bi-CFAO and XBi-CFAO results are more benign for manufacturing than CFAO.</p>
<p>As in practice, the composite structures are designed as multi-layered with predefined layer angles for the considerations of structure reliability and the convenience of manufacturing. The XBi-CFAO for multi-layered composites is beneficial to the angle optimization for multi-layered structures, because the XBi-CFAO method is capable of obtaining smooth and continuous fiber paths. The XBi-CFAO is stable, but the two-layered composites have larger objective functions than the single-layered composites optimized by the conventional CFAO and the three-layered plates optimized using the XBi-CFAO. This is because the objective functions are calculated without consideration of the manufacturing defects. The fiber paths generated by the Bi-CFAO and the XBi-CFAO for perpendicular multi-layered cases are smooth. This makes the Bi-CFAO and the XBi-CFAO method more promising for fiber angle optimization than the conventional CFAO.</p>
<p>The results also show that all the objective function numbers are about 32 for CFAO (the green lines), 44 for Bi-CFAO (the red lines), and they are 38 for XBi-CFAO (the green lines). The updated fiber paths and fiber angles are nearly the same. This implies that the optimization results depend on the initial design. The optimized compliance are close [<xref ref-type="bibr" rid="ref-19">19</xref>].</p>
<fig id="fig-16">
<label>Figure 16</label>
<caption>
<title>Convergence of the objective function using conventional CFAO, Bi-CFAO and XBi-CFAO target volume 0.8</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_17704-fig-16.png"/>
</fig>
</sec>
<sec id="s4_2">
<label>4.2</label>
<title>Overhanging Beam</title>
<p>This example is a 2 &#x00D7; 1 rectangular overhanging beam shown in <?A3B2 "fig17",5,"anchor"?><xref ref-type="fig" rid="fig-17">Fig. 17</xref>. The bottom left point is fixed. The midpoint of the bottom line is fixed along the perpendicular direction. An in-plane force <italic>f</italic> &#x003D; 1 is applied at the middle point of the right line. The IGA model is then constructed using B-spline, as the weights are all equal. The model is 64 &#x00D7; 32 elements and 66 &#x00D7; 34 control points.</p>
<fig id="fig-17">
<label>Figure 17</label>
<caption>
<title>Overhanging beam design domain</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_17704-fig-17.png"/>
</fig>
<p>The initial fiber angles are set as 0<italic>&#x00B0;</italic> for each element. The fiber angles in the first few iterations and the final iteration are shown in <?A3B2 "fig18",5,"anchor"?><xref ref-type="fig" rid="fig-18">Fig. 18</xref>. It is found that the fiber angles convergence quickly in the first few iterations. The fiber angle optimization procedure provides a segmented continuous fiber angle distribution. In <xref ref-type="fig" rid="fig-18">Fig. 18e</xref>, the fiber angles are not uniformly continuous, an obvious spatially discontinuous appears in the midline of the design domain and some local spatially discontinuity are also found in other areas in the design domain.</p>
<p>After the optimization procedure, the fiber paths are generated by the fiber angles using the Matlab function stream slice which is mentioned in the former section, and they are shown in <?A3B2 "fig19",5,"anchor"?><xref ref-type="fig" rid="fig-19">Fig. 19</xref>. The fiber paths in the two layers are shown together. The red lines represent the fiber paths generated from the fiber angles of the final iteration shown in <xref ref-type="fig" rid="fig-18">Fig. 18e</xref>. As predefined in the former section, the paths in the other layer are perpendicular to the base layer in XBi-CFAO. The angles in the upper layer (<italic>&#x03B8;</italic><sup>90</sup>) are calculated by adding 90<italic>&#x00B0;</italic> to the angles in the base layer (<italic>&#x03B8;</italic><sup>0</sup>). The blue lines represent the fiber paths generated from (<italic>&#x03B8;</italic><sup>90</sup>). Without any treatment, the fiber paths may contain discontinuous parts in the design domain, and the location of the discontinuous parts are corresponded to the angle discontinuous areas.</p>
<p>As shown in the <xref ref-type="fig" rid="fig-18">Fig. 18e</xref>, in the middle of the design domain, the fiber angles flip about 90<italic>&#x00B0;</italic> in the discontinuous areas. As a result, the fiber paths fold 90<italic>&#x00B0;</italic>, in the same areas (the red lines in the middle of the domain from top to bottom in <xref ref-type="fig" rid="fig-19">Fig. 19</xref>. The 90<italic>&#x00B0;</italic> flipping phenomenon is reported in some of the references [<xref ref-type="bibr" rid="ref-24">24</xref>,<xref ref-type="bibr" rid="ref-42">42</xref>].</p>
<fig id="fig-18">
	<label>Figure 18</label>
	<caption>
		<title>Fiber angles at the element centers in the base layer optimized by Bi-CFAO. (a) 1 iteration (b) 2 iterations (c) 3 iteration (d) 4 iteration (e) 20 iteration</title>
	</caption>
	<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_17704-fig-18.png"/>
	</fig>
	<fig id="fig-19">
		<label>Figure 19</label>
		<caption>
			<title>Fiber paths generated from the fiber angles of the final iteration, the red lines. Are corresponding to the base layer (<italic>&#x03B8;</italic><sup>0</sup>), the blue paths are corresponding to the next layer (<italic>&#x03B8;</italic><sup>90</sup>)</title>
		</caption>
		<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_17704-fig-19.png"/>
		</fig>
<p>The fiber angle selection process is performed to accomplish the fiber angle updating procedure. In this example, the middle line partition the design domain into two areas. The abrupt change of the fiber angles and the edge-to-edge line is so easy to find out. The local singular angles and the edge-to-edge line are shown in <?A3B2 "fig20",5,"anchor"?><xref ref-type="fig" rid="fig-20">Fig. 20</xref>. The fiber angles in the left are remained and the ones in the right flip 90 degrees. <?A3B2 "fig21",5,"anchor"?><xref ref-type="fig" rid="fig-21">Fig. 21</xref> shows the smoothed fiber angles. After this treatment, the fiber angles are uniformly continuous without any abrupt changing. It is noted that a filtering for the angles is not necessary to smooth the local singular angles located at the not edge-to-edge lines benefit by the nature filtering of the NURBS-based IGA.</p>
<fig id="fig-20">
<label>Figure 20</label>
<caption>
<title>The edge-to-edge line (red line) and the local singular angles in the control points (located in the rectangles)</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_17704-fig-20.png"/>
</fig>
<fig id="fig-21">
<label>Figure 21</label>
<caption>
<title>The updated fiber angles</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_17704-fig-21.png"/>
</fig>
<p>As shown in <?A3B2 "fig22",5,"anchor"?><xref ref-type="fig" rid="fig-22">Fig. 22</xref>, the updated fiber paths are smoother and without any sharp turn. Not like the CFAO method, the fiber paths generated by the Bi-CFAO method are not along with the principal stress trajectories, readers are referred to other examples in the former work [<xref ref-type="bibr" rid="ref-24">24</xref>]. It is interesting to find that, the fiber paths generated by the fiber angles of <italic>&#x03B8;</italic><sup><italic>0</italic></sup><italic>&#x00B1;</italic>45<italic>&#x00B0;</italic> of are along with the principal stress trajectories. These new fiber paths are more recognizable, similar to the conventional multi-layered laminates, the related layers <italic>&#x03B8;</italic><sup><italic>0</italic></sup><italic>&#x00B1;</italic>45<italic>&#x00B0;</italic> are at the direction of <italic>&#x00B1;</italic>45<italic>&#x00B0;</italic> to the base layer. The new layers are shown in <?A3B2 "fig23",5,"anchor"?><xref ref-type="fig" rid="fig-23">Fig. 23</xref>.</p>
<p>It is found that, there are two ways to get the new layers, the first one is to rotate the generated fiber angles in the base layer, the second way is set the values of the Young&#x2019;s moduli as <italic>E</italic><sub>1</sub> &#x003D; 0.1, <italic>E</italic><sub>2</sub> &#x003D; 1.0.</p>
<p>The elasticity modulus D<sub>11</sub>, which is the first entry in the matrix D in <xref ref-type="disp-formula" rid="eqn-13">Eq. (13)</xref> in the former section, are shown in <?A3B2 "fig24",5,"anchor"?><xref ref-type="fig" rid="fig-24">Fig. 24</xref>. The parameters D<sub>11</sub> corresponding to fiber angles for Bi-layer and single layer are represented using blue and red points, respectively. It is shown that, in the direction of <italic>&#x00B1;</italic>45<italic>&#x00B0;</italic>, the elasticity moduli are bigger than the other directions for the blue points. In contrast, the maximum value appears in the <italic>x</italic> direction for the red points. This indicated that, for Bi-CFAO the maximum stiffness direction is along the <italic>&#x00B1;</italic>45<italic>&#x00B0;</italic>. The optimization for minimizing compliance problems <inline-formula id="ieqn-6"><mml:math id="mml-ieqn-6"><mml:msup><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mrow><mml:mi mathvariant="bold-italic">T</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mi mathvariant="bold-italic">K</mml:mi><mml:mi mathvariant="bold-italic">U</mml:mi></mml:mrow></mml:math></inline-formula> which is similar with the minimum strain energy problems <inline-formula id="ieqn-7"><mml:math id="mml-ieqn-7"><mml:mfrac><mml:mn>1</mml:mn><mml:mn>2</mml:mn></mml:mfrac><mml:msup><mml:mi mathvariant="bold-italic">&#x03B5;</mml:mi><mml:mrow><mml:mi mathvariant="bold-italic">T</mml:mi></mml:mrow></mml:msup><mml:mi mathvariant="bold-italic">A</mml:mi><mml:mi mathvariant="bold-italic">&#x03B5;</mml:mi></mml:math></inline-formula>, where <inline-formula id="ieqn-8"><mml:math id="mml-ieqn-8"><mml:mi>&#x03B5;</mml:mi></mml:math></inline-formula> are the strains and <italic>A</italic> is the extensional stiffness matrix [<xref ref-type="bibr" rid="ref-56">56</xref>]. In these problems, the objective function to be minimized is sensitive to the parameters in the elastic matrix. The results indicate that, the most effective angle is the one that offers the biggest parameter for the stiffness matrix.</p>
<fig id="fig-22">
	<label>Figure 22</label>
	<caption>
		<title>The fiber paths generated from the updated fiber angles, the red lines are corresponding to the base layer <italic>&#x03B8;</italic><sup>0</sup>, the blue paths are corresponding to the next layer <italic>&#x03B8;</italic><sup>0</sup>&#x002B; 90</title>
	</caption>
	<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_17704-fig-22.png"/>
	</fig>
	<fig id="fig-23">
		<label>Figure 23</label>
		<caption>
			<title>The fiber paths generated from the angles before and after updating process, the red lines are corresponding to the layer <italic>&#x03B8;</italic><sup>0</sup> <italic>&#x002B;</italic> 45&#x00B0;, the blue paths corresponding to the layer <italic>&#x03B8;</italic><sup>0</sup> &#x2013; 45&#x00B0; (a) Fiber paths generated from <italic>&#x03B8;</italic><sup><italic>0</italic></sup><italic>&#x00B1;</italic>45<italic>&#x00B0;</italic> (b) Fiber paths generated from updated <italic>&#x03B8;</italic><sup>0</sup><italic>&#x00B1;</italic>45&#x00B0;</title>
		</caption>
		<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_17704-fig-23.png"/>
		</fig>
<p>The single-layer fiber angles and fiber paths are optimized and shown in <?A3B2 "fig25",5,"anchor"?><xref ref-type="fig" rid="fig-25">Figs. 25</xref> and <?A3B2 "fig26",5,"anchor"?><xref ref-type="fig" rid="fig-26">26</xref>. The fiber angles are optimized using CFAO, the fiber paths are generated with the fiber angles without any treatment. The directions of the fiber paths in most of the cases are along with the principal stress trajectories.</p>
<fig id="fig-24">
	<label>Figure 24</label>
	<caption>
		<title>The parameters of bi-layer and single layer elastic matrix corresponding to fiber angles, the red points represent single layer, the blue points represent bi-layer</title>
	</caption>
	<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_17704-fig-24.png"/>
	</fig>
<fig id="fig-25">
<label>Figure 25</label>
<caption>
<title>Fiber angles at the element centers in the final iteration of optimization using CFAO (a) Distribution of angles, (b) Fiber angles</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_17704-fig-25.png"/>
</fig>
<fig id="fig-26">
<label>Figure 26</label>
<caption>
<title>Fiber paths generated after the final iteration of optimization using CFAO</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_17704-fig-26.png"/>
</fig>
<p>For instance, a three-layered case is studied and the fiber angles and fiber paths are optimized using the extended Bi-CFAO. The fiber angles in the base layer are set as design variables, and the angles in the other two layers are set as flip 45<italic>&#x00B0;</italic> and &#x2013;45<italic>&#x00B0;</italic>, respectively. The optimized fiber angles in the base layer are shown in <?A3B2 "fig27",5,"anchor"?><xref ref-type="fig" rid="fig-27">Fig. 27</xref>. The base layer fiber angles show that the partitioned areas of fiber angles are found as well as the former ones. The abrupt angle changes are similar to the bi-layered cases. Some of the fiber angles flip 90 degrees in the boundaries of each sub-block area. The fiber paths generated from the fiber angles are shown in <?A3B2 "fig28",5,"anchor"?><xref ref-type="fig" rid="fig-28">Fig. 28</xref> without any treatment. The directions of the fiber paths in the base layer in most of the cases are along with the principal stress trajectories, as shown by the red lines in <xref ref-type="fig" rid="fig-28">Fig. 28</xref>.</p>
<fig id="fig-27">
<label>Figure 27</label>
<caption>
<title>The fiber angles at the control points by extend the Bi-CFAO to three-layered VSLs</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_17704-fig-27.png"/>
</fig>
<fig id="fig-28">
<label>Figure 28</label>
<caption>
<title>The generated fiber paths, the red lines are corresponding to the base layer <italic>&#x03B8;</italic><sup>0</sup>, the blue paths corresponding to the next layer <italic>&#x03B8;</italic><sup>0</sup>&#x002B; 45, the green paths corresponding to the next layer <italic>&#x03B8;</italic><sup>0</sup> &#x2013; 45</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_17704-fig-28.png"/>
</fig>
<p>The smoothed fiber paths are shown in <?A3B2 "fig29",5,"anchor"?><xref ref-type="fig" rid="fig-29">Fig. 29</xref>. The fiber paths in the base layer are updated to the same result in bi-layered cases, see the red lines in <xref ref-type="fig" rid="fig-23">Fig. 23b</xref>. The other two layers are smoother than the ones in <xref ref-type="fig" rid="fig-28">Fig. 28</xref>. It is noted that, the fiber paths in the right-bottom areas have been changed to perpendicular to the original lines. Which is associated with the selection process, which choose the perpendicular angles to replace the original angles to avoid discontinuity.</p>
<fig id="fig-29">
<label>Figure 29</label>
<caption>
<title>The updated fiber paths using the selection process, the red lines are corresponding to the base layer <italic>&#x03B8;</italic><sup>0</sup>, the blue paths corresponding to the next layer <italic>&#x03B8;</italic><sup>0</sup>&#x002B; 45, the green paths corresponding to the next layer <italic>&#x03B8;</italic><sup>0</sup> &#x2013; 45</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_17704-fig-29.png"/>
</fig>
</sec>
<sec id="s4_3">
<label>4.3</label>
<title>L Beam</title>
<p>This example is another benchmark problem utilized in NURBS-based IGA topology optimization. The design domain is shown in <?A3B2 "fig30",5,"anchor"?><xref ref-type="fig" rid="fig-30">Fig. 30</xref>. A 64 &#x00D7; 32 NURBS element IGA model is constructed with 66 &#x00D7; 34 NURBS control points. It is noted that, as the weights are equal, the NURBS degenerate into B-Spline.</p>
<fig id="fig-30">
<label>Figure 30</label>
<caption>
<title>L beam design domain</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_17704-fig-30.png"/>
</fig>
<p>In this example, we investigate the effects of the angles between layers in the multi-layered cases. As we know, the conventional laminates are constructed by multi-layered panels at different angles [<xref ref-type="bibr" rid="ref-23">23</xref>,<xref ref-type="bibr" rid="ref-57">57</xref>]. The fiber angles of three and four layers are studied. The initial angles in this example are set as 0<italic>&#x00B0;</italic>.</p>
<p>In the three-layered cases, the angles between the base layer and the next layer (<italic>&#x03B8;</italic><sup><italic>L</italic>1</sup> &#x2013; <italic>&#x03B8;</italic><sup><italic>L</italic>0</sup>) and angles between the base layer and the other layer (<italic>&#x03B8;</italic><sup><italic>L</italic>2</sup> &#x2013; <italic>&#x03B8;</italic><sup><italic>L</italic>0</sup>) are set as different. Six cases are calculated. The angles between <italic>&#x03B8;</italic><sup><italic>L1</italic></sup> and <italic>&#x03B8;</italic><sup><italic>L0</italic></sup> are 15<italic>&#x00B0;</italic>, 22.5<italic>&#x00B0;</italic>, 30<italic>&#x00B0;</italic>, 15<italic>&#x00B0;</italic>, 22.5<italic>&#x00B0;</italic>, 30<italic>&#x00B0;</italic>, respectively. The angles between <italic>&#x03B8;</italic><sup><italic>L</italic>2</sup> and <italic>&#x03B8;</italic><sup><italic>L</italic>0</sup> are &#x2013;15<italic>&#x00B0;</italic>, &#x2013;22.5<italic>&#x00B0;</italic>, &#x2013;30<italic>&#x00B0;</italic>, &#x2013;75<italic>&#x00B0;</italic>, &#x2013;67.5<italic>&#x00B0;</italic>, &#x2013;60<italic>&#x00B0;</italic>. The former 3 cases are mirroring cases and the latter 3 cases are perpendicular cases, respectively.</p>
<p>In the four-layered cases, another layer with the angle of 45<italic>&#x00B0;</italic> is added to the three-layered cases. The angles between layer (<italic>&#x03B8;</italic><sup><italic>L</italic>3</sup>) and layer (<italic>&#x03B8;</italic><sup><italic>L</italic>0</sup>) are 45<italic>&#x00B0;</italic> (<italic>&#x03B8;</italic><sup><italic>L</italic>3</sup> &#x2013; <italic>&#x03B8;</italic><sup><italic>L</italic>0</sup> &#x003D;45<italic>&#x00B0;</italic>).</p>
<p>Some of the fiber angle and fiber path results for 4 layers are shown in <?A3B2 "fig31",5,"anchor"?><xref ref-type="fig" rid="fig-31">Fig. 31</xref>. The perpendicular and mirror cases for 3 layers are shown in <?A3B2 "fig32",5,"anchor"?><xref ref-type="fig" rid="fig-32">Fig. 32</xref>. As shown in <xref ref-type="fig" rid="fig-32">Fig. 32a</xref>, the red lines are the paths generated by the angles in the base layer, and the blue and green lines are the paths generated by the other two layers. The angles between the red lines and the blue lines are 60&#x00B0;, the angles between the red lines and green lines are 30&#x00B0;. <xref ref-type="fig" rid="fig-32">Fig. 32b</xref> shows the paths generated in the other two layers. The proposed selection process is based on the assumptions that the angles of the two layers are perpendicular. For the multi-layer cases, if two of the layers are perpendicular, then the assumptions are tenable. In this case, the angles in the perpendicular layers can flip 90&#x00B0; to smooth some of the paths. The fiber paths in (b) are perpendicular. Hence, the fiber angles in (b) can be smoothed using the proposed selection process. The paths in mirror cases are shown in <xref ref-type="fig" rid="fig-32">Fig. 32c</xref> and <xref ref-type="fig" rid="fig-32">32d</xref>. The angles between the red lines and blue lines are 30&#x00B0;, the angles between the red lines and green lines are &#x2212;30&#x00B0;. The angles between blue and green lines are 60&#x00B0;. In this case, the assumptions are not tenable. As shown in (d), the fiber paths will remain unsmooth even if the angles in some of the areas flip 90&#x00B0; or 60&#x00B0;. The proposed angle updating process is not effective for the mirror cases. The selection process for 3-layered perpendicular cases is presented in <?A3B2 "fig33",5,"anchor"?><xref ref-type="fig" rid="fig-33">Fig. 33</xref>.</p>
<fig id="fig-31">
<label>Figure 31</label>
<caption>
<title>The fiber angles and paths in 4-layered mirror layers (a) The angle distribution, (b) Angles in the base layer, (c) The fiber paths</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_17704-fig-31.png"/>
</fig>
<fig id="fig-32">
<label>Figure 32</label>
<caption>
<title>The 3 layers paths of perpendicular and mirror cases, (a) Perpendicular paths of 3 layers, (b) Perpendicular paths of the other 2 layers, (c) Mirror paths of 3 layers, (d) Mirror paths of the other 2 layers</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_17704-fig-32.png"/>
</fig>
<p>The convergence of the objective functions using the extended Bi-CFAO for 3-layered and 4-layered layers are shown in <?A3B2 "fig34",5,"anchor"?><xref ref-type="fig" rid="fig-34">Fig. 34</xref>. The blue and red-colored lines are perpendicular and mirror layers, respectively. The solid and the dashed lines are 4-layered and 3-layered cases, respectively. The fiber paths angles between two layers are set as 15&#x00B0;, 22.5&#x00B0; and 30&#x00B0;, respectively. Twelve optimizations are performed to study the effects of three factors: the angles between layers, the total number of the layers, and the layout form of the layers (mirror and perpendicular). For conventional multi-layered laminates, the design and optimization for the angles between layers, the thickness of different layers, and the stacking sequence are important design variables. In this example, the similar factors are studied to demonstrate their different effects on the compliances. It is found that, the optimized compliances for all the cases are close to each other. The red lines have smaller compliances than the blue lines.</p>
<fig id="fig-33">
	<label>Figure 33</label>
	<caption>
		<title>The updated fiber paths using the selection process, the red lines are corresponding to the base layer <italic>&#x03B8;</italic><sup>0</sup>, the blue paths corresponding to the next layer <italic>&#x03B8;</italic><sup>0</sup> &#x002B; 45, the green paths corresponding to the next layer <italic>&#x03B8;</italic><sup>0</sup> &#x2013; 45 (a) Before updating 3-layered layers, (b) After selection process</title>
	</caption>
	<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_17704-fig-33.png"/>
	</fig>
<fig id="fig-34">
<label>Figure 34</label>
<caption>
<title>Convergence of the objective function using the XBi-CFAO for 3-layered and 4-layered layers</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CMES_17704-fig-34.png"/>
</fig>
<p>The differences of the objective functions caused by the other two factors are smaller than the layout form factor. Detailed values of the objective functions are listed in <?A3B2 "tbl2",5,"anchor"?><xref ref-type="table" rid="table-2">Tab. 2</xref>. It is shown that the average values for mirror layers and perpendicular layers are 40.45 and 44.94, respectively. The mirror layers have smaller objective function results than the perpendicular ones. The root mean squared errors (RMSE) of the three factors to the objective functions are calculated to represent the effects. The RMSEs of the angles between layers, the total number of the layers, and the layout form of the layers are 0.479, 0.842 and 2.24, respectively. It is noted that, more accurate models should be tested in the future, due to the simplicity of the model in this paper and the absence of the consideration of the manufacturing constraints during the optimization process.</p>
<table-wrap id="table-2">
<label>Table 2</label>
<caption>
<title>Objective functions with different layer angles, layer numbers, and different layout form of the layers (mirror and perpendicular)</title>
</caption>

<table>
<colgroup>
<col/>
<col/>
<col/>
<col/>
</colgroup>
<thead>
<tr>
<th>Layer number</th>
<th>Angle</th>
<th>Mirroring</th>
<th>Perpendicular</th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="3">3</td>
<td>15&#x00B0;</td>
<td>39.143</td>
<td>45.115</td>
</tr>
<tr>
<td>22.5&#x00B0;</td>
<td>39.676</td>
<td>44.284</td>
</tr>
<tr>
<td>30&#x00B0;</td>
<td>39.058</td>
<td>43.846</td>
</tr>
<tr>
<td rowspan="3">4</td>
<td>15&#x00B0;</td>
<td>41.117</td>
<td>44.640</td>
</tr>
<tr>
<td>22.5&#x00B0;</td>
<td>41.568</td>
<td>46.321</td>
</tr>
<tr>
<td>30&#x00B0;</td>
<td>42.161</td>
<td>45.416</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
</sec>
<sec id="s5">
<label>5</label>
<title>Conclusions</title>
<p>In this paper, an effective multi-layer fiber angle optimization method XBi-CFAO is proposed to optimize the fiber angles and fiber paths for VSLs. In the XBi-CFAO method, the lines made of neighboring abrupt changing angles are classified into edge-to-edge lines and non-edge-to-edge lines. The design domain is divided into subdomains by the edge-to-edge lines and the fiber angles in the divided subdomains are updated to generate smooth paths.</p>
<p>Benchmark examples are presented to illustrate the proposed method. Continuous fiber paths without local small curvatures are obtained retaining the optimal result information of the fiber angles to the maximum extent.</p>
<p>In this paper, the static in-plain problems are studied using the XBi-CFAO method. The out-plain and dynamic problems should be studied in the future. The selection process is based on the assumption that the angles of the two layers are perpendicular. This assumption may limit the usage of XBi-CFAO for multi-layered panels. Complex problems without the perpendicular assumption will be studied in the future as well.</p>
</sec>
</body>
<back>
<fn-group>
<fn fn-type="other">
<p><bold>Funding Statement:</bold> This research work is supported by the National Key R&#x0026;D Project of China (Grant Nos. 2018YFB1700803 and 2018YFB1700804), managed by Qifu Wang. These supports are gratefully acknowledged.</p>
</fn>
<fn fn-type="conflict">
<p><bold>Conflicts of Interest:</bold> The authors declare that they have no conflicts of interest to report regarding the present study.</p>
</fn>
</fn-group>
<ref-list content-type="authoryear">
<title>References</title>
<ref id="ref-1"><label>1.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>G&#x00FC;rdal</surname>, <given-names>Z.</given-names></string-name>, <string-name><surname>Olmedo</surname>, <given-names>R.</given-names></string-name></person-group> (<year>1993</year>). <article-title>In-plane response of laminates with spatially varying fiber orientations-variable stiffness concept</article-title>. <source>AIAA Journal</source><italic>,</italic> <volume>31</volume><italic>(</italic><issue>4</issue><italic>),</italic> <fpage>751</fpage>&#x2013;<lpage>758</lpage>. DOI <pub-id pub-id-type="doi">10.2514/3.11613</pub-id>.</mixed-citation></ref>
<ref id="ref-2"><label>2.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>G&#x00FC;rdal</surname>, <given-names>Z.</given-names></string-name>, <string-name><surname>Tatting</surname>, <given-names>B. F.</given-names></string-name>, <string-name><surname>Wu</surname>, <given-names>C. K.</given-names></string-name></person-group> (<year>2008</year>). <article-title>Variable stiffness composite panels: Effects of stiffness variation on the in-plane and buckling response</article-title>. <source>Composites Part A: Applied Science and Manufacturing</source><italic>,</italic> <volume>39</volume><italic>(</italic><issue>5</issue><italic>),</italic> <fpage>911</fpage>&#x2013;<lpage>922</lpage>. DOI <pub-id pub-id-type="doi">10.1016/j.compositesa.2007.11.015</pub-id>.</mixed-citation></ref>
<ref id="ref-3"><label>3.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Hao</surname>, <given-names>P.</given-names></string-name>, <string-name><surname>Yuan</surname>, <given-names>X.</given-names></string-name>, <string-name><surname>Liu</surname>, <given-names>H.</given-names></string-name>, <string-name><surname>Wang</surname>, <given-names>B.</given-names></string-name>, <string-name><surname>Liu</surname>, <given-names>C.</given-names></string-name> <etal>et al.</etal></person-group> (<year>2017</year>). <article-title>Isogeometric buckling analysis of composite variable-stiffness panels</article-title>. <source>Composite Structures</source><italic>,</italic> <volume>165</volume><italic>(</italic><issue>3</issue><italic>),</italic> <fpage>192</fpage>&#x2013;<lpage>208</lpage>. DOI <pub-id pub-id-type="doi">10.1016/j.compstruct.2017.01.016</pub-id>.</mixed-citation></ref>
<ref id="ref-4"><label>4.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Tian</surname>, <given-names>Y.</given-names></string-name>, <string-name><surname>Pu</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Zong</surname>, <given-names>Z.</given-names></string-name>, <string-name><surname>Shi</surname>, <given-names>T.</given-names></string-name>, <string-name><surname>Xia</surname>, <given-names>Q.</given-names></string-name></person-group> (<year>2019</year>). <article-title>Optimization of variable stiffness laminates with gap-overlap and curvature constraints</article-title>. <source>Composite Structures</source><italic>,</italic> <volume>230</volume><italic>(</italic><issue>6</issue><italic>),</italic> <fpage>111494</fpage>. DOI <pub-id pub-id-type="doi">10.1016/j.compstruct.2019.111494</pub-id>.</mixed-citation></ref>
<ref id="ref-5"><label>5.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Lan</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Carti&#x00E9;</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Davies</surname>, <given-names>P.</given-names></string-name>, <string-name><surname>Baley</surname>, <given-names>C.</given-names></string-name></person-group> (<year>2015</year>). <article-title>Microstructure and tensile properties of carbon-epoxy laminates produced by automated fibre placement: Influence of a caul plate on the effects of gap and overlap embedded defects</article-title>. <source>Composites Part A: Applied Science and Manufacturing</source><italic>,</italic> <volume>78</volume><italic>,</italic> <fpage>124</fpage>&#x2013;<lpage>134</lpage>. DOI <pub-id pub-id-type="doi">10.1016/j.compositesa.2015.07.023</pub-id>.</mixed-citation></ref>
<ref id="ref-6"><label>6.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Lan</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Carti&#x00E9;</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Davies</surname>, <given-names>P.</given-names></string-name>, <string-name><surname>Baley</surname>, <given-names>C.</given-names></string-name></person-group> (<year>2016</year>). <article-title>Influence of embedded gap and overlap fiber placement defects on the microstructure and shear and compression properties of carbon-epoxy laminates</article-title>. <source>Composites Part A: Applied Science and Manufacturing</source><italic>,</italic> <volume>82</volume><italic>,</italic> <fpage>198</fpage>&#x2013;<lpage>207</lpage>. DOI <pub-id pub-id-type="doi">10.1016/j.compositesa.2015.12.007</pub-id>.</mixed-citation></ref>
<ref id="ref-7"><label>7.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Esposito</surname>, <given-names>L.</given-names></string-name>, <string-name><surname>Cutolo</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Barile</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Lecce</surname>, <given-names>L.</given-names></string-name>, <string-name><surname>Mensitieri</surname>, <given-names>G.</given-names></string-name> <etal>et al.</etal></person-group> (<year>2019</year>). <article-title>Topology optimization-guided stiffening of composites realized through automated fiber placement</article-title>. <source>Composites Part B: Engineering</source><italic>,</italic> <volume>164</volume><italic>(</italic><issue>4</issue><italic>),</italic> <fpage>309</fpage>&#x2013;<lpage>323</lpage>. DOI <pub-id pub-id-type="doi">10.1016/j.compositesb.2018.11.032</pub-id>.</mixed-citation></ref>
<ref id="ref-8"><label>8.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Hao</surname>, <given-names>P.</given-names></string-name>, <string-name><surname>Yuan</surname>, <given-names>X.</given-names></string-name>, <string-name><surname>Liu</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>Wang</surname>, <given-names>B.</given-names></string-name>, <string-name><surname>Liu</surname>, <given-names>H.</given-names></string-name> <etal>et al.</etal></person-group> (<year>2018</year>). <article-title>An integrated framework of exact modeling, isogeometric analysis and optimization for variable-stiffness composite panels</article-title>. <source>Computer Methods in Applied Mechanics and Engineering</source><italic>,</italic> <volume>339</volume><italic>(</italic><issue>4</issue><italic>),</italic> <fpage>205</fpage>&#x2013;<lpage>238</lpage>. DOI <pub-id pub-id-type="doi">10.1016/j.cma.2018.04.046</pub-id>.</mixed-citation></ref>
<ref id="ref-9"><label>9.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Setoodeh</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>G&#x00FC;rdal</surname>, <given-names>Z.</given-names></string-name>, <string-name><surname>Watson</surname>, <given-names>L. T.</given-names></string-name></person-group> (<year>2006</year>). <article-title>Design of variable-stiffness composite layers using cellular automata</article-title>. <source>Computer Methods in Applied Mechanics and Engineering</source><italic>,</italic> <volume>195</volume><italic>(</italic><issue>9</issue><italic>),</italic> <fpage>836</fpage>&#x2013;<lpage>851</lpage>. DOI <pub-id pub-id-type="doi">10.1016/j.cma.2005.03.005</pub-id>.</mixed-citation></ref>
<ref id="ref-10"><label>10.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>van Campen</surname>, <given-names>J. M. J. F.</given-names>, </string-name> <string-name><surname>Kassapoglou</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>G&#x00FC;rdal</surname>, <given-names>Z.</given-names></string-name></person-group> (<year>2012</year>). <article-title>Generating realistic laminate fiber angle distributions for optimal variable stiffness laminates</article-title>. <source>Composites Part B: Engineering</source><italic>,</italic> <volume>43</volume><italic>(</italic><issue>2</issue><italic>),</italic> <fpage>354</fpage>&#x2013;<lpage>360</lpage>. DOI <pub-id pub-id-type="doi">10.1016/j.compositesb.2011.10.014</pub-id>.</mixed-citation></ref>
<ref id="ref-11"><label>11.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Xu</surname>, <given-names>Y.</given-names></string-name>, <string-name><surname>Zhu</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Wu</surname>, <given-names>Z.</given-names></string-name>, <string-name><surname>Cao</surname>, <given-names>Y.</given-names></string-name>, <string-name><surname>Zhao</surname>, <given-names>Y.</given-names></string-name> <etal>et al.</etal></person-group> (<year>2018</year>). <article-title>A review on the design of laminated composite structures: Constant and variable stiffness design and topology optimization</article-title>. <source>Advanced Composites and Hybrid Materials</source><italic>,</italic> <volume>1</volume><italic>(</italic><issue>3</issue><italic>),</italic> <fpage>460</fpage>&#x2013;<lpage>477</lpage>. DOI <pub-id pub-id-type="doi">10.1007/s42114-018-0032-7</pub-id>.</mixed-citation></ref>
<ref id="ref-12"><label>12.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Stegmann</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Lund</surname>, <given-names>E.</given-names></string-name></person-group> (<year>2005</year>). <article-title>Discrete material optimization of general composite shell structures</article-title>. <source>International Journal for Numerical Methods in Engineering</source><italic>,</italic> <volume>62</volume><italic>(</italic><issue>14</issue><italic>),</italic> <fpage>2009</fpage>&#x2013;<lpage>2027</lpage>. DOI <pub-id pub-id-type="doi">10.1002/nme.1259</pub-id>.</mixed-citation></ref>
<ref id="ref-13"><label>13.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Kiyono</surname>, <given-names>C. Y.</given-names></string-name>, <string-name><surname>Silva</surname>, <given-names>E. C. N.</given-names></string-name>, <string-name><surname>Reddy</surname>, <given-names>J. N.</given-names></string-name></person-group> (<year>2012</year>). <article-title>Design of laminated piezocomposite shell transducers with arbitrary fiber orientation using topology optimization approach</article-title>. <source>International Journal for Numerical Methods in Engineering</source><italic>,</italic> <volume>90</volume><italic>(</italic><issue>12</issue><italic>),</italic> <fpage>1452</fpage>&#x2013;<lpage>1484</lpage>. DOI <pub-id pub-id-type="doi">10.1002/nme.3371</pub-id>.</mixed-citation></ref>
<ref id="ref-14"><label>14.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Kennedy</surname>, <given-names>G. J.</given-names></string-name>, <string-name><surname>Martins</surname>, <given-names>J. R. R. A.</given-names></string-name></person-group> (<year>2013</year>). <article-title>A laminate parametrization technique for discrete ply-angle problems with manufacturing constraints</article-title>. <source>Structural and Multidisciplinary Optimization</source><italic>,</italic> <volume>48</volume><italic>(</italic><issue>2</issue><italic>),</italic> <fpage>379</fpage>&#x2013;<lpage>393</lpage>. DOI <pub-id pub-id-type="doi">10.1007/s00158-013-0906-9</pub-id>.</mixed-citation></ref>
<ref id="ref-15"><label>15.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Gao</surname>, <given-names>T.</given-names></string-name>, <string-name><surname>Zhang</surname>, <given-names>W.</given-names></string-name>, <string-name><surname>Duysinx</surname>, <given-names>P.</given-names></string-name></person-group> (<year>2012</year>). <article-title>A bi-value coding parameterization scheme for the discrete optimal orientation design of the composite laminate</article-title>. <source>International Journal for Numerical Methods in Engineering</source><italic>,</italic> <volume>91</volume><italic>(</italic><issue>1</issue><italic>),</italic> <fpage>98</fpage>&#x2013;<lpage>114</lpage>. DOI <pub-id pub-id-type="doi">10.1002/nme.4270</pub-id>.</mixed-citation></ref>
<ref id="ref-16"><label>16.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Gao</surname>, <given-names>T.</given-names></string-name>, <string-name><surname>Zhang</surname>, <given-names>W.</given-names></string-name>, <string-name><surname>Duysinx</surname>, <given-names>P.</given-names></string-name></person-group> (<year>2013</year>). <article-title>Simultaneous design of structural layout and discrete fiber orientation using bi-value coding parameterization and volume constraint</article-title>. <source>Structural and Multidisciplinary Optimization</source><italic>,</italic> <volume>48</volume><italic>(</italic><issue>6</issue><italic>),</italic> <fpage>1075</fpage>&#x2013;<lpage>1088</lpage>. DOI <pub-id pub-id-type="doi">10.1007/s00158-013-0948-z</pub-id>.</mixed-citation></ref>
<ref id="ref-17"><label>17.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Jantos</surname>, <given-names>D. R.</given-names></string-name>, <string-name><surname>Hackl</surname>, <given-names>K.</given-names></string-name>, <string-name><surname>Junker</surname>, <given-names>P.</given-names></string-name></person-group> (<year>2020</year>). <article-title>Topology optimization with anisotropic materials, including a filter to smooth fiber pathways</article-title>. <source>Structural and Multidiplinary Optimization</source><italic>,</italic> <volume>61</volume><italic>(</italic><issue>11</issue><italic>),</italic> <fpage>2135</fpage>&#x2013;<lpage>2154</lpage>. DOI <pub-id pub-id-type="doi">10.1007/s00158-019-02461-x</pub-id>.</mixed-citation></ref>
<ref id="ref-18"><label>18.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Jiang</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Hoglund</surname>, <given-names>R.</given-names></string-name>, <string-name><surname>Smith</surname>, <given-names>D. E.</given-names></string-name></person-group> (<year>2019</year>). <article-title>Continuous fiber angle topology optimization for polymer composite deposition additive manufacturing applications</article-title>. <source>Fibers</source><italic>,</italic> <volume>7</volume><italic>(</italic><issue>14</issue><italic>),</italic> <fpage>1</fpage>&#x2013;<lpage>21</lpage>. DOI <pub-id pub-id-type="doi">10.3390/fib7020014</pub-id>.</mixed-citation></ref>
<ref id="ref-19"><label>19.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Xia</surname>, <given-names>Q.</given-names></string-name>, <string-name><surname>Shi</surname>, <given-names>T.</given-names></string-name></person-group> (<year>2017</year>). <article-title>Optimization of composite structures with continuous spatial variation of fiber angle through Shepard interpolation</article-title>. <source>Composite Structures</source><italic>,</italic> <volume>182</volume><italic>,</italic> <fpage>273</fpage>&#x2013;<lpage>282</lpage>. DOI <pub-id pub-id-type="doi">10.1016/j.compstruct.2017.09.052</pub-id>.</mixed-citation></ref>
<ref id="ref-20"><label>20.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Nomura</surname>, <given-names>T.</given-names></string-name>, <string-name><surname>Dede</surname>, <given-names>E. M.</given-names></string-name>, <string-name><surname>Lee</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Yamasaki</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Matsumori</surname>, <given-names>T.</given-names></string-name> <etal>et al.</etal></person-group> (<year>2015</year>). <article-title>General topology optimization method with continuous and discrete orientation design using isoparametric projection</article-title>. <source>International Journal for Numerical Methods in Engineering</source><italic>,</italic> <volume>101</volume><italic>(</italic><issue>8</issue><italic>),</italic> <fpage>571</fpage>&#x2013;<lpage>605</lpage>. DOI <pub-id pub-id-type="doi">10.1002/nme.4799</pub-id>.</mixed-citation></ref>
<ref id="ref-21"><label>21.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Wang</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Abdalla</surname>, <given-names>M. M.</given-names></string-name>, <string-name><surname>Wang</surname>, <given-names>Z. P.</given-names></string-name>, <string-name><surname>Su</surname>, <given-names>Z.</given-names></string-name></person-group> (<year>2019</year>). <article-title>Streamline stiffener path optimization (SSPO) for embedded stiffener layout design of non-uniform curved grid-stiffened composite (NCGC) structures</article-title>. <source>Computer Methods in Applied Mechanics and Engineering</source><italic>,</italic> <volume>344</volume><italic>(</italic><issue>3</issue><italic>),</italic> <fpage>1021</fpage>&#x2013;<lpage>1050</lpage>. DOI <pub-id pub-id-type="doi">10.1016/j.cma.2018.09.013</pub-id>.</mixed-citation></ref>
<ref id="ref-22"><label>22.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Hughes</surname>, <given-names>T. J. R.</given-names></string-name>, <string-name><surname>Cottrell</surname>, <given-names>J. A.</given-names></string-name>, <string-name><surname>Bazilevs</surname>, <given-names>Y.</given-names></string-name></person-group> (<year>2005</year>). <article-title>Isogeometric analysis: CAD, finite elements, NURBS, exact geometry and mesh refinement</article-title>. <source>Computer Methods in Applied Mechanics and Engineering</source><italic>,</italic> <volume>194</volume><italic>(</italic><issue>39</issue><italic>),</italic> <fpage>4135</fpage>&#x2013;<lpage>4195</lpage>. DOI <pub-id pub-id-type="doi">10.1016/j.cma.2004.10.008</pub-id>.</mixed-citation></ref>
<ref id="ref-23"><label>23.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Hao</surname>, <given-names>P.</given-names></string-name>, <string-name><surname>Feng</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Zhang</surname>, <given-names>K.</given-names></string-name>, <string-name><surname>Li</surname>, <given-names>Z.</given-names></string-name>, <string-name><surname>Wang</surname>, <given-names>B.</given-names></string-name> <etal>et al.</etal></person-group> (<year>2018</year>). <article-title>Adaptive gradient-enhanced kriging model for variable-stiffness composite panels using isogeometric analysis</article-title>. <source>Structural and Multidisciplinary Optimization</source><italic>,</italic> <volume>58</volume><italic>(</italic><issue>1</issue><italic>),</italic> <fpage>1</fpage>&#x2013;<lpage>16</lpage>. DOI <pub-id pub-id-type="doi">10.1007/s00158-018-1988-1</pub-id>.</mixed-citation></ref>
<ref id="ref-24"><label>24.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Mei</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>Wang</surname>, <given-names>Q.</given-names></string-name>, <string-name><surname>Yu</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>Xia</surname>, <given-names>Z.</given-names></string-name></person-group> (<year>2020</year>). <article-title>IGA based bi-layer fiber angle optimization method for variable stiffness composites</article-title>. <source>Computer Modeling in Engineering &#x0026; Sciences</source><italic>,</italic> <volume>124</volume><italic>(</italic><issue>1</issue><italic>),</italic> <fpage>179</fpage>&#x2013;<lpage>202</lpage>. DOI <pub-id pub-id-type="doi">10.32604/cmes.2020.09948</pub-id>.</mixed-citation></ref>
<ref id="ref-25"><label>25.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Hassani</surname>, <given-names>B.</given-names></string-name>, <string-name><surname>Khanzadi</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Tavakkoli</surname>, <given-names>S. M.</given-names></string-name></person-group> (<year>2012</year>). <article-title>An isogeometrical approach to structural topology optimization by optimality criteria</article-title>. <source>Structural and Multidisciplinary Optimization</source><italic>,</italic> <volume>45</volume><italic>(</italic><issue>2</issue><italic>),</italic> <fpage>223</fpage>&#x2013;<lpage>233</lpage>. DOI <pub-id pub-id-type="doi">10.1007/s00158-011-0680-5</pub-id>.</mixed-citation></ref>
<ref id="ref-26"><label>26.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Wang</surname>, <given-names>Y.</given-names></string-name>, <string-name><surname>Benson</surname>, <given-names>D. J.</given-names></string-name></person-group> (<year>2016</year>). <article-title>Geometrically constrained isogeometric parameterized level-set based topology optimization via trimmed elements</article-title>. <source>Frontiers of Mechanical Engineering</source><italic>,</italic> <volume>11</volume><italic>(</italic><issue>4</issue><italic>),</italic> <fpage>328</fpage>&#x2013;<lpage>343</lpage>. DOI <pub-id pub-id-type="doi">10.1007/s11465-016-0403-0</pub-id>.</mixed-citation></ref>
<ref id="ref-27"><label>27.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Wang</surname>, <given-names>Y.</given-names></string-name>, <string-name><surname>Benson</surname>, <given-names>D. J.</given-names></string-name>, <string-name><surname>Nagy</surname>, <given-names>A. P.</given-names></string-name></person-group> (<year>2015</year>). <article-title>A multi-patch nonsingular isogeometric boundary element method using trimmed elements</article-title>. <source>Computational Mechanics</source><italic>,</italic> <volume>56</volume><italic>(</italic><issue>1</issue><italic>),</italic> <fpage>173</fpage>&#x2013;<lpage>191</lpage>. DOI <pub-id pub-id-type="doi">10.1007/s00466-015-1165-y</pub-id>.</mixed-citation></ref>
<ref id="ref-28"><label>28.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Wang</surname>, <given-names>Y.</given-names></string-name>, <string-name><surname>Wang</surname>, <given-names>Z.</given-names></string-name>, <string-name><surname>Xia</surname>, <given-names>Z.</given-names></string-name>, <string-name><surname>Poh</surname>, <given-names>L. H.</given-names></string-name></person-group> (<year>2018</year>). <article-title>Structural design optimization using isogeometric analysis: A comprehensive review</article-title>. <source>Computer Modeling in Engineering and Sciences</source><italic>,</italic> <volume>117</volume><italic>(</italic><issue>3</issue><italic>),</italic> <fpage>455</fpage>&#x2013;<lpage>507</lpage>. DOI <pub-id pub-id-type="doi">10.31614/cmes.2018.04603</pub-id>.</mixed-citation></ref>
<ref id="ref-29"><label>29.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Wang</surname>, <given-names>Y.</given-names></string-name>, <string-name><surname>Benson</surname>, <given-names>D. J.</given-names></string-name></person-group> (<year>2016</year>). <article-title>Isogeometric analysis for parameterized LSM-based structural topology optimization</article-title>. <source>Computational Mechanics</source><italic>,</italic> <volume>57</volume><italic>(</italic><issue>1</issue><italic>),</italic> <fpage>19</fpage>&#x2013;<lpage>35</lpage>. DOI <pub-id pub-id-type="doi">10.1007/s00466-015-1219-1</pub-id>.</mixed-citation></ref>
<ref id="ref-30"><label>30.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Hao</surname>, <given-names>P.</given-names></string-name>, <string-name><surname>Liu</surname>, <given-names>X.</given-names></string-name>, <string-name><surname>Wang</surname>, <given-names>Y.</given-names></string-name>, <string-name><surname>Liu</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Wang</surname>, <given-names>B.</given-names></string-name> <etal>et al.</etal></person-group> (<year>2019</year>). <article-title>Collaborative design of fiber path and shape for complex composite shells based on isogeometric analysis</article-title>. <source>Computer Methods in Applied Mechanics and Engineering</source><italic>,</italic> <volume>354</volume><italic>(</italic><issue>11</issue><italic>),</italic> <fpage>181</fpage>&#x2013;<lpage>212</lpage>. DOI <pub-id pub-id-type="doi">10.1016/j.cma.2019.05.044</pub-id>.</mixed-citation></ref>
<ref id="ref-31"><label>31.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Ghiasi</surname>, <given-names>H.</given-names></string-name>, <string-name><surname>Fayazbakhsh</surname>, <given-names>K.</given-names></string-name>, <string-name><surname>Pasini</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Lessard</surname>, <given-names>L.</given-names></string-name></person-group> (<year>2010</year>). <article-title>Optimum stacking sequence design of composite materials Part II: Variable stiffness design</article-title>. <source>Composite Structures</source><italic>,</italic> <volume>93</volume><italic>(</italic><issue>1</issue><italic>),</italic> <fpage>1</fpage>&#x2013;<lpage>13</lpage>. DOI <pub-id pub-id-type="doi">10.1016/j.compstruct.2010.06.001</pub-id>.</mixed-citation></ref>
<ref id="ref-32"><label>32.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Peeters</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Baalen</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Abdallah</surname>, <given-names>M.</given-names></string-name></person-group> (<year>2015</year>). <article-title>Combining topology and lamination parameter optimisation</article-title>. <source>Structural and Multidisciplinary Optimization</source><italic>,</italic> <volume>52</volume><italic>(</italic><issue>1</issue><italic>),</italic> <fpage>105</fpage>&#x2013;<lpage>120</lpage>. DOI <pub-id pub-id-type="doi">10.1007/s00158-014-1223-7</pub-id>.</mixed-citation></ref>
<ref id="ref-33"><label>33.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Petrovic</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Nomura</surname>, <given-names>T.</given-names></string-name>, <string-name><surname>Yamada</surname>, <given-names>T.</given-names></string-name>, <string-name><surname>Izui</surname>, <given-names>K.</given-names></string-name>, <string-name><surname>Nishiwaki</surname>, <given-names>S.</given-names></string-name></person-group> (<year>2018</year>). <article-title>Orthotropic material orientation optimization method in composite laminates</article-title>. <source>Structural and Multidisciplinary Optimization</source><italic>,</italic> <volume>57</volume><italic>(</italic><issue>2</issue><italic>),</italic> <fpage>815</fpage>&#x2013;<lpage>828</lpage>. DOI <pub-id pub-id-type="doi">10.1007/s00158-017-1777-2</pub-id>.</mixed-citation></ref>
<ref id="ref-34"><label>34.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Hong</surname>, <given-names>Z.</given-names></string-name>, <string-name><surname>Peeters</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Turteltaub</surname>, <given-names>S.</given-names></string-name></person-group> (<year>2020</year>). <article-title>An enhanced curvature-constrained design method for manufacturable variable stiffness composite laminates</article-title>. <source>Computers &#x0026; Structures</source><italic>,</italic> <volume>238</volume><italic>(</italic><issue>4</issue><italic>),</italic> <fpage>106284</fpage>. DOI <pub-id pub-id-type="doi">10.1016/j.compstruc.2020.106284</pub-id>.</mixed-citation></ref>
<ref id="ref-35"><label>35.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Muramatsu</surname>, <given-names>Y.</given-names></string-name>, <string-name><surname>Shimoda</surname>, <given-names>M.</given-names></string-name></person-group> (<year>2019</year>). <article-title>Distributed-parametric optimization approach for free-orientation of laminated shell structures with anisotropic materials</article-title>. <source>Structural and Multidisciplinary Optimization</source><italic>,</italic> <volume>59</volume><italic>(</italic><issue>6</issue><italic>),</italic> <fpage>1915</fpage>&#x2013;<lpage>1934</lpage>. DOI <pub-id pub-id-type="doi">10.1007/s00158-018-2163-4</pub-id>.</mixed-citation></ref>
<ref id="ref-36"><label>36.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Allaire</surname>, <given-names>G.</given-names></string-name>, <string-name><surname>Geoffroy-Donders</surname>, <given-names>P.</given-names></string-name>, <string-name><surname>Pantz</surname>, <given-names>O.</given-names></string-name></person-group> (<year>2019</year>). <article-title>Topology optimization of modulated and oriented periodic microstructures by the homogenization method</article-title>. <source>Computers &#x0026; Mathematics with Applications</source><italic>,</italic> <volume>78</volume><italic>(</italic><issue>7</issue><italic>),</italic> <fpage>2197</fpage>&#x2013;<lpage>2229</lpage>. DOI <pub-id pub-id-type="doi">10.1016/j.camwa.2018.08.007</pub-id>.</mixed-citation></ref>
<ref id="ref-37"><label>37.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Geoffroy-Donders</surname>, <given-names>P.</given-names></string-name>, <string-name><surname>Allaire</surname>, <given-names>G.</given-names></string-name>, <string-name><surname>Pantz</surname>, <given-names>O.</given-names></string-name></person-group> (<year>2020</year>). <article-title>3-D topology optimization of modulated and oriented periodic microstructures by the homogenization method</article-title>. <source>Journal of Computational Physics</source><italic>,</italic> <volume>401</volume><italic>(</italic><issue>3</issue><italic>),</italic> <fpage>108994</fpage>. DOI <pub-id pub-id-type="doi">10.1016/j.jcp.2019.108994</pub-id>.</mixed-citation></ref>
<ref id="ref-38"><label>38.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Groen</surname>, <given-names>J. P.</given-names></string-name>, <string-name><surname>Stutz</surname>, <given-names>F. C.</given-names></string-name>, <string-name><surname>Aage</surname>, <given-names>N.</given-names></string-name>, <string-name><surname>B&#x00E6;rentzen</surname>, <given-names>J. A.</given-names></string-name>, <string-name><surname>Sigmund</surname>, <given-names>O.</given-names></string-name></person-group> (<year>2020</year>). <article-title>De-homogenization of optimal multi-scale 3D topologies</article-title>. <source>Computer Methods in Applied Mechanics and Engineering</source><italic>,</italic> <volume>364</volume><italic>(</italic><issue>6</issue><italic>),</italic> <fpage>112979</fpage>. DOI <pub-id pub-id-type="doi">10.1016/j.cma.2020.112979</pub-id>.</mixed-citation></ref>
<ref id="ref-39"><label>39.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Kiyono</surname>, <given-names>C. Y.</given-names></string-name>, <string-name><surname>Silva</surname>, <given-names>E. C. N.</given-names></string-name>, <string-name><surname>Reddy</surname>, <given-names>J. N.</given-names></string-name></person-group> (<year>2017</year>). <article-title>A novel fiber optimization method based on normal distribution function with continuously varying fiber path</article-title>. <source>Composite Structures</source><italic>,</italic> <volume>160</volume><italic>(</italic><issue>1&#x2013;2</issue><italic>),</italic> <fpage>503</fpage>&#x2013;<lpage>515</lpage>. DOI <pub-id pub-id-type="doi">10.1016/j.compstruct.2016.10.064</pub-id>.</mixed-citation></ref>
<ref id="ref-40"><label>40.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Schmidt</surname>, <given-names>M. P.</given-names></string-name>, <string-name><surname>Couret</surname>, <given-names>L.</given-names></string-name>, <string-name><surname>Gout</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>Pedersen</surname>, <given-names>C. B. W.</given-names></string-name></person-group> (<year>2020</year>). <article-title>Structural topology optimization with smoothly varying fiber orientations</article-title>. <source>Structural and Multidisciplinary Optimization</source><italic>,</italic> <volume>62</volume><italic>(</italic><issue>6</issue><italic>),</italic> <fpage>3105</fpage>&#x2013;<lpage>3126</lpage>. DOI <pub-id pub-id-type="doi">10.1007/s00158-020-02657-6</pub-id>.</mixed-citation></ref>
<ref id="ref-41"><label>41.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Ferreira da Silva</surname>, <given-names>A. L.</given-names></string-name>, <string-name><surname>Salas</surname>, <given-names>R. A.</given-names></string-name>, <string-name><surname>Nelli Silva</surname>, <given-names>E. C.</given-names></string-name>, <string-name><surname>Reddy</surname>, <given-names>J. N.</given-names></string-name></person-group> (<year>2020</year>). <article-title>Topology optimization of fibers orientation in hyperelastic composite material</article-title>. <source>Composite Structures</source><italic>,</italic> <volume>231</volume><italic>(</italic><issue>1&#x2013;4</issue><italic>),</italic> <fpage>111488</fpage>. DOI <pub-id pub-id-type="doi">10.1016/j.compstruct.2019.111488</pub-id>.</mixed-citation></ref>
<ref id="ref-42"><label>42.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Voelkl</surname>, <given-names>H.</given-names></string-name>, <string-name><surname>Franz</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Klein</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Wartzack</surname>, <given-names>S.</given-names></string-name></person-group> (<year>2020</year>). <article-title>Computer aided internal optimisation (CAIO) method for fibre trajectory optimisation: A deep dive to enhance applicability</article-title>. <source>Design Science</source><italic>,</italic> <volume>6</volume><italic>(</italic><issue>4</issue><italic>),</italic> <fpage>1</fpage>&#x2013;<lpage>26</lpage>. DOI <pub-id pub-id-type="doi">10.1017/dsj.2020.1</pub-id>.</mixed-citation></ref>
<ref id="ref-43"><label>43.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Brooks</surname>, <given-names>T. R.</given-names></string-name>, <string-name><surname>Martins</surname>, <given-names>J. R. R. A.</given-names></string-name></person-group> (<year>2018</year>). <article-title>On manufacturing constraints for tow-steered composite design optimization</article-title>. <source>Composite Structures</source><italic>,</italic> <volume>204</volume><italic>(</italic><issue>3</issue><italic>),</italic> <fpage>548</fpage>&#x2013;<lpage>559</lpage>. DOI <pub-id pub-id-type="doi">10.1016/j.compstruct.2018.07.100</pub-id>.</mixed-citation></ref>
<ref id="ref-44"><label>44.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Svanberg</surname>, <given-names>K.</given-names></string-name></person-group> (<year>1987</year>). <article-title>The method of moving asymptotes&#x2014;A new method for structural optimization</article-title>. <source>International Journal for Numerical Methods in Engineering</source><italic>,</italic> <volume>24</volume><italic>(</italic><issue>2</issue><italic>),</italic> <fpage>359</fpage>&#x2013;<lpage>373</lpage>. DOI <pub-id pub-id-type="doi">10.1002/(ISSN)1097-0207</pub-id>.</mixed-citation></ref>
<ref id="ref-45"><label>45.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>de Boor</surname>, <given-names>C.</given-names></string-name></person-group> (<year>1972</year>). <article-title>On calculating with B-splines</article-title>. <source>Journal of Approximation Theory</source><italic>,</italic> <volume>6</volume><italic>(</italic><issue>1</issue><italic>),</italic> <fpage>50</fpage>&#x2013;<lpage>62</lpage>. DOI <pub-id pub-id-type="doi">10.1016/0021-9045(72)90080-9</pub-id>.</mixed-citation></ref>
<ref id="ref-46"><label>46.</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><surname>Piegl</surname>, <given-names>L.</given-names></string-name>, <string-name><surname>Tiller</surname>, <given-names>W.</given-names></string-name></person-group> (<year>1995</year>). <source>The NURBS book</source>. <publisher-loc>Germany, Berlin Heidelberg</publisher-loc>: <publisher-name>Springer-Verlag</publisher-name>.</mixed-citation></ref>
<ref id="ref-47"><label>47.</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><surname>Cottrell</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Hughes</surname>, <given-names>T.</given-names></string-name>, <string-name><surname>Bazilevs</surname>, <given-names>Y.</given-names></string-name></person-group> (<year>2009</year>). <source>Isogeometric analysis: Toward integration of CAD and FEA</source>. <publisher-loc>UK</publisher-loc>: <publisher-name>John Wiley &#x0026; Sons</publisher-name>.</mixed-citation></ref>
<ref id="ref-48"><label>48.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Andreassen</surname>, <given-names>E.</given-names></string-name>, <string-name><surname>Clausen</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Schevenels</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Lazarov</surname>, <given-names>B. S.</given-names></string-name>, <string-name><surname>Sigmund</surname>, <given-names>O.</given-names></string-name></person-group> (<year>2011</year>). <article-title>Efficient topology optimization in MATLAB using 88 lines of code</article-title>. <source>Structural and Multidisciplinary Optimization</source><italic>,</italic> <volume>43</volume><italic>(</italic><issue>1</issue><italic>),</italic> <fpage>1</fpage>&#x2013;<lpage>16</lpage>. DOI <pub-id pub-id-type="doi">10.1007/s00158-010-0594-7</pub-id>.</mixed-citation></ref>
<ref id="ref-49"><label>49.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Bends&#x00F8;e</surname>, <given-names>M. P.</given-names></string-name>, <string-name><surname>Kikuchi</surname>, <given-names>N.</given-names></string-name></person-group> (<year>1988</year>). <article-title>Generating optimal topologies in structural design using a homogenization method</article-title>. <source>Computer Methods in Applied Mechanics and Engineering</source><italic>,</italic> <volume>71</volume><italic>(</italic><issue>2</issue><italic>),</italic> <fpage>197</fpage>&#x2013;<lpage>224</lpage>. DOI <pub-id pub-id-type="doi">10.1016/0045-7825(88)90086-2</pub-id>.</mixed-citation></ref>
<ref id="ref-50"><label>50.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Brooks</surname>, <given-names>T. R.</given-names></string-name>, <string-name><surname>Martins</surname>, <given-names>J. R. R. A.</given-names></string-name>, <string-name><surname>Kennedy</surname>, <given-names>G. J.</given-names></string-name></person-group> (<year>2019</year>). <article-title>High-fidelity aerostructural optimization of tow-steered composite wings</article-title>. <source>Journal of Fluids and Structures</source><italic>,</italic> <volume>88</volume><italic>(</italic><issue>7</issue><italic>),</italic> <fpage>122</fpage>&#x2013;<lpage>147</lpage>. DOI <pub-id pub-id-type="doi">10.1016/j.jfluidstructs.2019.04.005</pub-id>.</mixed-citation></ref>
<ref id="ref-51"><label>51.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Wang</surname>, <given-names>Y.</given-names></string-name>, <string-name><surname>Benson</surname>, <given-names>D. J.</given-names></string-name></person-group> (<year>2015</year>). <article-title>Multi-patch nonsingular isogeometric boundary element analysis in 3D</article-title>. <source>Computer Methods in Applied Mechanics and Engineering</source><italic>,</italic> <volume>293</volume><italic>(</italic><issue>41</issue><italic>),</italic> <fpage>71</fpage>&#x2013;<lpage>91</lpage>. DOI <pub-id pub-id-type="doi">10.1016/j.cma.2015.03.016</pub-id>.</mixed-citation></ref>
<ref id="ref-52"><label>52.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Wang</surname>, <given-names>Y.</given-names></string-name>, <string-name><surname>Liao</surname>, <given-names>Z.</given-names></string-name>, <string-name><surname>Ye</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Zhang</surname>, <given-names>Y.</given-names></string-name>, <string-name><surname>Li</surname>, <given-names>W.</given-names></string-name> <etal>et al.</etal></person-group> (<year>2020</year>). <article-title>An efficient isogeometric topology optimization using multilevel mesh, MGCG and local-update strategy</article-title>. <source>Advances in Engineering Software</source><italic>,</italic> <volume>139</volume><italic>(</italic><issue>8</issue><italic>),</italic> <fpage>102733</fpage>. DOI <pub-id pub-id-type="doi">10.1016/j.advengsoft.2019.102733</pub-id>.</mixed-citation></ref>
<ref id="ref-53"><label>53.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Yin</surname>, <given-names>L.</given-names></string-name>, <string-name><surname>Zhang</surname>, <given-names>F.</given-names></string-name>, <string-name><surname>Deng</surname>, <given-names>X.</given-names></string-name>, <string-name><surname>Wu</surname>, <given-names>P.</given-names></string-name>, <string-name><surname>Zeng</surname>, <given-names>H.</given-names></string-name> <etal>et al.</etal></person-group> (<year>2019</year>). <article-title>Isogeometric bi-directional evolutionary structural optimization</article-title>. <source>IEEE Access</source><italic>,</italic> <volume>7</volume><italic>,</italic> <fpage>91134</fpage>&#x2013;<lpage>91145</lpage>. DOI <pub-id pub-id-type="doi">10.1109/ACCESS.2019.2927820</pub-id>.</mixed-citation></ref>
<ref id="ref-54"><label>54.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Boggs</surname>, <given-names>P. T.</given-names></string-name>, <string-name><surname>Tolle</surname>, <given-names>J. W.</given-names></string-name></person-group> (<year>1995</year>). <article-title>Sequential quadratic programming</article-title>. <source>Acta Numerica</source><italic>,</italic> <volume>4</volume><italic>,</italic> <fpage>1</fpage>&#x2013;<lpage>51</lpage>. DOI <pub-id pub-id-type="doi">10.1017/S0962492900002518</pub-id>.</mixed-citation></ref>
<ref id="ref-55"><label>55.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Xia</surname>, <given-names>Z.</given-names></string-name>, <string-name><surname>Wang</surname>, <given-names>Y.</given-names></string-name>, <string-name><surname>Wang</surname>, <given-names>Q.</given-names></string-name>, <string-name><surname>Mei</surname>, <given-names>C.</given-names></string-name></person-group> (<year>2017</year>). <article-title>GPU parallel strategy for parameterized LSM-based topology optimization using isogeometric analysis</article-title>. <source>Structural and Multidisciplinary Optimization</source><italic>,</italic> <volume>56</volume><italic>(</italic><issue>2</issue><italic>),</italic> <fpage>413</fpage>&#x2013;<lpage>434</lpage>. DOI <pub-id pub-id-type="doi">10.1007/s00158-017-1672-x</pub-id>.</mixed-citation></ref>
<ref id="ref-56"><label>56.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Bruyneel</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Fleury</surname>, <given-names>C.</given-names></string-name></person-group> (<year>2002</year>). <article-title>Composite structures optimization using sequential convex programming</article-title>. <source>Advances in Engineering Software</source><italic>,</italic> <volume>33</volume><italic>(</italic><issue>7</issue><italic>),</italic> <fpage>697</fpage>&#x2013;<lpage>711</lpage>. DOI <pub-id pub-id-type="doi">10.1016/S0965-9978(02)00053-4</pub-id>.</mixed-citation></ref>
<ref id="ref-57"><label>57.</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Duan</surname>, <given-names>Z.</given-names></string-name>, <string-name><surname>Yan</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Lee</surname>, <given-names>I.</given-names></string-name>, <string-name><surname>Lund</surname>, <given-names>E.</given-names></string-name>, <string-name><surname>Wang</surname>, <given-names>J.</given-names></string-name></person-group> (<year>2019</year>). <article-title>Discrete material selection and structural topology optimization of composite frames for maximum fundamental frequency with manufacturing constraints</article-title>. <source>Structural and Multidisciplinary Optimization</source><italic>,</italic> <volume>60</volume><italic>(</italic><issue>5</issue><italic>),</italic> <fpage>1741</fpage>&#x2013;<lpage>1758</lpage>. DOI <pub-id pub-id-type="doi">10.1007/s00158-019-02397-2</pub-id>.</mixed-citation></ref>
</ref-list>
</back>
</article>
