<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing with OASIS Tables v3.0 20080202//EN" "journalpub-oasis3.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:oasis="http://docs.oasis-open.org/ns/oasis-exchange/table" dtd-version="3.0"><?xmltex \hack{\allowdisplaybreaks}?>
  <front>
    <journal-meta>
<journal-id journal-id-type="publisher">MS</journal-id>
<journal-title-group>
<journal-title>Mechanical Sciences</journal-title>
<abbrev-journal-title abbrev-type="publisher">MS</abbrev-journal-title>
<abbrev-journal-title abbrev-type="nlm-ta">Mech. Sci.</abbrev-journal-title>
</journal-title-group>
<issn pub-type="epub">2191-916X</issn>
<publisher><publisher-name>Copernicus Publications</publisher-name>
<publisher-loc>Göttingen, Germany</publisher-loc>
</publisher>
</journal-meta>

    <article-meta>
      <article-id pub-id-type="doi">10.5194/ms-7-219-2016</article-id><title-group><article-title>Shape optimization and sensitivity of compliant beams for prescribed load-displacement response</article-title>
      </title-group><?xmltex \runningtitle{Shape optimization of compliant beams for prescribed load response}?><?xmltex \runningauthor{G.~Radaelli and J.~L.~Herder}?>
      <contrib-group>
        <contrib contrib-type="author" corresp="yes" rid="aff1 aff2">
          <name><surname>Radaelli</surname><given-names>Giuseppe</given-names></name>
          <email>g.radaelli@tudelft.nl</email>
        <ext-link>https://orcid.org/0000-0002-2935-3868</ext-link></contrib>
        <contrib contrib-type="author" corresp="no" rid="aff1">
          <name><surname>Herder</surname><given-names>Just L.</given-names></name>
          
        <ext-link>https://orcid.org/0000-0002-2770-0539</ext-link></contrib>
        <aff id="aff1"><label>1</label><institution>Dept. Precision and Microsystems Engineering, Delft University of Technology, <?xmltex \hack{\newline}?> 2628 CD Delft, the Netherlands</institution>
        </aff>
        <aff id="aff2"><label>2</label><institution>Laevo BV, 2628 CA Delft, the Netherlands</institution>
        </aff>
      </contrib-group>
      <author-notes><corresp id="corr1">Giuseppe Radaelli (g.radaelli@tudelft.nl)</corresp></author-notes><pub-date><day>17</day><month>November</month><year>2016</year></pub-date>
      
      <volume>7</volume>
      <issue>2</issue>
      <fpage>219</fpage><lpage>232</lpage>
      <history>
        <date date-type="received"><day>15</day><month>July</month><year>2016</year></date>
           <date date-type="rev-recd"><day>17</day><month>October</month><year>2016</year></date>
           <date date-type="accepted"><day>24</day><month>October</month><year>2016</year></date>
      </history>
      <permissions>
<license license-type="open-access">
<license-p>This work is licensed under a Creative Commons Attribution 3.0 Unported License. To view a copy of this license, visit <ext-link ext-link-type="uri" xlink:href="http://creativecommons.org/licenses/by/3.0/">http://creativecommons.org/licenses/by/3.0/</ext-link></license-p>
</license>
</permissions><self-uri xlink:href="https://ms.copernicus.org/articles/7/219/2016/ms-7-219-2016.html">This article is available from https://ms.copernicus.org/articles/7/219/2016/ms-7-219-2016.html</self-uri>
<self-uri xlink:href="https://ms.copernicus.org/articles/7/219/2016/ms-7-219-2016.pdf">The full text article is available as a PDF file from https://ms.copernicus.org/articles/7/219/2016/ms-7-219-2016.pdf</self-uri>


      <abstract>
    <p>This paper presents the shape optimization of a compliant beam for prescribed
load-displacements response. The analysis of the design is based on the
isogeometric analysis framework for an enhanced fidelity between designed and
analysed shape. The sensitivities used for an improved optimization procedure
are derived analytically, including terms due to the use of nonlinear state
equations and nonlinear boundary constraint equations. A design example is
illustrated where a beam shape is found that statically balances a pendulum
over a range of 180<inline-formula><mml:math display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> with good balancing quality. The analytical
sensitivities are verified by comparison with finite difference sensitivities.</p>
  </abstract>
    </article-meta>
  </front>
<body>
      

<sec id="Ch1.S1" sec-type="intro">
  <title>Introduction</title>
      <p>Mechanism synthesis can be thought of as finding a mechanism with a certain
force transmission, a certain motion transmission, or both. For conventional
mechanisms the analysis and synthesis of motion and forces can be performed
separately. This does not hold in general for compliant mechanisms. In
compliant mechanisms, which move due to deformation of slender segments
<xref ref-type="bibr" rid="bib1.bibx11" id="paren.1"/>, every motion is associated to a restoring force. If a certain
force and motion combination is desired at a part of the mechanism which is
input and output at the same time, such mechanism is sometimes called a
spring <xref ref-type="bibr" rid="bib1.bibx37" id="paren.2"/>. Not limited to the conventional coil springs, where
a motion over a straight path produces a linear force characteristic, a
general spring mechanism can potentially exhibit infinite types of nonlinear
load-displacement responses when moved along a general trajectory, which may
be non-straight. A load-displacement response, in this context, is defined as
the force/moment exerted by the spring given a series of applied boundary displacements/rotations.</p>
      <p>Applications of non-linear springs can be found in many design disciplines
including prosthetics, assistive devices, MEMS and user products. Often
nonlinear springs are applied as balancing mechanisms where either an
external load, e.g. a weight, or an intrinsic stiffness, e.g. in a compliant
mechanism, is counteracted by such nonlinear spring
<xref ref-type="bibr" rid="bib1.bibx26 bib1.bibx2 bib1.bibx10" id="paren.3"/>. Types of non-linearity that
are typically interesting are constant force mechanism, bi-stable or
multi-stable mechanisms and negative stiffness mechanisms <xref ref-type="bibr" rid="bib1.bibx27 bib1.bibx23 bib1.bibx36" id="paren.4"/>.</p>
      <p>A way of obtaining nonlinear spring behaviour is by optimization of the shape
of a chosen topology of elements such as rods, beams, shells etc. Other means
are to manipulate the topology of a system <xref ref-type="bibr" rid="bib1.bibx34 bib1.bibx6" id="paren.5"/> or the material properties.</p>
      <p>In tailoring the load-response of structures and, more in general, when
dealing with large deflections the non-linearity of the equilibrium equations
makes optimization more challenging. The optimization procedure, which is an
iterative scheme, includes at every step the solution of a nonlinear set of
equations, on their turn also iterative. Clear disadvantages are the
complexity of the procedure and increased computation time, but also the
smoothness of the optimization function space is often compromised due to
e.g. singularities and bifurcations in the solution.</p>
      <p><xref ref-type="bibr" rid="bib1.bibx7" id="text.6"/> proposes a method where tracing the
non-linear equilibrium at every optimisation iteration is not needed. This is
done by augmenting the system of equilibrium equations such that the unknowns
include the displacements and design variables, including a load parameter.
By keeping the load parameter constant a sequence of responses to that
loading can be obtained for different designs, without computing the whole
nonlinear equilibrium every time.</p>
      <p>Similarly, in the concept of simultaneous analysis and design (SAND)
<xref ref-type="bibr" rid="bib1.bibx9" id="paren.7"/> the analysis unknowns, e.g. the
displacements, and the design variables are all treated equivalently as
optimization variables. Since equilibrium is not required at every iteration
step, also tracing the nonlinear equilibrium path is not needed every time.
At the end of the procedure equilibrium is hopefully satisfied, and the
design optimized <xref ref-type="bibr" rid="bib1.bibx31" id="paren.8"/>.</p>
      <p>Also in the compliant mechanisms community several approaches have been
proposed to deal with geometrical non-linearities, often present in compliant
mechanisms <xref ref-type="bibr" rid="bib1.bibx1 bib1.bibx14 bib1.bibx6" id="paren.9"/>.</p>
      <p>In the majority of the cases the goal is to optimize the design for the
situation where the full load is applied. If, however, the nonlinear
load-response itself is what must be optimized, the problem gets more
involved. Examples of shape and/or topology optimization where the whole
load-response or part of it is optimized can be found in
<xref ref-type="bibr" rid="bib1.bibx33" id="text.10"/>, <xref ref-type="bibr" rid="bib1.bibx24" id="text.11"/>,
<xref ref-type="bibr" rid="bib1.bibx30" id="text.12"/>, <xref ref-type="bibr" rid="bib1.bibx15" id="text.13"/> and
<xref ref-type="bibr" rid="bib1.bibx19" id="text.14"/>.</p>
      <p>In this work we focus on shape optimization and, as such, a simple given
topology is assumed. Topology and material optimization are not considered in
this work. In the context of shape optimization of structures there is an
increasing interest in the isogeometric analysis (IGA) paradigm <xref ref-type="bibr" rid="bib1.bibx4" id="paren.15"/>.
This can be considered as an alternative to finite element analysis (FEA)
with some peculiar additional advantages. There is an enhanced fidelity
between designed shape and analysed shape. This comes from the use of
B-splines as basis functions for the computer aided geometric design (CAGD)
as well as for the structural analysis. This preserves the original shapes
and guarantees a high level of continuity between elements <xref ref-type="bibr" rid="bib1.bibx13" id="paren.16"/>.</p>
      <p>Having the same geometrical formulation at the basis of design and analysis
also gives the advantage that there is no need to spend much effort in
meshing, which is done repeatedly in an optimization procedure. Instead there
are some well-performing and efficient refinement algorithms that are applied
in order to work with a finer discretisation of the shape for the analysis.</p>
      <p>A third advantage is that sensitivity properties are derivable in an
analytical fashion, which supposedly can improve the efficiency of an
optimization procedure <xref ref-type="bibr" rid="bib1.bibx3 bib1.bibx22" id="paren.17"/>. Also, the derivable
shape sensitivities are more accurate <xref ref-type="bibr" rid="bib1.bibx17" id="paren.18"/>, leading to preciser results.</p>
      <p>While the work done on isogeometric shape optimization is widespread
<xref ref-type="bibr" rid="bib1.bibx21 bib1.bibx38" id="paren.19"/>, specific attention to nonlinear settings is
scarce <xref ref-type="bibr" rid="bib1.bibx16 bib1.bibx17" id="paren.20"/>. Moreover, while typical problems where the
stiffness, the weight, the volume or stresses are optimized have been
analysed extensively <xref ref-type="bibr" rid="bib1.bibx22 bib1.bibx12 bib1.bibx5" id="paren.21"/>, there is no work
known by the authors where the load-displacement of a non-linear spring is
optimized within the IGA framework.</p>
      <p>The rotation-less character of the degrees of freedom in the used
isogeometric formulation gives a complication with respect to the application
of rotation constraints on the beam. These constraints, imposed here by
nonlinear equations on the control points by Lagrange multipliers, have a
relevant impact on the derivation of the sensitivity. Together with the
nonlinearity of the equilibrium equations and the unusual type of objective
function, this leads to a few non-trivial problems to be dealt with in this paper.</p>
      <p>In previous work <xref ref-type="bibr" rid="bib1.bibx29" id="paren.22"/> the authors have applied
isogeometric shape optimization to obtain a flexible beam with a rotational
load-displacement response that matches a sine. This moment-angle
characteristic can be used to balance a pendulum which has a similar but
opposite moment-angle characteristic.</p>
      <p>The current work is dedicated to the derivation of the sensitivities needed
for the shape optimization of a flexible beam with prescribed
load-displacement. This procedure is demonstrated on the same case study of
the balanced pendulum. This case study is a comprehensible but not trivial
case: it requires the stiffness to go from positive, through zero, to
negative. The contribution of this paper is to enhance the procedure by
adding the sensitivity analysis. Special attention is paid to the formulation
of an objective function for general load-displacement tracing cases and to
the application of general boundary conditions as nonlinear constraint
equations. Putting together these pieces in one work is a contribution that
has not been found in literature, but is believed to be helpful for designers
of nonlinear springs.</p>
      <p>The rest of the paper is structured as follows: After a brief introduction to
the IGA framework Sect. <xref ref-type="sec" rid="Ch1.S2"/> is dedicated to the derivation of
the objective function and the terms needed for the sensitivity analysis.
Section <xref ref-type="sec" rid="Ch1.S3"/> shows a comparison of two optimization runs on
a given example problem with various optimization algorithms, with and
without use of gradient information. Section <xref ref-type="sec" rid="Ch1.S4"/> shows the
result of a validation by comparing the analytical sensitivities with the
numerically approximated sensitivities.</p>
</sec>
<sec id="Ch1.S2">
  <title>Method</title>
      <p>The present section starts with the problem description of a compliant
mechanism with tailored load-displacement response formulated as the
minimization of the difference between a desired and an obtained energy-path.
Following, a brief explanation is given of the basic concepts of isogeometric
analysis (IGA), needed for this paper. There are many literature sources
about this method. The reader is referred to <xref ref-type="bibr" rid="bib1.bibx4" id="text.23"/> for more
information. In the remainder all components needed for the evaluation of the
sensitivity of the objective function are treated.</p>
<sec id="Ch1.S2.SS1">
  <title>Problem description and objective formulation</title>
      <p>In the given context, a typical problem consists of obtaining an elastic
system where a given force is provided along a given trajectory. Herein the
terms force and trajectory can be used interchangeably with moments and
rotations. Examples include constant force mechanisms <xref ref-type="bibr" rid="bib1.bibx18" id="paren.24"/>,
bi-stable and multi-stable mechanisms where the load-displacement response
has multiple intersections with the zero-load line
<xref ref-type="bibr" rid="bib1.bibx27 bib1.bibx23" id="paren.25"/>, and static balancing <xref ref-type="bibr" rid="bib1.bibx2" id="paren.26"/> where the
resulting load-displacement response neutralizes as much as possible an
existing load-displacement response of the system to be balanced. In these
examples obtaining a certain nonlinear load-displacement response is the goal
of the design process.</p>
      <p>Provided that the considered forces are conservative, the problem can be
reformulated as obtaining a given potential energy along a given trajectory.
The use of energy with respect to forces often proves to be convenient due to
its scalar nature. The design challenge, here reformulated as a shape
optimization problem, consists thus in finding a certain elastic system
which, for a series of prescribed boundary displacements and rotations, is
compliant with a given potential energy-path.</p>
      <p>A simple two-dimensional elastic beam is treated of which the shape is to be
determined. Note that the method can in principle be extended to multiple
beams and/or applied to other type of elements like shells or solids. In the
example treated in Sect. <xref ref-type="sec" rid="Ch1.S3"/> the beam is connected to the
base hinge of a pendulum and the shape of the beam is optimized such that the
moment characteristic balances the pendulum, see Fig. <xref ref-type="fig" rid="Ch1.F4"/>.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F1"><caption><p>Illustration of
energy-paths for objective function.
<inline-formula><mml:math display="inline"><mml:mrow><mml:mover accent="true"><mml:mi>U</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mo>(</mml:mo><mml:mi mathvariant="italic">δ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math display="inline"><mml:mo>≈</mml:mo></mml:math></inline-formula> <inline-formula><mml:math display="inline"><mml:mover accent="true"><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover></mml:math></inline-formula> is the target behaviour,
<inline-formula><mml:math display="inline"><mml:mrow><mml:mi>U</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="italic">δ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math display="inline"><mml:mo>≈</mml:mo></mml:math></inline-formula> <inline-formula><mml:math display="inline"><mml:mi mathvariant="bold-italic">U</mml:mi></mml:math></inline-formula> is the actual obtained behaviour and
<inline-formula><mml:math display="inline"><mml:mover accent="true"><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover></mml:math></inline-formula> is the actual obtained behaviour normalized for an
amplitude-independent comparison.</p></caption><alt-text>illustration of objective function formulation</alt-text>
          <?xmltex \igopts{width=199.169291pt}?><graphic xlink:href="https://ms.copernicus.org/articles/7/219/2016/ms-7-219-2016-f01.pdf"/>

        </fig>

      <p>In the current framework the given energy-path is described at a discrete
number of steps <inline-formula><mml:math display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> resulting in a vector of potential energy values, see Fig. <xref ref-type="fig" rid="Ch1.F1"/>,

                <disp-formula id="Ch1.E1" content-type="numbered"><mml:math display="block"><mml:mrow><mml:mover accent="true"><mml:mi>U</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mo>(</mml:mo><mml:mi mathvariant="italic">δ</mml:mi><mml:mo>)</mml:mo><mml:mo>≈</mml:mo><mml:mover accent="true"><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mfenced open="[" close="]"><mml:mtable class="array" columnalign="center center center center"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="script">U</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mfenced close=")" open="("><mml:msub><mml:mi mathvariant="italic">δ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mfenced></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="script">U</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mfenced close=")" open="("><mml:msub><mml:mi mathvariant="italic">δ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mfenced></mml:mrow></mml:mtd><mml:mtd><mml:mi mathvariant="normal">…</mml:mi></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="script">U</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mi>m</mml:mi></mml:msub><mml:mfenced close=")" open="("><mml:msub><mml:mi mathvariant="italic">δ</mml:mi><mml:mi>m</mml:mi></mml:msub></mml:mfenced></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:math></disp-formula>

          where the hat <inline-formula><mml:math display="inline"><mml:mover accent="true"><mml:mrow><mml:mfenced close=")" open="("><mml:mspace linebreak="nobreak" width="0.25em"/></mml:mfenced></mml:mrow><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover></mml:math></inline-formula> symbol refers to the target energy while
the actual obtained energy-path is denoted by

                <disp-formula id="Ch1.E2" content-type="numbered"><mml:math display="block"><mml:mrow><mml:mi>U</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="italic">δ</mml:mi><mml:mo>)</mml:mo><mml:mo>≈</mml:mo><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo>=</mml:mo><mml:mfenced close="]" open="["><mml:mtable class="array" columnalign="center center center center"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="script">U</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mfenced close=")" open="("><mml:msub><mml:mi mathvariant="italic">δ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mfenced></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="script">U</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mfenced open="(" close=")"><mml:msub><mml:mi mathvariant="italic">δ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mfenced></mml:mrow></mml:mtd><mml:mtd><mml:mi mathvariant="normal">…</mml:mi></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="script">U</mml:mi><mml:mi>m</mml:mi></mml:msub><mml:mfenced open="(" close=")"><mml:msub><mml:mi mathvariant="italic">δ</mml:mi><mml:mi>m</mml:mi></mml:msub></mml:mfenced></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          In the previous equations the calligraphic <inline-formula><mml:math display="inline"><mml:mi mathvariant="script">U</mml:mi></mml:math></inline-formula> denotes the
potential energy of the system at a single configuration. <inline-formula><mml:math display="inline"><mml:mi mathvariant="italic">δ</mml:mi></mml:math></inline-formula> is the
imposed displacement value corresponding to the point of the trajectory.</p>
      <p>In the case of load-displacement tailoring it is often useful to examine the
shape of the energy-path without considering its amplitude. In a bending
dominated problem the amplitude is scaled by sizing and material parameters
through the Young's-modulus and cross-sectional properties, in the assumption
that these parameters are constant over the length of the beam and that the
Euler–Bernoulli assumptions hold (length <inline-formula><mml:math display="inline"><mml:mo>≫</mml:mo></mml:math></inline-formula> thickness). Therefore it is useful
to do the optimization on the shape of the energy-path, and once the shape of
the target energy-path is achieved, one can scale the amplitude by tuning the
sizing and material parameters. In particular, the width of the beam can
easily be adjusted to match the desired amplitude.</p>
      <p>For this reason the target energy-path <inline-formula><mml:math display="inline"><mml:mover accent="true"><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover></mml:math></inline-formula> is required to be
bounded between [0, 1]. The normalized obtained energy-path <inline-formula><mml:math display="inline"><mml:mover accent="true"><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover></mml:math></inline-formula>
is defined element-wise by

                <disp-formula id="Ch1.E3" content-type="numbered"><mml:math display="block"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="script">U</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover><mml:mi>k</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi mathvariant="script">U</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>U</mml:mi><mml:mtext>min</mml:mtext></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>U</mml:mi><mml:mtext>max</mml:mtext></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>U</mml:mi><mml:mtext>min</mml:mtext></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi>U</mml:mi><mml:mtext>min</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi>U</mml:mi><mml:mtext>max</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> are the minimum and maximum elements of the
vector <inline-formula><mml:math display="inline"><mml:mi mathvariant="bold-italic">U</mml:mi></mml:math></inline-formula> and the index <inline-formula><mml:math display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> <inline-formula><mml:math display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 1 … <inline-formula><mml:math display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> represents the <inline-formula><mml:math display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula>th entry of the
discrete energy vectors.</p>
      <p>The proposed objective function is stated as

                <disp-formula id="Ch1.E4" content-type="numbered"><mml:math display="block"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mfenced open="(" close=")"><mml:mover accent="true"><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover><mml:mo>-</mml:mo><mml:mover accent="true"><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover></mml:mfenced><mml:msup><mml:mfenced close=")" open="("><mml:mover accent="true"><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover><mml:mo>-</mml:mo><mml:mover accent="true"><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover></mml:mfenced><mml:mi>T</mml:mi></mml:msup></mml:mrow><mml:mrow><mml:mover accent="true"><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:msup><mml:mover accent="true"><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mi>T</mml:mi></mml:msup></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:math></disp-formula>

          which can be interpreted as the normalized sum of squared residuals. As a
consequence of the discretisation of the energy-path, the reader should be
aware of the fact that the energy difference is minimized only at those
discrete points. Fluctuations between the points can theoretically not be
excluded. Increasing the resolution of the discretisation helps preventing this.</p>
      <p>The given formulation of the objective function is convenient for the
sensitivity analysis. Its derivative with respect to the design vector,
containing the control point positions
<inline-formula><mml:math display="inline"><mml:mi mathvariant="bold-italic">x</mml:mi></mml:math></inline-formula> <inline-formula><mml:math display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> <inline-formula><mml:math display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">1</mml:mn><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">1</mml:mn><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> … <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:msub><mml:msup><mml:mo>]</mml:mo><mml:mi>T</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>,
can be derived as

                <disp-formula id="Ch1.E5" content-type="numbered"><mml:math display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mfenced open="(" close=")"><mml:mover accent="true"><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover><mml:mo>-</mml:mo><mml:mover accent="true"><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover></mml:mfenced></mml:mrow><mml:mrow><mml:mover accent="true"><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:msup><mml:mover accent="true"><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mi>T</mml:mi></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mover accent="true"><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:math></disp-formula>

          where the derivative with respect to the normalized energy-path is

                <disp-formula specific-use="align" content-type="numbered"><mml:math display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mover accent="true"><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mfenced close=")" open="("><mml:msub><mml:mi>U</mml:mi><mml:mtext>max</mml:mtext></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>U</mml:mi><mml:mtext>min</mml:mtext></mml:msub></mml:mfenced><mml:mfenced open="(" close=")"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">U</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>-</mml:mo><mml:msub><mml:mfenced close="|" open="."><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">U</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mrow><mml:mi>U</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>U</mml:mi><mml:mtext>min</mml:mtext></mml:msub></mml:mrow></mml:msub></mml:mfenced></mml:mrow><mml:mrow><mml:msup><mml:mfenced open="(" close=")"><mml:msub><mml:mi>U</mml:mi><mml:mtext>max</mml:mtext></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>U</mml:mi><mml:mtext>min</mml:mtext></mml:msub></mml:mfenced><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mtr><mml:mlabeledtr id="Ch1.E6"><mml:mtd/><mml:mtd/><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mfenced open="(" close=")"><mml:msub><mml:mfenced open="." close="|"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">U</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mrow><mml:mi>U</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>U</mml:mi><mml:mtext>max</mml:mtext></mml:msub></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mfenced open="." close="|"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">U</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mrow><mml:mi>U</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>U</mml:mi><mml:mtext>min</mml:mtext></mml:msub></mml:mrow></mml:msub></mml:mfenced><mml:mfenced open="(" close=")"><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo>-</mml:mo><mml:msub><mml:mi>U</mml:mi><mml:mtext>min</mml:mtext></mml:msub></mml:mfenced></mml:mrow><mml:mrow><mml:msup><mml:mfenced open="(" close=")"><mml:msub><mml:mi>U</mml:mi><mml:mtext>max</mml:mtext></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>U</mml:mi><mml:mtext>min</mml:mtext></mml:msub></mml:mfenced><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

            where <inline-formula><mml:math display="inline"><mml:mrow><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">U</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:msub><mml:mo>|</mml:mo><mml:mrow><mml:mi>U</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>U</mml:mi><mml:mtext>min</mml:mtext></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and
<inline-formula><mml:math display="inline"><mml:mrow><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">U</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:msub><mml:mo>|</mml:mo><mml:mrow><mml:mi>U</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>U</mml:mi><mml:mtext>max</mml:mtext></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> are the
derivatives <inline-formula><mml:math display="inline"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">U</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:math></inline-formula> evaluated only for
the minimum and maximum entries of <inline-formula><mml:math display="inline"><mml:mi mathvariant="bold-italic">U</mml:mi></mml:math></inline-formula>. In the first term this vector,
which would be one-dimensional, is replicated and tiled in order to match the
dimensions of the vector <inline-formula><mml:math display="inline"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">U</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:math></inline-formula>, from
which it is subtracted. Also the <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi>U</mml:mi><mml:mtext>min</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> in the numerator of the
second term is subtracted from all elements of the vector <inline-formula><mml:math display="inline"><mml:mi mathvariant="bold-italic">U</mml:mi></mml:math></inline-formula>.</p>
      <p>Since the potential energy <inline-formula><mml:math display="inline"><mml:mi mathvariant="script">U</mml:mi></mml:math></inline-formula> at every configuration is a
function of both design variables <inline-formula><mml:math display="inline"><mml:mi mathvariant="bold-italic">x</mml:mi></mml:math></inline-formula> and the state variables
(displacements) <inline-formula><mml:math display="inline"><mml:mrow><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>,

                <disp-formula id="Ch1.E7" content-type="numbered"><mml:math display="block"><mml:mrow><mml:mi mathvariant="script">U</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>)</mml:mo><mml:mo>)</mml:mo></mml:mrow></mml:math></disp-formula>

          the total derivative of the potential energy is given by

                <disp-formula id="Ch1.E8" content-type="numbered"><mml:math display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="script">U</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="script">U</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="script">U</mml:mi><mml:mo>(</mml:mo><mml:mover accent="true"><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">u</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          The partial derivative of the energy function with respect to the
displacement vector <inline-formula><mml:math display="inline"><mml:mi mathvariant="bold-italic">u</mml:mi></mml:math></inline-formula> is by definition equal to the internal force
vector <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">F</mml:mi><mml:mtext>i</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula>, which will be used next, but of which the derivation is
omitted for the sake of conciseness. Substitution gives

                <disp-formula id="Ch1.E9" content-type="numbered"><mml:math display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="script">U</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="script">U</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">F</mml:mi><mml:mtext>i</mml:mtext></mml:msub><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">u</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          The partial derivative with respect to the design vector <inline-formula><mml:math display="inline"><mml:mi mathvariant="bold-italic">x</mml:mi></mml:math></inline-formula> is given in
explicit form in Sect. <xref ref-type="sec" rid="Ch1.S2.SS3"/>, while the total derivatives of
the displacement vector <inline-formula><mml:math display="inline"><mml:mi mathvariant="bold-italic">u</mml:mi></mml:math></inline-formula> with respect to the design vector <inline-formula><mml:math display="inline"><mml:mi mathvariant="bold-italic">x</mml:mi></mml:math></inline-formula> is
elaborated in Sect. <xref ref-type="sec" rid="Ch1.S2.SS4"/>.</p>
      <p>Note that Eq. (<xref ref-type="disp-formula" rid="Ch1.E9"/>) must be evaluated at every converged load step
solution in order to feed <inline-formula><mml:math display="inline"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="script">U</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:math></inline-formula>
as columns of the matrix <inline-formula><mml:math display="inline"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">U</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:math></inline-formula> in
Eq. (<xref ref-type="disp-formula" rid="Ch1.E6"/>).</p>
</sec>
<sec id="Ch1.S2.SS2">
  <title>IGA introduction</title>
      <p>Isogeometric analysis is a framework with growing popularity for a number of
reasons that particularly hold for shape optimization. First, the fidelity
between analysed shape and designed shape. There is no approximation involved
in the discretisation of the geometry as with meshing. Instead, a refinement
of the parametric description of the geometry is performed, which increases
the amount of parameters without altering the geometry itself.</p>
      <p>Secondly, and related to the first argument, not needing a conversion step
between the geometric description of the design to the analysis gives speed
advantages, which are of major impact in optimization where this conversion
happens many times.</p>
      <p>Third, the availability of analytic derivative information can enhance an
optimization procedure significantly.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F2"><caption><p>B-spline curve and control polygon.</p></caption>
          <?xmltex \igopts{width=170.716535pt}?><graphic xlink:href="https://ms.copernicus.org/articles/7/219/2016/ms-7-219-2016-f02.pdf"/>

        </fig>

      <p>Since a lot of literature can be found about IGA, just the needed formulas
are given to understand the notation. For the notation <xref ref-type="bibr" rid="bib1.bibx21" id="text.27"/> is
followed. A B-spline, see Fig. <xref ref-type="fig" rid="Ch1.F2"/>, is defined as

                <disp-formula id="Ch1.E10" content-type="numbered"><mml:math display="block"><mml:mrow><mml:mi mathvariant="bold-italic">r</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="italic">ξ</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mi>n</mml:mi></mml:munderover><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:mo>(</mml:mo><mml:mi mathvariant="italic">ξ</mml:mi><mml:mo>)</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">P</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">P</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math display="inline"><mml:mo>∈</mml:mo></mml:math></inline-formula> <inline-formula><mml:math display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="double-struck">R</mml:mi><mml:mi>d</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> is a control point, <inline-formula><mml:math display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula> is the number of
control points and where the <inline-formula><mml:math display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula>th degree basis functions are constructed
recursively starting with piecewise constants

                <disp-formula id="Ch1.Ex2"><mml:math display="block"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="italic">ξ</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mfenced open="{" close=""><mml:mtable class="array" columnalign="center left"><mml:mtr><mml:mtd><mml:mn mathvariant="normal">1</mml:mn></mml:mtd><mml:mtd><mml:mrow><mml:mtext>if</mml:mtext><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mspace width="0.25em" linebreak="nobreak"/><mml:msub><mml:mi mathvariant="italic">ξ</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>≤</mml:mo><mml:mi mathvariant="italic">ξ</mml:mi><mml:mo>&lt;</mml:mo><mml:msub><mml:mi mathvariant="italic">ξ</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mtext>otherwise</mml:mtext></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:math></disp-formula>

          and for <inline-formula><mml:math display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula> <inline-formula><mml:math display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 1, 2, 3, …, they are defined by

                <disp-formula id="Ch1.E11" content-type="numbered"><mml:math display="block"><mml:mrow><?xmltex \hack{\hbox\bgroup\fontsize{8.5}{8.5}\selectfont$\displaystyle}?><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:mo>(</mml:mo><mml:mi mathvariant="italic">ξ</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="italic">ξ</mml:mi><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="italic">ξ</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi mathvariant="italic">ξ</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>+</mml:mo><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="italic">ξ</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>p</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="italic">ξ</mml:mi><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ξ</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>+</mml:mo><mml:mi>p</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:mi mathvariant="italic">ξ</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mi mathvariant="italic">ξ</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>+</mml:mo><mml:mi>p</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="italic">ξ</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>p</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="italic">ξ</mml:mi><mml:mo>)</mml:mo><mml:mo>.</mml:mo><?xmltex \hack{$\egroup}?></mml:mrow></mml:math></disp-formula></p>
      <p>In the present work a geometrically nonlinear Euler–Bernoulli beam is used.
The potential energy of the beam can be written as

                <disp-formula id="Ch1.E12" content-type="numbered"><mml:math display="block"><mml:mrow><?xmltex \igopts{width=11.381102pt}?><mml:mstyle background="https://ms.copernicus.org/articles/7/219/2016/ms-7-219-2016-g01.pdf"/><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:mo movablelimits="false">∫</mml:mo><mml:mfenced close=")" open="("><mml:mi>E</mml:mi><mml:mi>A</mml:mi><mml:msup><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:mi>E</mml:mi><mml:mi>I</mml:mi><mml:msup><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mfenced><mml:mi mathvariant="normal">d</mml:mi><mml:mi>S</mml:mi></mml:mrow></mml:math></disp-formula>

          where the integral is evaluated numerically following a Gaussian quadrature
rule using

                <disp-formula id="Ch1.E13" content-type="numbered"><mml:math display="block"><mml:mrow><?xmltex \igopts{width=11.381102pt}?><mml:mstyle background="https://ms.copernicus.org/articles/7/219/2016/ms-7-219-2016-g01.pdf"/><mml:mo>≈</mml:mo><mml:mi mathvariant="script">U</mml:mi><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mi>p</mml:mi></mml:mrow></mml:munderover><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>k</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mtext>int</mml:mtext></mml:msub></mml:mrow></mml:munderover><mml:mfenced open="(" close=")"><mml:mi>E</mml:mi><mml:mi>A</mml:mi><mml:msubsup><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mi>k</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>+</mml:mo><mml:mi>E</mml:mi><mml:mi>I</mml:mi><mml:msubsup><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi>k</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup></mml:mfenced><mml:msub><mml:mi>J</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:msub><mml:mover accent="true"><mml:mi>J</mml:mi><mml:mo mathvariant="normal">‾</mml:mo></mml:mover><mml:mi>j</mml:mi></mml:msub><mml:mover accent="true"><mml:mrow><mml:msub><mml:mi>w</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow><mml:mo mathvariant="normal">‾</mml:mo></mml:mover></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math display="inline"><mml:mi>A</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math display="inline"><mml:mi>I</mml:mi></mml:math></inline-formula> represent the Young's modulus, the cross-sectional
area and the second moment of inertia, respectively, and are assumed constant
over the length of the beam. Moreover <inline-formula><mml:math display="inline"><mml:mi>J</mml:mi></mml:math></inline-formula> is the reference rod Jacobian,
<inline-formula><mml:math display="inline"><mml:mover accent="true"><mml:mi>J</mml:mi><mml:mo mathvariant="normal">‾</mml:mo></mml:mover></mml:math></inline-formula> and <inline-formula><mml:math display="inline"><mml:mover accent="true"><mml:mi>w</mml:mi><mml:mo mathvariant="normal">‾</mml:mo></mml:mover></mml:math></inline-formula> are the Jacobian and the weight associated
with the numerical integration, <inline-formula><mml:math display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula> <inline-formula><mml:math display="inline"><mml:mo>+</mml:mo></mml:math></inline-formula> <inline-formula><mml:math display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula> is the number of knot spans and
<inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mtext>int</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> is the number of integration points per knot span.</p>
      <p>The relative strain measures, i.e. the membrane strain <inline-formula><mml:math display="inline"><mml:mi mathvariant="italic">ϵ</mml:mi></mml:math></inline-formula> and the
bending strain <inline-formula><mml:math display="inline"><mml:mi mathvariant="italic">ρ</mml:mi></mml:math></inline-formula> are given as defined in <xref ref-type="bibr" rid="bib1.bibx35" id="text.28"/>

                <disp-formula specific-use="align" content-type="numbered"><mml:math display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E14"><mml:mtd/><mml:mtd/><mml:mtd><mml:mrow><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:mfenced close=")" open="("><mml:msup><mml:mfenced close=")" open="("><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>S</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mfenced></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E15"><mml:mtd/><mml:mtd/><mml:mtd><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:mi mathvariant="italic">κ</mml:mi><mml:mo>-</mml:mo><mml:mi>K</mml:mi><mml:mo>)</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>S</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

            The differential arch length and curvature of the line of centroids of the
beam are denoted by the kinematic variables d<inline-formula><mml:math display="inline"><mml:mi>S</mml:mi></mml:math></inline-formula>, d<inline-formula><mml:math display="inline"><mml:mi>s</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math display="inline"><mml:mi>K</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math display="inline"><mml:mi mathvariant="italic">κ</mml:mi></mml:math></inline-formula>,
where the capital symbols refer to the reference state <inline-formula><mml:math display="inline"><mml:mrow><mml:mi mathvariant="bold-italic">R</mml:mi><mml:mo>(</mml:mo><mml:mi>S</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> and the
minuscule symbols refer to the current state <inline-formula><mml:math display="inline"><mml:mrow><mml:mi mathvariant="bold-italic">r</mml:mi><mml:mo>(</mml:mo><mml:mi>S</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>. The definitions
are

                <disp-formula specific-use="align" content-type="numbered"><mml:math display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E16"><mml:mtd/><mml:mtd/><mml:mtd><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>s</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="italic">ξ</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mfenced open="|" close="|"><mml:msup><mml:mi mathvariant="bold-italic">r</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mfenced><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="italic">ξ</mml:mi></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E17"><mml:mtd/><mml:mtd/><mml:mtd><mml:mrow><mml:mi mathvariant="italic">κ</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="italic">ξ</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mfenced open="[" close="]"><mml:msup><mml:mi mathvariant="bold-italic">r</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:msup><mml:mo>×</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">r</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mfenced><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:msup><mml:mfenced open="|" close="|"><mml:msup><mml:mi mathvariant="bold-italic">r</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mfenced><mml:mn mathvariant="normal">3</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

            where the subscript 3 refers to the third component of the vector in brackets
and the superscript in parenthesis denote successive
differentiation w.r.t. <inline-formula><mml:math display="inline"><mml:mi mathvariant="italic">ξ</mml:mi></mml:math></inline-formula>, the variable of parametrization. The definition
of d<inline-formula><mml:math display="inline"><mml:mi>S</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math display="inline"><mml:mi>K</mml:mi></mml:math></inline-formula> is similar to Eqs. (<xref ref-type="disp-formula" rid="Ch1.E16"/>) and (<xref ref-type="disp-formula" rid="Ch1.E17"/>), only
replacing the curve of the current configuration <inline-formula><mml:math display="inline"><mml:mrow><mml:mi mathvariant="bold-italic">r</mml:mi><mml:mo>(</mml:mo><mml:mi>S</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> by the one of
the reference configuration <inline-formula><mml:math display="inline"><mml:mrow><mml:mi mathvariant="bold-italic">R</mml:mi><mml:mo>(</mml:mo><mml:mi>S</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>.</p>
      <p>It is customary to define the geometry of a system by a relatively small set
of control points which are used as optimization variables
(<inline-formula><mml:math display="inline"><mml:mi mathvariant="bold-italic">X</mml:mi></mml:math></inline-formula> <inline-formula><mml:math display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> <inline-formula><mml:math display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">P</mml:mi><mml:mtext>design</mml:mtext></mml:msup></mml:mrow></mml:math></inline-formula>). A refinement step, preserving the exact shape of the curve
itself, yields a larger amount of control points (<inline-formula><mml:math display="inline"><mml:mi mathvariant="bold-italic">x</mml:mi></mml:math></inline-formula> <inline-formula><mml:math display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> <inline-formula><mml:math display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">P</mml:mi><mml:mtext>analysis</mml:mtext></mml:msup></mml:mrow></mml:math></inline-formula>)
that are used for the numerical analysis.</p>
      <p>The discrete structural arrays, i.e. tangent stiffness matrix <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">K</mml:mi><mml:mi>t</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and
the internal force vector <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">F</mml:mi><mml:mtext>i</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula>, are derived from the energy functional
of Eq. (<xref ref-type="disp-formula" rid="Ch1.E12"/>). The displacement of the control points of the
analysis (<inline-formula><mml:math display="inline"><mml:mi mathvariant="bold-italic">x</mml:mi></mml:math></inline-formula>) are the unknowns of the equilibrium equations indicated by
the vector of state variables <inline-formula><mml:math display="inline"><mml:mi mathvariant="bold-italic">u</mml:mi></mml:math></inline-formula>.</p>
</sec>
<sec id="Ch1.S2.SS3">
  <title>Energy derivative</title>
      <p>Often in structural optimization the stored elastic energy, assumed
equivalent to the structural compliance, is simply evaluated as
<inline-formula><mml:math display="inline"><mml:mi>c</mml:mi></mml:math></inline-formula> <inline-formula><mml:math display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> <inline-formula><mml:math display="inline"><mml:mrow><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msubsup><mml:mi mathvariant="bold-italic">F</mml:mi><mml:mtext>e</mml:mtext><mml:mi>T</mml:mi></mml:msubsup><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="bold-italic">u</mml:mi></mml:mrow></mml:math></inline-formula>. While this is correct for a linear analysis,
namely it represents the area under the force-displacement curve, this is not
valid in general for nonlinear cases. Therefore we must go back to the
definition of the strain energy given in Eq. (<xref ref-type="disp-formula" rid="Ch1.E12"/>) and its
numerical approximation given in Eq. (<xref ref-type="disp-formula" rid="Ch1.E13"/>). The partial
derivative of Eq. (<xref ref-type="disp-formula" rid="Ch1.E13"/>) with respect to the vector <inline-formula><mml:math display="inline"><mml:mi mathvariant="bold-italic">x</mml:mi></mml:math></inline-formula>,
where <inline-formula><mml:math display="inline"><mml:mi mathvariant="bold-italic">u</mml:mi></mml:math></inline-formula> is kept constant, is given by

                <disp-formula specific-use="align" content-type="numbered"><mml:math display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="script">U</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mi>p</mml:mi></mml:mrow></mml:munderover><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>k</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mtext>int</mml:mtext></mml:msub></mml:mrow></mml:munderover><mml:mfenced open="(" close=""><mml:mfenced open="(" close=")"><mml:mi>E</mml:mi><mml:mi>A</mml:mi><mml:msubsup><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mi>k</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>+</mml:mo><mml:mi>E</mml:mi><mml:mi>I</mml:mi><mml:msubsup><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi>k</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup></mml:mfenced><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>J</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mlabeledtr id="Ch1.E18"><mml:mtd/><mml:mtd/><mml:mtd><mml:mrow><mml:mfenced open="." close=")"><mml:mo>+</mml:mo><mml:mfenced open="(" close=")"><mml:mi>E</mml:mi><mml:mi>A</mml:mi><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mfenced close=")" open="("><mml:msubsup><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mi>k</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup></mml:mfenced></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mi>E</mml:mi><mml:mi>I</mml:mi><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mfenced close=")" open="("><mml:msubsup><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi>k</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup></mml:mfenced></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:msub><mml:mi>J</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mfenced><mml:mover accent="true"><mml:mrow><mml:msub><mml:mi>J</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow><mml:mo mathvariant="normal">‾</mml:mo></mml:mover><mml:mover accent="true"><mml:mrow><mml:msub><mml:mi>w</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow><mml:mo mathvariant="normal">‾</mml:mo></mml:mover><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

            The partial derivatives of the squared strain measures read

                <disp-formula id="Ch1.E19" content-type="numbered"><mml:math display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mfenced close=")" open="("><mml:msup><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mfenced></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="italic">ϵ</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mfenced open="[" close="]"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>S</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mfenced close=")" open="("><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="normal">d</mml:mi><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mi mathvariant="normal">d</mml:mi><mml:mi>S</mml:mi><mml:mo>-</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="normal">d</mml:mi><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mi mathvariant="normal">d</mml:mi><mml:mi>s</mml:mi></mml:mfenced></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msup><mml:mi>S</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced></mml:mrow></mml:math></disp-formula>

          and

                <disp-formula id="Ch1.E20" content-type="numbered"><mml:math display="block"><mml:mrow><?xmltex \hack{\hbox\bgroup\fontsize{9}{9}\selectfont$\displaystyle}?><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mfenced open="(" close=")"><mml:msup><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mfenced></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mi mathvariant="italic">ρ</mml:mi><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="italic">ρ</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mi mathvariant="italic">ρ</mml:mi><mml:mfenced open="[" close="]"><mml:mfenced open="(" close=")"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="italic">κ</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>S</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mo>(</mml:mo><mml:mi mathvariant="italic">κ</mml:mi><mml:mo>-</mml:mo><mml:mi>K</mml:mi><mml:mo>)</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="normal">d</mml:mi><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="normal">d</mml:mi><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfrac></mml:mstyle></mml:mfenced><?xmltex \hack{$\egroup}?></mml:mrow></mml:math></disp-formula>

          where

                <disp-formula id="Ch1.E21" content-type="numbered"><mml:math display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="normal">d</mml:mi><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">r</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:msup><mml:msubsup><mml:mi>R</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mrow><mml:mfenced open="|" close="|"><mml:msup><mml:mi mathvariant="bold-italic">r</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mfenced></mml:mrow></mml:mfrac></mml:mstyle><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="italic">ξ</mml:mi></mml:mrow></mml:math></disp-formula>

          and

                <disp-formula id="Ch1.E22" content-type="numbered"><mml:math display="block"><mml:mrow><?xmltex \hack{\hbox\bgroup\fontsize{8.5}{8.5}\selectfont$\displaystyle}?><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="italic">κ</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced open="(" close=")"><mml:msub><mml:mfenced close="]" open="["><mml:msup><mml:mi mathvariant="bold-italic">r</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:msup><mml:mo>×</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">r</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mfenced><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mfenced><mml:msup><mml:mfenced open="|" close="|"><mml:msup><mml:mi mathvariant="bold-italic">r</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mfenced><mml:mn mathvariant="normal">3</mml:mn></mml:msup><mml:mo>-</mml:mo><mml:msub><mml:mfenced close="]" open="["><mml:msup><mml:mi mathvariant="bold-italic">r</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:msup><mml:mo>×</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">r</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mfenced><mml:mn mathvariant="normal">3</mml:mn></mml:msub><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced open="(" close=")"><mml:msup><mml:mfenced open="|" close="|"><mml:msup><mml:mi mathvariant="bold-italic">r</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mfenced><mml:mn mathvariant="normal">3</mml:mn></mml:msup></mml:mfenced></mml:mrow><mml:mrow><mml:msup><mml:mfenced close="|" open="|"><mml:msup><mml:mi mathvariant="bold-italic">r</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mfenced><mml:mn mathvariant="normal">6</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo><?xmltex \hack{$\egroup}?></mml:mrow></mml:math></disp-formula>

          Similar equations hold for <inline-formula><mml:math display="inline"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="normal">d</mml:mi><mml:mi>S</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:math></inline-formula> and
<inline-formula><mml:math display="inline"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:math></inline-formula>, where again the reference curve is
used instead of the current curve. Furthermore

                <disp-formula specific-use="align" content-type="numbered"><mml:math display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mfenced open="(" close=")"><mml:msub><mml:mfenced open="[" close="]"><mml:msup><mml:mi mathvariant="bold-italic">r</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:msup><mml:mo>×</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">r</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mfenced><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mfenced><mml:mo>=</mml:mo><mml:msubsup><mml:mi>R</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:msubsup><mml:mfenced close=")" open="("><mml:msubsup><mml:mi>r</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:msubsup><mml:mo>-</mml:mo><mml:msubsup><mml:mi>r</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:msubsup></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mlabeledtr id="Ch1.E23"><mml:mtd/><mml:mtd/><mml:mtd><mml:mrow><mml:mo>+</mml:mo><mml:mfenced open="(" close=")"><mml:msubsup><mml:mi>r</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:msubsup><mml:mo>-</mml:mo><mml:msubsup><mml:mi>r</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:msubsup></mml:mfenced><mml:msubsup><mml:mi>R</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:msubsup><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

            The derivatives of the curves <inline-formula><mml:math display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">r</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">r</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> and their
algorithmic implementations are readily available from e.g. <xref ref-type="bibr" rid="bib1.bibx25" id="text.29"/>.</p>
</sec>
<sec id="Ch1.S2.SS4">
  <title>State sensitivity</title>
      <p>The more tedious parts of the derivation are not the partial derivatives but
the total derivative of the state vector. Usually there is not an explicit
relation between <inline-formula><mml:math display="inline"><mml:mi mathvariant="bold-italic">x</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math display="inline"><mml:mi mathvariant="bold-italic">u</mml:mi></mml:math></inline-formula>, and thus the derivative cannot be found
analytically. There are two common methods to compute them numerically. One
is the direct method and the other one is the adjoint method. The direct
method is used because of its simpler implementation and derivation. There is
however no objection in using the adjoint method instead.</p>
      <p>There are two aspects in the described situation that make the implementation
not trivial. These two aspects have not been found combined in literature.
The first aspect is that the set of equilibrium equations is nonlinear and
thus requires an iterative, newton-like, procedure to solve it. The second
aspect is the application of nonlinear constraint equations as Lagrange
multipliers, which creates an augmented system of equations. Both aspects
together lead to the following derivations. The formulation of the constraint
equations in the present work will be illustrated in Sect. <xref ref-type="sec" rid="Ch1.S2.SS5"/>.</p>
      <p>The equilibrium conditions to be solved can be formulated in terms of the
tangent stiffness matrix <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">K</mml:mi><mml:mtext>t</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula>, the internal and external force
vectors <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">F</mml:mi><mml:mtext>i</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">F</mml:mi><mml:mtext>e</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula>

                <disp-formula id="Ch1.E24" content-type="numbered"><mml:math display="block"><mml:mrow><mml:msub><mml:mi mathvariant="bold">K</mml:mi><mml:mtext>t</mml:mtext></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>)</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">F</mml:mi><mml:mtext>e</mml:mtext></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>)</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">F</mml:mi><mml:mtext>i</mml:mtext></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></disp-formula>

          which is solved for an increment of the displacement vector <inline-formula><mml:math display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi mathvariant="bold-italic">u</mml:mi></mml:mrow></mml:math></inline-formula>.
While this is a good practice for the solution of the system itself, for the
current derivation of the sensitivities it is more convenient to use the
alternative formulation in terms of the secant stiffness matrix, where the
internal force vector drops out

                <disp-formula id="Ch1.E25" content-type="numbered"><mml:math display="block"><mml:mrow><mml:msub><mml:mi mathvariant="bold">K</mml:mi><mml:mtext>s</mml:mtext></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>)</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">F</mml:mi><mml:mtext>e</mml:mtext></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mn mathvariant="bold">0</mml:mn><mml:mtext>.</mml:mtext></mml:mrow></mml:math></disp-formula>

          Contrary to the former formulation, here the total displacement vector <inline-formula><mml:math display="inline"><mml:mi mathvariant="bold-italic">u</mml:mi></mml:math></inline-formula>
is used. This is convenient because the constraint equations will be
formulated in terms of the total displacements as well. The general set of
constraint equations are noted as

                <disp-formula id="Ch1.E26" content-type="numbered"><mml:math display="block"><mml:mrow><mml:msub><mml:mi mathvariant="script">F</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mi mathvariant="bold">A</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>)</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>-</mml:mo><mml:mi mathvariant="bold-italic">b</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mn mathvariant="bold">0</mml:mn></mml:mrow></mml:math></disp-formula>

          and adding the constraints as Lagrange multiplier terms to the system in
Eq. (<xref ref-type="disp-formula" rid="Ch1.E25"/>), see <xref ref-type="bibr" rid="bib1.bibx8" id="text.30"/> for a concise
explanation, gives

                <disp-formula id="Ch1.E27" content-type="numbered"><mml:math display="block"><mml:mrow><mml:msub><mml:mi mathvariant="script">F</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="bold">K</mml:mi><mml:mtext>s</mml:mtext></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>)</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>+</mml:mo><mml:mi mathvariant="bold">A</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:msup><mml:mo>)</mml:mo><mml:mi>T</mml:mi></mml:msup><mml:mi mathvariant="bold-italic">λ</mml:mi><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">F</mml:mi><mml:mtext>e</mml:mtext></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mn mathvariant="bold">0</mml:mn><mml:mtext>.</mml:mtext></mml:mrow></mml:math></disp-formula>

          The set of equations in <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="script">F</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="script">F</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> collected into
the so called augmented form

                <disp-formula id="Ch1.E28" content-type="numbered"><mml:math display="block"><mml:mrow><mml:mfenced open="[" close="]"><mml:mtable class="array" columnalign="center center"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="bold">K</mml:mi><mml:mtext>s</mml:mtext></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mi mathvariant="bold">A</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:msup><mml:mo>)</mml:mo><mml:mi>T</mml:mi></mml:msup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mi mathvariant="bold">A</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mn mathvariant="bold">0</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mfenced open="(" close=")"><mml:mtable class="array" columnalign="center"><mml:mtr><mml:mtd><mml:mi mathvariant="bold-italic">u</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi mathvariant="bold-italic">λ</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>=</mml:mo><mml:mfenced close=")" open="("><mml:mtable class="array" columnalign="center"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">F</mml:mi><mml:mtext>e</mml:mtext></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mi mathvariant="bold-italic">b</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:math></disp-formula>

          is normally solved simultaneously for both <inline-formula><mml:math display="inline"><mml:mi mathvariant="bold-italic">u</mml:mi></mml:math></inline-formula> and the Lagrange
multipliers <inline-formula><mml:math display="inline"><mml:mi mathvariant="bold-italic">λ</mml:mi></mml:math></inline-formula> which, pre-multiplied by the <inline-formula><mml:math display="inline"><mml:mi mathvariant="bold">A</mml:mi></mml:math></inline-formula> matrix, can
be interpreted as the forces needed to impose the conditions.</p>
      <p>Taking the total derivative of both vector equations <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="script">F</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> and
<inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="script">F</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, applying the product rule and the chain rule and collecting
<inline-formula><mml:math display="inline"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">u</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:math></inline-formula> and
<inline-formula><mml:math display="inline"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">λ</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:math></inline-formula> gives

                <disp-formula specific-use="align" content-type="numbered"><mml:math display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi mathvariant="script">F</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mfenced close=")" open="("><mml:msub><mml:mi mathvariant="bold">K</mml:mi><mml:mtext>s</mml:mtext></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mfenced close="]" open="["><mml:msub><mml:mi mathvariant="bold">K</mml:mi><mml:mtext>s</mml:mtext></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>)</mml:mo><mml:mover accent="true"><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover></mml:mfenced></mml:mrow><mml:mi mathvariant="bold-italic">u</mml:mi></mml:mfrac></mml:mstyle><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">F</mml:mi><mml:mtext>e</mml:mtext></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">u</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>+</mml:mo><mml:mi mathvariant="bold">A</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:msup><mml:mo>)</mml:mo><mml:mi>T</mml:mi></mml:msup><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">λ</mml:mi></mml:mrow><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mfenced open="[" close="]"><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi mathvariant="bold">K</mml:mi><mml:mtext>s</mml:mtext></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover><mml:mo>)</mml:mo><mml:mover accent="true"><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover></mml:mfenced></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mtr><mml:mlabeledtr id="Ch1.E29"><mml:mtd/><mml:mtd/><mml:mtd><mml:mrow><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mfenced open="[" close="]"><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold">A</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:msup><mml:mo>)</mml:mo><mml:mi>T</mml:mi></mml:msup><mml:mover accent="true"><mml:mi mathvariant="bold-italic">λ</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover></mml:mfenced></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">F</mml:mi><mml:mtext>e</mml:mtext></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mn mathvariant="bold">0</mml:mn></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

            and

                <disp-formula id="Ch1.E30" content-type="numbered"><mml:math display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi mathvariant="script">F</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mi mathvariant="bold">A</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>)</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">u</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mo>[</mml:mo><mml:mi mathvariant="bold">A</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>)</mml:mo><mml:mover accent="true"><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">b</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mn mathvariant="bold">0</mml:mn><mml:mtext>.</mml:mtext></mml:mrow></mml:math></disp-formula>

          Here and in the following the tilde <inline-formula><mml:math display="inline"><mml:mover accent="true"><mml:mrow><mml:mo>(</mml:mo><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mo>)</mml:mo></mml:mrow><mml:mo mathvariant="normal">̃</mml:mo></mml:mover></mml:math></inline-formula> means that the
variable is held constant during differentiation. Notice that for the terms
containing <inline-formula><mml:math display="inline"><mml:mrow><mml:mi mathvariant="bold">A</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math display="inline"><mml:mrow><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math display="inline"><mml:mrow><mml:mi mathvariant="bold-italic">b</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math display="inline"><mml:mrow><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> in the present work
the total derivative is directly available as will be shown in Sect. <xref ref-type="sec" rid="Ch1.S2.SS5"/>,
and thus the chain rule is not being applied to those
terms. The following relations between secant and tangent stiffness matrices
and between the secant matrix and the internal force vector are given in <xref ref-type="bibr" rid="bib1.bibx32" id="text.31"/>

                <disp-formula specific-use="align" content-type="numbered"><mml:math display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E31"><mml:mtd/><mml:mtd/><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="bold">K</mml:mi><mml:mtext>t</mml:mtext></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="bold">K</mml:mi><mml:mtext>s</mml:mtext></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mfenced close="]" open="["><mml:msub><mml:mi mathvariant="bold">K</mml:mi><mml:mtext>s</mml:mtext></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>)</mml:mo><mml:mover accent="true"><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover></mml:mfenced></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E32"><mml:mtd/><mml:mtd/><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mfenced close="]" open="["><mml:msub><mml:mi mathvariant="bold">K</mml:mi><mml:mtext>s</mml:mtext></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover><mml:mo>)</mml:mo><mml:mover accent="true"><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover></mml:mfenced></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">F</mml:mi><mml:mtext>i</mml:mtext></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

            Substituting Eqs. (<xref ref-type="disp-formula" rid="Ch1.E31"/>) and (<xref ref-type="disp-formula" rid="Ch1.E32"/>) into Eqs. (<xref ref-type="disp-formula" rid="Ch1.E29"/>)
and (<xref ref-type="disp-formula" rid="Ch1.E30"/>) and rearranging them into matrix form gives

                <disp-formula specific-use="align" content-type="numbered"><mml:math display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mfenced close="]" open="["><mml:mtable class="array" columnalign="center center"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="bold">K</mml:mi><mml:mtext>t</mml:mtext></mml:msub><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">F</mml:mi><mml:mtext>e</mml:mtext></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mi mathvariant="bold">A</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:msup><mml:mo>)</mml:mo><mml:mi>T</mml:mi></mml:msup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mi mathvariant="bold">A</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mn mathvariant="bold">0</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mfenced close=")" open="("><mml:mtable class="array" columnalign="center"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">u</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">λ</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>=</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mlabeledtr id="Ch1.E33"><mml:mtd/><mml:mtd/><mml:mtd><mml:mrow><mml:mfenced open="(" close=")"><mml:mtable class="array" columnalign="center"><mml:mtr><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">F</mml:mi><mml:mtext>e</mml:mtext></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">F</mml:mi><mml:mtext>i</mml:mtext></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mfenced open="[" close="]"><mml:mi mathvariant="bold">A</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:msup><mml:mo>)</mml:mo><mml:mi>T</mml:mi></mml:msup><mml:mover accent="true"><mml:mi mathvariant="bold-italic">λ</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover></mml:mfenced></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">b</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mfenced close="]" open="["><mml:mi mathvariant="bold">A</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>)</mml:mo><mml:mover accent="true"><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover></mml:mfenced></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

            which can be solved for <inline-formula><mml:math display="inline"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">u</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:math></inline-formula>.
Consider that in the case that the external forces are not depending on the
displacements, e.g. no follower forces or pressure, the coefficient matrix on
the left hand side is equal to the coefficient matrix used for the analysis
steps, and is therefore already available in inverted form. This can save
considerable computation time. The used constraint equations and its
derivative terms are elaborated in Sect. <xref ref-type="sec" rid="Ch1.S2.SS5"/>.</p>
</sec>
<sec id="Ch1.S2.SS5">
  <title>Boundary constraint equations and derivatives</title>
<sec id="Ch1.S2.SS5.SSS1">
  <title>Constraint equations</title>
      <p>In the current setting the system is loaded by applying displacements
typically at the endpoints of the beam. Thereby the forces appear as reaction
forces of the applied constraints instead of external forces. Once the
displacement is applied, equilibrium can be found and the energy is derived.
Displacements in this case can also mean rotations. In a typical example one
would clamp one end of the beam, i.e. both translations and rotations zero,
and apply a given motion on the other end, e.g. travelling along a curved
line, or applying a rotation at a fixed point.</p>
      <p>There is a complication that arises from the use of the isogeometric analysis
method. From the rotation-less character of the control points, it follows
that rotations cannot be directly applied. Instead, as described earlier in
<xref ref-type="bibr" rid="bib1.bibx29" id="text.32"/>, a set of nonlinear constraints is applied
that dictates the position of the second control point with respect to the
first one. It is a given notion that the line connecting the first and the
second control point is tangent to the beginning of the curve and, similarly,
the line connecting the second-last to the last control point is tangent to
the end of the curve. In the following only the beginning of the curve is
considered, omitting the end of the curve. All the equations are similarly
derivable replacing the subscripts 1 and 2 by <inline-formula><mml:math display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula> <inline-formula><mml:math display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula> 1 and <inline-formula><mml:math display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula>.</p>
      <p>In general there are two types of constraints that are applied to the beam.
The first is a linear set <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">A</mml:mi><mml:mtext>l</mml:mtext></mml:msub><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="bold-italic">u</mml:mi></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">b</mml:mi><mml:mtext>l</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> prescribing the
displacement on the endpoints as

                  <disp-formula id="Ch1.E34" content-type="numbered"><mml:math display="block"><mml:mrow><mml:mfenced close="]" open="["><mml:mtable class="array" columnalign="center center center center center"><mml:mtr><mml:mtd><mml:mn mathvariant="normal">1</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mi mathvariant="normal">…</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">1</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mi mathvariant="normal">…</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mfenced open="(" close=")"><mml:mtable class="array" columnalign="center"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">1</mml:mn><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">1</mml:mn><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi mathvariant="normal">⋮</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>=</mml:mo><mml:mfenced open="(" close=")"><mml:mtable class="array" columnalign="center"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">1</mml:mn><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">1</mml:mn><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:math></disp-formula>

            where <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">1</mml:mn><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">1</mml:mn><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> are the applied <inline-formula><mml:math display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula> displacements. There
are cases where the applied displacement is made dependent on the design
vector <inline-formula><mml:math display="inline"><mml:mi mathvariant="bold-italic">x</mml:mi></mml:math></inline-formula>. For instance in the design example given in Sect. <xref ref-type="sec" rid="Ch1.S3"/>,
where the endpoint of the beam is pre-stressed by
positioning the endpoint at the origin of the coordinate system. Here
<inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> <inline-formula><mml:math display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> <inline-formula><mml:math display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, and thus
<inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">b</mml:mi><mml:mtext>l</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">b</mml:mi><mml:mtext>l</mml:mtext></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>.</p>
      <p>The second type of constraints concerns the rotations and is somewhat more
involved. The inclination <inline-formula><mml:math display="inline"><mml:mi>h</mml:mi></mml:math></inline-formula> of the tangent line at the beginning of the
curve is defined as

                  <disp-formula id="Ch1.E35" content-type="numbered"><mml:math display="block"><mml:mrow><mml:mi>h</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mi>tan⁡</mml:mi><mml:mfenced close=")" open="("><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi mathvariant="italic">θ</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>)</mml:mo></mml:mfenced></mml:mrow></mml:math></disp-formula>

            where <inline-formula><mml:math display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi mathvariant="italic">θ</mml:mi></mml:mrow></mml:math></inline-formula> is the difference of the current angle <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> from
the an initial angle <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>. The initial angle depends on the design
vector <inline-formula><mml:math display="inline"><mml:mi mathvariant="bold-italic">x</mml:mi></mml:math></inline-formula> and the current angle <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> on both the design
vector <inline-formula><mml:math display="inline"><mml:mi mathvariant="bold-italic">x</mml:mi></mml:math></inline-formula> and the displacements vector <inline-formula><mml:math display="inline"><mml:mi mathvariant="bold-italic">u</mml:mi></mml:math></inline-formula>. Therefore the inclination <inline-formula><mml:math display="inline"><mml:mi>h</mml:mi></mml:math></inline-formula> is is
nonlinear in both <inline-formula><mml:math display="inline"><mml:mi mathvariant="bold-italic">x</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math display="inline"><mml:mi mathvariant="bold-italic">u</mml:mi></mml:math></inline-formula>. The inclination <inline-formula><mml:math display="inline"><mml:mi>h</mml:mi></mml:math></inline-formula> must equal the
inclination of the line crossing the first two control points

                  <disp-formula id="Ch1.E36" content-type="numbered"><mml:math display="block"><mml:mrow><mml:mi>h</mml:mi><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mfenced open="(" close=")"><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">2</mml:mn><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">2</mml:mn><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mfenced><mml:mo>-</mml:mo><mml:mfenced open="(" close=")"><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">1</mml:mn><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">1</mml:mn><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mfenced></mml:mrow><mml:mrow><mml:mfenced open="(" close=")"><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">2</mml:mn><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">2</mml:mn><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mfenced><mml:mo>-</mml:mo><mml:mfenced close=")" open="("><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">1</mml:mn><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">1</mml:mn><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mfenced></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

            Rewriting and separating the displacements terms gives the nonlinear set of
constraints <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">A</mml:mi><mml:mtext>nl</mml:mtext></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math display="inline"><mml:mrow><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math display="inline"><mml:mi mathvariant="bold-italic">u</mml:mi></mml:math></inline-formula> <inline-formula><mml:math display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">b</mml:mi><mml:mtext>nl</mml:mtext></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math display="inline"><mml:mrow><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> as

                  <disp-formula specific-use="align" content-type="numbered"><mml:math display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mfenced close="]" open="["><mml:mtable class="array" columnalign="center center center center center"><mml:mtr><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:mi>h</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mn mathvariant="normal">1</mml:mn></mml:mtd><mml:mtd><mml:mrow><mml:mi>h</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:mtd><mml:mtd><mml:mi mathvariant="normal">…</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mfenced close=")" open="("><mml:mtable class="array" columnalign="center"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">1</mml:mn><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">1</mml:mn><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">2</mml:mn><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">2</mml:mn><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi mathvariant="normal">⋮</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mlabeledtr id="Ch1.E37"><mml:mtd/><mml:mtd/><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mfenced close="]" open="["><mml:mtable class="array" columnalign="center"><mml:mtr><mml:mtd><mml:mrow><mml:mi>h</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>)</mml:mo><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">1</mml:mn><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">1</mml:mn><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:mi>h</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>)</mml:mo><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">2</mml:mn><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">2</mml:mn><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

              The matrices <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">A</mml:mi><mml:mtext>l</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">A</mml:mi><mml:mtext>nl</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> and the
vectors <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">b</mml:mi><mml:mtext>l</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">b</mml:mi><mml:mtext>nl</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> can be simply concatenated
vertically to form a set of equations <inline-formula><mml:math display="inline"><mml:mrow><mml:mi mathvariant="bold">A</mml:mi><mml:mi mathvariant="bold-italic">u</mml:mi></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> <inline-formula><mml:math display="inline"><mml:mi mathvariant="bold-italic">b</mml:mi></mml:math></inline-formula> to
be added to the system as Lagrange constraints, as described in Sect. <xref ref-type="sec" rid="Ch1.S2.SS4"/>.</p>
</sec>
<sec id="Ch1.S2.SS5.SSS2">
  <title>Derivatives of constraint equations</title>
      <p>The derivatives of the constraint equations, needed in Eq. (<xref ref-type="disp-formula" rid="Ch1.E33"/>), will be derived next.</p>
      <p>For the linear part of the constraints only the case where <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">b</mml:mi><mml:mtext>l</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula>
is a function of <inline-formula><mml:math display="inline"><mml:mi mathvariant="bold-italic">x</mml:mi></mml:math></inline-formula>,
i.e. <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">b</mml:mi><mml:mtext>l</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">b</mml:mi><mml:mtext>l</mml:mtext></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, is mentioned. This
is the case when e.g. a pre-stress proportional to a design parameter is
applied to the system. Typically, if <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">b</mml:mi><mml:mtext>l</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> is linear in
<inline-formula><mml:math display="inline"><mml:mi mathvariant="bold-italic">x</mml:mi></mml:math></inline-formula>, the total derivative
<inline-formula><mml:math display="inline"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi mathvariant="bold-italic">b</mml:mi><mml:mtext>l</mml:mtext></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:math></inline-formula> is a vector
of constants.</p>
      <p>The derivations for the nonlinear part of the constraints requires more
attention. The following holds

                  <disp-formula specific-use="align" content-type="numbered"><mml:math display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi mathvariant="bold-italic">b</mml:mi><mml:mtext>nl</mml:mtext></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mtr><mml:mlabeledtr id="Ch1.E38"><mml:mtd/><mml:mtd/><mml:mtd><mml:mrow><mml:mspace width="0.25em" linebreak="nobreak"/><?xmltex \hack{\hbox\bgroup\fontsize{8.5}{8.5}\selectfont$\displaystyle}?><mml:mo>=</mml:mo><mml:mfenced open="(" close=")"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>h</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced open="(" close=")"><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">1</mml:mn><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">2</mml:mn><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mfenced><mml:mo>+</mml:mo><mml:mi>h</mml:mi><mml:mfenced open="(" close=")"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">1</mml:mn><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">2</mml:mn><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">1</mml:mn><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">2</mml:mn><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mo>,</mml:mo><?xmltex \hack{$\egroup}?></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E39"><mml:mtd/><mml:mtd/><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mfenced open="[" close="]"><mml:msub><mml:mi mathvariant="bold">A</mml:mi><mml:mtext>nl</mml:mtext></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>)</mml:mo><mml:mover accent="true"><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover></mml:mfenced></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mfenced open="(" close=")"><mml:mtable class="array" columnalign="center"><mml:mtr><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>h</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced open="(" close=")"><mml:msub><mml:mi>u</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">2</mml:mn><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">1</mml:mn><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mfenced></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

              and

                  <disp-formula id="Ch1.E40" content-type="numbered"><mml:math display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mfenced close="]" open="["><mml:msub><mml:mi mathvariant="bold">A</mml:mi><mml:mtext>nl</mml:mtext></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:msup><mml:mo>)</mml:mo><mml:mi>T</mml:mi></mml:msup><mml:mover accent="true"><mml:mi mathvariant="bold-italic">λ</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover></mml:mfenced></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mfenced close=")" open="("><mml:mtable class="array" columnalign="center"><mml:mtr><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>h</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mi mathvariant="italic">λ</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>.</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>h</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mi mathvariant="italic">λ</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>.</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi mathvariant="normal">⋮</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

            In these equations the derivative of <inline-formula><mml:math display="inline"><mml:mi>h</mml:mi></mml:math></inline-formula> is calculated as

                  <disp-formula specific-use="align" content-type="numbered"><mml:math display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>h</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi mathvariant="normal">d</mml:mi><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced close=")" open="("><mml:mi>tan⁡</mml:mi><mml:mfenced close=")" open="("><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi mathvariant="italic">θ</mml:mi></mml:mfenced></mml:mfenced><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi mathvariant="normal">d</mml:mi><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced open="(" close=")"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi mathvariant="italic">θ</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi mathvariant="italic">θ</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mlabeledtr id="Ch1.E41"><mml:mtd/><mml:mtd/><mml:mtd><mml:mrow><?xmltex \hack{\hbox\bgroup\fontsize{8.5}{8.5}\selectfont$\displaystyle}?><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mfenced open="(" close=")"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>h</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi mathvariant="italic">θ</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mfenced open="(" close=")"><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi mathvariant="italic">θ</mml:mi></mml:mrow></mml:msub></mml:mfenced><mml:mo>+</mml:mo><mml:mfenced close=")" open="("><mml:msub><mml:mi>h</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi mathvariant="italic">θ</mml:mi></mml:mrow></mml:msub></mml:mfenced><mml:mfenced close=")" open="("><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>h</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi mathvariant="italic">θ</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi mathvariant="italic">θ</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced></mml:mrow><mml:mrow><mml:msup><mml:mfenced close=")" open="("><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi mathvariant="italic">θ</mml:mi></mml:mrow></mml:msub></mml:mfenced><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><?xmltex \hack{$\egroup}?></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

              where <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi mathvariant="italic">θ</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is a shorthand notation for <inline-formula><mml:math display="inline"><mml:mrow><mml:mi>tan⁡</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi mathvariant="italic">θ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>,
<inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> is the initial inclination and their derivatives are given respectively by

                  <disp-formula id="Ch1.E42" content-type="numbered"><mml:math display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi mathvariant="italic">θ</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mtext>sec</mml:mtext><mml:mo>(</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi mathvariant="italic">θ</mml:mi><mml:mo>)</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi mathvariant="italic">θ</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:math></disp-formula>

            and

                  <disp-formula id="Ch1.E43" content-type="numbered"><mml:math display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>h</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi mathvariant="normal">d</mml:mi><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced close=")" open="("><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">2</mml:mn><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">1</mml:mn><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">2</mml:mn><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">1</mml:mn><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

            Now <inline-formula><mml:math display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi mathvariant="italic">θ</mml:mi></mml:mrow></mml:math></inline-formula>, which is the difference between the current angle <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>
and the initial angle <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, is split up in the angle of the
converged solution of the last iterative step <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, the angle that
is imposed in the current iteration <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mtext>step</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula>, which is known and
fixed, minus the reference angle <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>. This is a precaution measure. In
fact, in the case that a rotation is applied from rest, <inline-formula><mml:math display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi mathvariant="italic">θ</mml:mi></mml:mrow></mml:math></inline-formula> is
known and fixed. But in the case that the loading history is not fully known,
e.g. a pre-stress is applied, than <inline-formula><mml:math display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi mathvariant="italic">θ</mml:mi></mml:mrow></mml:math></inline-formula> could contain a certain
unknown rotation induced by a previous step. In order to avoid this type of
error we define

                  <disp-formula id="Ch1.E44" content-type="numbered"><mml:math display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi mathvariant="italic">θ</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi mathvariant="normal">d</mml:mi><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced open="(" close=")"><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mtext>step</mml:mtext></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mfenced><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:math></disp-formula>

            where

                  <disp-formula id="Ch1.E45" content-type="numbered"><mml:math display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi mathvariant="normal">d</mml:mi><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced open="(" close=")"><mml:msup><mml:mi>tan⁡</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mfenced close=")" open="("><mml:msub><mml:mi>h</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mfenced></mml:mfenced><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:msup><mml:mfenced close=")" open="("><mml:msub><mml:mi>h</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mfenced><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>h</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:math></disp-formula>

            is fairly simple to find, and where the following term is used which has been
calculated at the end of the previous converged solution step, where the
derivative of the state vector was already solved:

                  <disp-formula id="Ch1.E46" content-type="numbered"><mml:math display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">u</mml:mi></mml:mrow><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

            The partial derivatives that are needed are

                  <disp-formula id="Ch1.E47" content-type="numbered"><mml:math display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced open="(" close=")"><mml:msup><mml:mi>tan⁡</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mfenced open="(" close=")"><mml:msub><mml:mi>h</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mfenced></mml:mfenced><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:msup><mml:mfenced open="(" close=")"><mml:msub><mml:mi>h</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mfenced><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:math></disp-formula>

            and

                  <disp-formula id="Ch1.E48" content-type="numbered"><mml:math display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced close=")" open="("><mml:msup><mml:mi>tan⁡</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mfenced open="(" close=")"><mml:msub><mml:mi>h</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mfenced></mml:mfenced><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:msup><mml:mfenced open="(" close=")"><mml:msub><mml:mi>h</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mfenced><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:math></disp-formula>

            which turn out to be the same since

                  <disp-formula id="Ch1.E49" content-type="numbered"><mml:math display="block"><mml:mrow><?xmltex \hack{\hbox\bgroup\fontsize{9.5}{9.5}\selectfont$\displaystyle}?><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:msup><mml:mfenced open="[" close="]"><mml:mtable class="array" columnalign="center"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mfenced close=")" open="("><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">2</mml:mn><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">2</mml:mn><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mfenced><mml:mo>-</mml:mo><mml:mfenced close=")" open="("><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">1</mml:mn><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">1</mml:mn><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mfenced></mml:mrow><mml:mrow><mml:msup><mml:mfenced close=")" open="("><mml:mfenced close=")" open="("><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">2</mml:mn><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">2</mml:mn><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mfenced><mml:mo>-</mml:mo><mml:mfenced close=")" open="("><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">1</mml:mn><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">1</mml:mn><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mfenced></mml:mfenced><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:mfenced open="(" close=")"><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">2</mml:mn><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">2</mml:mn><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mfenced><mml:mo>-</mml:mo><mml:mfenced open="(" close=")"><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">1</mml:mn><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">1</mml:mn><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mfenced></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mfenced close=")" open="("><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">2</mml:mn><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">2</mml:mn><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mfenced><mml:mo>-</mml:mo><mml:mfenced open="(" close=")"><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">1</mml:mn><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">1</mml:mn><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mfenced></mml:mrow><mml:mrow><mml:msup><mml:mfenced open="(" close=")"><mml:mfenced close=")" open="("><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">2</mml:mn><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">2</mml:mn><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mfenced><mml:mo>-</mml:mo><mml:mfenced open="(" close=")"><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">1</mml:mn><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">1</mml:mn><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mfenced></mml:mfenced><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:mfenced open="(" close=")"><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">2</mml:mn><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">2</mml:mn><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mfenced><mml:mo>-</mml:mo><mml:mfenced close=")" open="("><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">1</mml:mn><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">1</mml:mn><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mfenced></mml:mrow></mml:mfrac></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi mathvariant="normal">⋮</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mi>T</mml:mi></mml:msup><mml:mo>.</mml:mo><?xmltex \hack{$\egroup}?></mml:mrow></mml:math></disp-formula>

            At this point Eqs. (<xref ref-type="disp-formula" rid="Ch1.E38"/>)–(<xref ref-type="disp-formula" rid="Ch1.E40"/>) are fully defined and can be
used to find <inline-formula><mml:math display="inline"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">u</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:math></inline-formula> in
Eq. (<xref ref-type="disp-formula" rid="Ch1.E33"/>).</p>
</sec>
</sec>
<sec id="Ch1.S2.SS6">
  <title>Refinement term</title>
      <p>In geometric design optimization it is a common use to define a geometry at a
level with relatively few parameters which is refined to a more dense level
at which the analysis is performed. Commonly this is done by meshing, while
in isogeometric analysis there are so called refinement techniques, where the
same spline curve is refined to a spline with more control points and/or
higher order basis functions, but maintaining the exact original shape. It is
not worth going much into detail here, given the amount and quality of
literature on this topic, e.g. <xref ref-type="bibr" rid="bib1.bibx25 bib1.bibx4" id="text.33"/>.</p>
      <p>The Jacobian of <inline-formula><mml:math display="inline"><mml:mi mathvariant="bold-italic">x</mml:mi></mml:math></inline-formula>, the refined design vector, with respect to <inline-formula><mml:math display="inline"><mml:mi mathvariant="bold-italic">X</mml:mi></mml:math></inline-formula>,
the global design vector, is needed for the sensitivity of the objective with
respect to the global design vector.

                <disp-formula id="Ch1.E50" content-type="numbered"><mml:math display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">X</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">X</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:math></disp-formula>

          The derivation of term <inline-formula><mml:math display="inline"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">X</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:math></inline-formula> is not
within the scope of this paper, but can be found e.g. in <xref ref-type="bibr" rid="bib1.bibx28" id="text.34"/>.</p>
</sec>
<sec id="Ch1.S2.SS7">
  <title>Variable transform</title>
      <p>As a last (optional) step a transformation of variables on the global design
vector <inline-formula><mml:math display="inline"><mml:mi mathvariant="bold-italic">X</mml:mi></mml:math></inline-formula> to a generalized design vector <inline-formula><mml:math display="inline"><mml:mi mathvariant="bold-italic">q</mml:mi></mml:math></inline-formula> has been adopted. The
latter is a vector containing lengths <inline-formula><mml:math display="inline"><mml:mi>l</mml:mi></mml:math></inline-formula> and relative angles <inline-formula><mml:math display="inline"><mml:mi mathvariant="italic">θ</mml:mi></mml:math></inline-formula> of the
lines connecting the control points <inline-formula><mml:math display="inline"><mml:mi>B</mml:mi></mml:math></inline-formula> of the global design as if it where a
linkage chain, see Fig. <xref ref-type="fig" rid="Ch1.F3"/>. This way it becomes easy, by
imposing boundaries on the search space of the optimization, to avoid loops
in the curve and avoid consecutive control points lying to close to each
other. The first is done by bounding the angles avoiding too sharp corners in
the control polygon, and the second is realised by limiting the minimum
lengths of the links. In general this avoids awkward shapes that are undesired.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F3"><caption><p>Transformation of coordinates of the control points in a set of
generalized coordinates, described by the lengths and angles of the links of
a linkage chain representing the control polygon.</p></caption>
          <?xmltex \igopts{width=199.169291pt}?><graphic xlink:href="https://ms.copernicus.org/articles/7/219/2016/ms-7-219-2016-f03.pdf"/>

        </fig>

      <p>The transformation is defined as

                <disp-formula id="Ch1.E51" content-type="numbered"><mml:math display="block"><mml:mrow><mml:mi mathvariant="bold-italic">X</mml:mi><mml:mo>=</mml:mo><mml:mfenced close="]" open="["><mml:mtable class="array" columnalign="center"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>B</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">1</mml:mn><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>B</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">1</mml:mn><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>B</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">2</mml:mn><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>B</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">2</mml:mn><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>B</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">3</mml:mn><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>B</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">3</mml:mn><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>B</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">4</mml:mn><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>B</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">4</mml:mn><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>=</mml:mo><mml:mfenced open="[" close="]"><mml:mtable class="array" columnalign="left"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub><mml:mi>c</mml:mi><mml:mfenced close=")" open="("><mml:msub><mml:mi>q</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub><mml:mi>s</mml:mi><mml:mfenced close=")" open="("><mml:msub><mml:mi>q</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub><mml:mi>c</mml:mi><mml:mfenced close=")" open="("><mml:msub><mml:mi>q</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mfenced><mml:mo>+</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mn mathvariant="normal">5</mml:mn></mml:msub><mml:mi>c</mml:mi><mml:mfenced open="(" close=")"><mml:msub><mml:mi>q</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mn mathvariant="normal">6</mml:mn></mml:msub></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub><mml:mi>s</mml:mi><mml:mfenced open="(" close=")"><mml:msub><mml:mi>q</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mfenced><mml:mo>+</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mn mathvariant="normal">5</mml:mn></mml:msub><mml:mi>s</mml:mi><mml:mfenced open="(" close=")"><mml:msub><mml:mi>q</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mn mathvariant="normal">6</mml:mn></mml:msub></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mn mathvariant="normal">7</mml:mn></mml:msub><mml:mi>c</mml:mi><mml:mfenced open="(" close=")"><mml:msub><mml:mi>q</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mn mathvariant="normal">6</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mn mathvariant="normal">8</mml:mn></mml:msub></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mn mathvariant="normal">7</mml:mn></mml:msub><mml:mi>s</mml:mi><mml:mfenced open="(" close=")"><mml:msub><mml:mi>q</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mn mathvariant="normal">6</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mn mathvariant="normal">8</mml:mn></mml:msub></mml:mfenced></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math display="inline"><mml:mi>c</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math display="inline"><mml:mi>s</mml:mi></mml:math></inline-formula> are the shorthand notations for <inline-formula><mml:math display="inline"><mml:mi>cos⁡</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math display="inline"><mml:mi>sin⁡</mml:mi></mml:math></inline-formula>, and
<inline-formula><mml:math display="inline"><mml:mi mathvariant="bold-italic">q</mml:mi></mml:math></inline-formula> defined as

                <disp-formula id="Ch1.E52" content-type="numbered"><mml:math display="block"><mml:mrow><mml:mi mathvariant="bold-italic">q</mml:mi><mml:mo>=</mml:mo><mml:mfenced close="]" open="["><mml:mtable class="array" columnalign="center center center center center center center center"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>B</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">1</mml:mn><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>B</mml:mi><mml:mrow><mml:msub><mml:mn mathvariant="normal">1</mml:mn><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>l</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>l</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>l</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          Note that in a design with more control points <inline-formula><mml:math display="inline"><mml:mi mathvariant="bold-italic">q</mml:mi></mml:math></inline-formula> can be longer than
shown, in that case the expression would expand in a similar fashion. For the
sensitivity of the objective with respect to the generalized variables
<inline-formula><mml:math display="inline"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">X</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">q</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:math></inline-formula> is needed because

                <disp-formula id="Ch1.E53" content-type="numbered"><mml:math display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">q</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">X</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">X</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">q</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          The full expression of <inline-formula><mml:math display="inline"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">X</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">q</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:math></inline-formula> is
omitted for the sake of conciseness. Its derivation can however be considered
straightforward. At this point all expressions for the sensitivity analysis
are derived.</p>
</sec>
</sec>
<sec id="Ch1.S3">
  <title>Design example</title>
      <p>To asses the usefulness of the gradients in the given design problem several
optimization runs are compared where one gradient-free algorithm and four
gradient-based algorithms are used. The first type only needs Eq. (<xref ref-type="disp-formula" rid="Ch1.E4"/>)
as an input, while the last four also use Eq. (<xref ref-type="disp-formula" rid="Ch1.E53"/>).
The algorithms implemented in the <italic>optimization toolbox</italic> in Matlab<sup>®</sup> are used: Nelder–Mead Simplex (NMS),
Trust-Region-Reflective (TRR), Interior-Point (IP), Active-Set (AS) and
Sequential Quadratic Programming (SQP). See the <xref ref-type="bibr" rid="bib1.bibx20" id="text.35"/>
documentation for details on the algorithms.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F4"><caption><p>Topology of the system: A leaf spring (red dashed) is pre-stressed
(black) by connecting one endpoint with a rigid pendulum, while the other end
of the spring is clamped.</p></caption>
        <?xmltex \igopts{width=170.716535pt}?><graphic xlink:href="https://ms.copernicus.org/articles/7/219/2016/ms-7-219-2016-f04.pdf"/>

      </fig>

      <p>Because of the high dependency with the starting point of the optimization,
the runs are all performed starting at two different initial points, chosen
such that the resulting behaviour would be clearly distinct.</p>
      <p>The case study is similar to the one found in
<xref ref-type="bibr" rid="bib1.bibx29" id="text.36"/>. The goal is to design a leaf spring able to
statically balance a pendulum in the range from 0 to 180<inline-formula><mml:math display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula>,
see Fig. <xref ref-type="fig" rid="Ch1.F4"/>. The objective is to make the reaction moment on
the end of the beam follow a sinus-shaped characteristic with respect to the
rotation of that point. Equivalently, knowing that the derivative of the
energy with respect to the rotation equals the moment, the target energy-path
<inline-formula><mml:math display="inline"><mml:mrow><mml:mover accent="true"><mml:mi>U</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mo>(</mml:mo><mml:mi mathvariant="italic">δ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> is defined as a negative cosine function bounded in
amplitude between 0 and 1, as prescribed for Eq. (<xref ref-type="disp-formula" rid="Ch1.E3"/>). Thus

              <disp-formula id="Ch1.E54" content-type="numbered"><mml:math display="block"><mml:mrow><mml:mover accent="true"><mml:mi>U</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mo>(</mml:mo><mml:mi mathvariant="italic">φ</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mi>cos⁡</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="italic">φ</mml:mi><mml:mo>)</mml:mo><mml:mo>)</mml:mo></mml:mrow><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle></mml:mrow></mml:math></disp-formula>

        where <inline-formula><mml:math display="inline"><mml:mi mathvariant="italic">φ</mml:mi></mml:math></inline-formula> is the rotation of the endpoint <inline-formula><mml:math display="inline"><mml:mi>P</mml:mi></mml:math></inline-formula>. Before this actual working
range a pre-stress step is applied where one endpoint stays clamped, and the
other end is brought to the origin of the coordinate system leaving the
rotation free. This guarantees that the moment before the first actual step
is zero, corresponding to the needed moment when the pendulum is upright.</p>
      <p>Some details on relevant design choices are: cross-sectional width and height
are 0.01 and 0.002 m, Young's modulus is 135 GPa. The design curve is
a second order B-spline with four control points and uniform knot vector. The
curve is refined for analysis with 20 additional knot evenly spread over the
knot vector. The used bounds on the variables of optimizations: <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> : [<inline-formula><mml:math display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>0.3,
0.3], <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mn mathvariant="normal">5</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mn mathvariant="normal">7</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> : [.1,0.4] and <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mn mathvariant="normal">6</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mn mathvariant="normal">8</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> : [<inline-formula><mml:math display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>2, 2].</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F5"><caption><p>Objective function value vs iteration number for the
algorithms Nelder–Mead Simplex (NMS), Trust-Region-Reflective (TRR),
Interior-Point (IP), Active-Set (AS) and Sequential Quadratic Programming (SQP).
<bold>(a)</bold> Example1 and <bold>(b)</bold> Example 2.</p></caption>
        <?xmltex \igopts{width=213.395669pt}?><graphic xlink:href="https://ms.copernicus.org/articles/7/219/2016/ms-7-219-2016-f05.pdf"/>

      </fig>

      <p>Figure <xref ref-type="fig" rid="Ch1.F5"/>a and b show the progress of the
objective function plotted against the iteration steps for the two initial points

              <disp-formula id="Ch1.E55" content-type="numbered"><mml:math display="block"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">q</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:mo>-</mml:mo><mml:mn>0.2</mml:mn><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mo>-</mml:mo><mml:mn>0.2</mml:mn><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mspace linebreak="nobreak" width="0.25em"/><mml:mn>0.2</mml:mn><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mn>1.5</mml:mn><mml:mspace linebreak="nobreak" width="0.25em"/><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mn>0.2</mml:mn><mml:mspace linebreak="nobreak" width="0.25em"/><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mo>-</mml:mo><mml:mn>1.5</mml:mn><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mn>0.2</mml:mn><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mspace linebreak="nobreak" width="0.25em"/><mml:mo>-</mml:mo><mml:mn>1.5</mml:mn><mml:mo>]</mml:mo></mml:mrow></mml:math></disp-formula>

        and

              <disp-formula id="Ch1.E56" content-type="numbered"><mml:math display="block"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">q</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:mo>-</mml:mo><mml:mn>0.2</mml:mn><mml:mspace linebreak="nobreak" width="0.25em"/><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mo>-</mml:mo><mml:mn>0.2</mml:mn><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mspace linebreak="nobreak" width="0.25em"/><mml:mn>0.2</mml:mn><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mn>1.5</mml:mn><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mspace linebreak="nobreak" width="0.25em"/><mml:mn>0.2</mml:mn><mml:mspace linebreak="nobreak" width="0.25em"/><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mo>-</mml:mo><mml:mn>1.5</mml:mn><mml:mspace linebreak="nobreak" width="0.25em"/><mml:mspace linebreak="nobreak" width="0.25em"/><mml:mn>0.2</mml:mn><mml:mspace linebreak="nobreak" width="0.25em"/><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mn>1.5</mml:mn><mml:mo>]</mml:mo><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

        The corresponding initial shapes and the energy trajectories are shown in
Figs. <xref ref-type="fig" rid="Ch1.F6"/>a–<xref ref-type="fig" rid="Ch1.F9"/>a. The shapes
and energy-paths after optimization (the best result obtained) are shown in
Figs. <xref ref-type="fig" rid="Ch1.F6"/>b–<xref ref-type="fig" rid="Ch1.F9"/>b. The thick
red lines in the shape plots is the unloaded shape of the beam, while the
thin blue lines represent the deformed states at the 15 load-steps. The red
line in each energy plot is the target energy-path <inline-formula><mml:math display="inline"><mml:mover accent="true"><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover></mml:math></inline-formula>, while the
blue crosses represent the actual normalized energy-path <inline-formula><mml:math display="inline"><mml:mover accent="true"><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover></mml:math></inline-formula>. The
optimized results have been evaluated at smaller increments of the
displacement to verify sufficient smoothness between the original increment
points. The energies at the smaller increments are shown as grey dots in
Fig. <xref ref-type="fig" rid="Ch1.F7"/>a and b.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F6"><caption><p>Example 1: shape in neutral position (red) and at the
15 increments of applied rotation of the endpoint about the origin (blue).
<bold>(a)</bold> Initial shape and <bold>(b)</bold> optimum shape.</p></caption>
        <?xmltex \igopts{width=184.942913pt}?><graphic xlink:href="https://ms.copernicus.org/articles/7/219/2016/ms-7-219-2016-f06.pdf"/>

      </fig>

      <?xmltex \floatpos{t}?><fig id="Ch1.F7"><caption><p>Example 1: target energy-path <inline-formula><mml:math display="inline"><mml:mover accent="true"><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover></mml:math></inline-formula> (red line),
normalized actual energy-path <inline-formula><mml:math display="inline"><mml:mover accent="true"><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover></mml:math></inline-formula> (blue crosses) and
normalized actual energy path at smaller increments
<inline-formula><mml:math display="inline"><mml:mrow><mml:msup><mml:mover accent="true"><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover><mml:mo>+</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> (grey dots). <bold>(a)</bold> Initial shape and
<bold>(b)</bold> optimum shape.</p></caption>
        <?xmltex \igopts{width=184.942913pt}?><graphic xlink:href="https://ms.copernicus.org/articles/7/219/2016/ms-7-219-2016-f07.pdf"/>

      </fig>

      <?xmltex \floatpos{t}?><fig id="Ch1.F8"><caption><p>Example 2: shape in neutral position (red) and at the 15 increments
of applied rotation of the endpoint about the origin (blue).
<bold>(a)</bold> Initial shape and <bold>(b)</bold> optimum shape.</p></caption>
        <?xmltex \igopts{width=184.942913pt}?><graphic xlink:href="https://ms.copernicus.org/articles/7/219/2016/ms-7-219-2016-f08.pdf"/>

      </fig>

      <?xmltex \floatpos{t}?><fig id="Ch1.F9"><caption><p>Example 2: target energy-path <inline-formula><mml:math display="inline"><mml:mover accent="true"><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover></mml:math></inline-formula> (red line),
normalized actual energy-path <inline-formula><mml:math display="inline"><mml:mover accent="true"><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover></mml:math></inline-formula> (blue crosses) and
normalized actual energy path at smaller increments
<inline-formula><mml:math display="inline"><mml:mrow><mml:msup><mml:mover accent="true"><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo mathvariant="normal">̃</mml:mo></mml:mover><mml:mo>+</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> (grey dots). <bold>(a)</bold> Initial shape and
<bold>(b)</bold> optimum shape.</p></caption>
        <?xmltex \igopts{width=184.942913pt}?><graphic xlink:href="https://ms.copernicus.org/articles/7/219/2016/ms-7-219-2016-f09.pdf"/>

      </fig>

</sec>
<sec id="Ch1.S4">
  <title>Comparison with finite differences</title>
      <p>This section is dedicated to a comparison of the result obtained in Sect. <xref ref-type="sec" rid="Ch1.S2"/>
with a numerical approximation of the sensitivity. The goal is
twofold. One is to verify the validity of the derived equations and the other
is to underline one advantage of the analytical sensitivity. Namely the
independence between sensitivity and perturbation size.</p>
      <p>In this analysis the gradient of the objective function with respect to the
generalized coordinated <inline-formula><mml:math display="inline"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">q</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:math></inline-formula> is
approximated by finite differences, using different perturbation sizes <inline-formula><mml:math display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula>
ranging from 10<inline-formula><mml:math display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn>18</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula> to 10<inline-formula><mml:math display="inline"><mml:msup><mml:mi/><mml:mn mathvariant="normal">0</mml:mn></mml:msup></mml:math></inline-formula>. The first is near or smaller than
machine precision, while the latter is in this case obviously an overly large
perturbation with respect to the physical dimensions of the system.</p>
      <p>An error norm is defined to compare the analytical sensitivities with the
finite difference sensitivities. The used norm is the normalized mean
error <inline-formula><mml:math display="inline"><mml:mi>e</mml:mi></mml:math></inline-formula> between the values of the analytical
<inline-formula><mml:math display="inline"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">q</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:math></inline-formula>, Eq. (<xref ref-type="disp-formula" rid="Ch1.E55"/>), and its
numerical approximation
<inline-formula><mml:math display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">q</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:msub><mml:mo>)</mml:mo><mml:mtext>FD</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula>.

              <disp-formula id="Ch1.E57" content-type="numbered"><mml:math display="block"><mml:mrow><mml:mi>e</mml:mi><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mtext>mean</mml:mtext><mml:mfenced close=")" open="("><mml:mfenced open="|" close="|"><mml:mfenced close=")" open="("><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">q</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mo>-</mml:mo><mml:msub><mml:mfenced close=")" open="("><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">q</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mtext>FD</mml:mtext></mml:msub></mml:mfenced></mml:mfenced></mml:mrow><mml:mrow><mml:mtext>mean</mml:mtext><mml:mfenced open="(" close=")"><mml:mfenced open="|" close="|"><mml:mfenced close=")" open="("><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">q</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced></mml:mfenced></mml:mfenced></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>
      <p>The analysis is performed at two different points. One is the first starting
point of the optimization shown in Sect. <xref ref-type="sec" rid="Ch1.S3"/>. Another is
near one of the found minima. The sensitivities at an optimum point are zero.
The error <inline-formula><mml:math display="inline"><mml:mi>e</mml:mi></mml:math></inline-formula> includes a division by zero in that case. Therefore this error
is evaluated at a point near an optimum, and not at an optimum.</p>
      <p>Figure <xref ref-type="fig" rid="Ch1.F10"/> shows the error <inline-formula><mml:math display="inline"><mml:mi>e</mml:mi></mml:math></inline-formula> for a range of perturbation
sizes. The blue line (crosses) represents the error at the start point <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">q</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>
and the red line (circles) represents the error at the point near the optimum.</p>
</sec>
<sec id="Ch1.S5">
  <title>Discussion</title>
      <p>The optimization runs on the given example are considered successful in the
sense that for both starting points, depending on the algorithm, a shape
could be found that matches the given energy-path closely. Closely means that
the significance of the remaining error is expected to be far beneath other
types of errors expected in a physical realization of the concept. The
optimized shapes have been analysed again with smaller increments of the
rotation. Minimal differences can be observed, meaning that the chosen amount
of load steps was suitable for this example.</p>
      <p>The objective function is non-convex, meaning that it cannot be guaranteed
that the global minima are found in the examples. However, in the current
scope it is not of practical relevance, as long as a “good-enough” minimum
is obtained. In fact the nature of the objective function, which cannot
become negative, tells that if the solution is close enough to zero within
relevant significance the goal has been achieved.</p>
      <p>The use of sensitivity information on the illustrated example has shown its
utility in Fig. <xref ref-type="fig" rid="Ch1.F5"/>a and b. It can be seen
that with respect to the Nelder–Mead Simplex algorithm, especially with the
Active-Set and the Sequential Quadratic Programming algorithms, either a
quicker (more efficient) or deeper (more effective) descent is realized, and
sometimes both. It is, however, not guaranteed that this is always the case.</p>
      <p>It is also noticed that the Interior-Point and the Trust-Region Reflective
algorithms fail to obtain either a lower minimum or a quicker descent. This
emphasizes the importance of the choice of the algorithm. Investigation on
the optimal algorithm has not been the scope of this paper but is an
important topic of further research. The optimal choice of the algorithm
could be subject to factors like the number of design variables, boundary
conditions and other constraints, and thus it may vary from case to case.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F10"><caption><p>Error between finite-difference sensitivity and analytical
sensitivities according to Eq. (<xref ref-type="disp-formula" rid="Ch1.E57"/>) at an initial configuration
<inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">q</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> and near one of the optimum configurations, plotted on a
range of perturbation sizes.</p></caption>
        <?xmltex \igopts{width=170.716535pt}?><graphic xlink:href="https://ms.copernicus.org/articles/7/219/2016/ms-7-219-2016-f10.pdf"/>

      </fig>

      <p>The comparison plots in Fig. <xref ref-type="fig" rid="Ch1.F5"/>a and b show
the number of iterations on the horizontal axis. It must be noted however
that for the Nelder–Mead Simplex the computation time of every iteration is
shorter because it does not need to compute the sensitivity terms. The time
saved at every iteration step highly depends on the performance of the code
and the used hardware. To give an indication: Based on a Matlab code running
on a Intel<sup>®.</sup> Core<inline-formula><mml:math display="inline"><mml:msup><mml:mi/><mml:mtext>TM</mml:mtext></mml:msup></mml:math></inline-formula> i7 processor
the additional computation cost for the sensitivity terms is about 60 %.
Nevertheless, the advantages of using sensitivity seem to hold.</p>
      <p>The finite difference check is quite satisfying. It shows that there is a
large range of perturbation sizes, from <inline-formula><mml:math display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula> <inline-formula><mml:math display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 10<inline-formula><mml:math display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">6</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula> to
<inline-formula><mml:math display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula> <inline-formula><mml:math display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 10<inline-formula><mml:math display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn>11</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula> where the difference between analytical and
finite-difference sensitivities is small. On the one hand this tells that the
calculations of the analytical sensitivities are correct. On the other hand
it says that within this range the numerical sensitivities would give similar
results, only less efficiently. However it still remains a risk that this
range may vary from case to case, rising the chance to obtain imprecise or
even useless numerical sensitivities.</p>
      <p>The points where the comparison is performed are at one of the starting
points of the optimization, and in the neighbourhood of the end of the
optimization run. As discussed above, it would make little sense to compare
the sensitivities at the end of an optimization run. Assuming this is an
optimum, the sensitivities would be zero. At an optimum
Eq. (<xref ref-type="disp-formula" rid="Ch1.E57"/>) would divide by zero giving an invalid error norm. It
is therefore not surprising that the error norm near the optimum solution is
higher than at a point far from an optimum. Similar tendencies as in
Fig. <xref ref-type="fig" rid="Ch1.F10"/> have been observed starting at various initial
points.</p>
      <p>In Sect. <xref ref-type="sec" rid="Ch1.S2.SS5.SSS2"/> a measure is taken to include the possibility to
apply pre-stress on the system, thus inducing the system into a configuration
where the angles of the endpoints are not known a priori. Pre-stress is
crucial in certain applications, especially those involving static balancing.
However, if this is not required, then the procedure described in
Sect. <xref ref-type="sec" rid="Ch1.S2.SS5.SSS2"/> will simplify significantly. Namely <inline-formula><mml:math display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>
becomes fixed and thus its derivative zero. This reduces Eq. (<xref ref-type="disp-formula" rid="Ch1.E44"/>) to

              <disp-formula id="Ch1.E58" content-type="numbered"><mml:math display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi mathvariant="italic">θ</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi mathvariant="bold-italic">x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:math></disp-formula>

        and the part after that, Eqs. (<xref ref-type="disp-formula" rid="Ch1.E45"/>)–(<xref ref-type="disp-formula" rid="Ch1.E49"/>), can be skipped.</p>
      <p>In the definition of an amplitude invariant objective function the assumption
was made that the sizing parameters would not affect the results. The
Euler–Bernoulli conditions must be met in order for the numerical model to be
valid in the first place. This means that shear terms are neglected and this
is true for relatively long and slender beams. In the second place, also the
stretch terms must be neglected in order for the thickness not to influence
the energy-path. For a beam with the same shape but different thickness,
namely, the stress condition is influenced by the stretch terms, and thus it
affects the deformation and stored energy. It is verified that in the given
example, multiplying the thickness by a factor of two yields a maximum
amplitude deviation of 2.5 %, and multiplying by a factor of ten yields a
deviation of 4 %. Care is thus needed in the choice of a suitable thickness
when designing such system. The width of the spring seems in practice the
most appropriate parameter to adjust after optimization without affecting the result.</p>
</sec>
<sec id="Ch1.S6" sec-type="conclusions">
  <title>Conclusions</title>
      <p>The paper presents the shape sensitivity analysis for the shape optimization
of beams with prescribed load-displacement response. The work is based on an
isogeometric framework. It has been shown that it is possible to derive the
sensitivity parameters for this type of problem analytically.</p>
      <p>A novel and general objective function is formulated for problems with
prescribed load-displacement response. The objective function is based on the
potential energy of the beam determined at discrete steps of the applied
displacement path.</p>
      <p>The travelled path is imposed by application of constraints on the endpoints
of the beam, involving displacements but also rotations, which is more
complex due to the rotation-less character of the degrees of freedom in
isogeometric analysis.</p>
      <p>The sensitivity of the state variables is determined through the direct
method, with special attention to the complications brought by nonlinear
equilibrium equations and the nonlinear constraints equations, applied as
Lagrange multipliers.</p>
      <p>The effect of the load history on the sensitivity analysis, e.g. by
application of pre-stress in a previous load-step, is neutralized by making
smart use of the sensitivities previously calculated for the previous load steps.</p>
      <p>The optimization is performed on an example where the optimal shape of a beam
is sought that is optimal for the static balancing of a pendulum. The
influence of the use of sensitivity information is shown by comparison on
different optimization algorithms, with and without the use of gradients. The
optimization results in very satisfying balancing springs. The use of
gradients is positively influencing the efficiency of the optimization,
although determining the algorithm that performs best is still an open question.</p>
      <p>The correctness of the derived sensitivity equations is verified by
comparison with finite-difference gradients. It is shown that the numerical
and the analytical gradients have a good match within a certain range of
perturbation sizes.</p>
</sec>
<sec id="Ch1.S7">
  <title>Data availability</title>
      <p>The matlab figure files that are used to generate the figures of this paper
are attached as Supplement.</p>
</sec>

      
      </body>
    <back><app-group>
        <supplementary-material position="anchor"><p><bold>The Supplement related to this article is available online at <inline-supplementary-material xlink:href="http://dx.doi.org/10.5194/ms-7-219-2016-supplement" xlink:title="zip">doi:10.5194/ms-7-219-2016-supplement</inline-supplementary-material>.</bold></p></supplementary-material>
        </app-group><ack><title>Acknowledgements</title><p>The authors would like to acknowledge STW (HTSM-2012 12814: ShellMech) for
the financial support of this project. <?xmltex \hack{\newline}?><?xmltex \hack{\newline}?>
Edited by: A. Eriksson <?xmltex \hack{\newline}?>
Reviewed by: A. Hatamizadeh and one anonymous referee</p></ack><ref-list>
    <title>References</title>

      <ref id="bib1.bibx1"><label>Bruns and Tortorelli(2001)</label><mixed-citation>Bruns, T. E. and Tortorelli, D. A.: Topology optimization of non-linear elastic
structures and compliant mechanisms, Comput. Meth. Appl. Mech. Eng., 190,
3443–3459, <ext-link xlink:href="http://dx.doi.org/10.1016/S0045-7825(00)00278-4" ext-link-type="DOI">10.1016/S0045-7825(00)00278-4</ext-link>, 2001.</mixed-citation></ref>
      <ref id="bib1.bibx2"><label>Chen and Zhang(2011)</label><mixed-citation>Chen, G. and Zhang, S.: Fully-compliant statically-balanced mechanisms without
prestressing assembly: concepts and case studies, Mech. Sci., 2, 169–174,
<ext-link xlink:href="http://dx.doi.org/10.5194/ms-2-169-2011" ext-link-type="DOI">10.5194/ms-2-169-2011</ext-link>, 2011.</mixed-citation></ref>
      <ref id="bib1.bibx3"><label>Cho and Ha(2009)</label><mixed-citation>Cho, S. and Ha, S.-H.: Isogeometric shape design optimization: exact geometry
and enhanced sensitivity, Struct. Multidiscip. Optimiz., 38, 53–70,
<ext-link xlink:href="http://dx.doi.org/10.1007/s00158-008-0266-z" ext-link-type="DOI">10.1007/s00158-008-0266-z</ext-link>, 2009.</mixed-citation></ref>
      <ref id="bib1.bibx4"><label>Cottrell et al.(2009)Cottrell, Hughes, and Bazilevs</label><mixed-citation>
Cottrell, J. A., Hughes, T. J. R., and Bazilevs, Y.: Isogeometric Analysis:
Toward Integration of CAD and FEA, John Wiley &amp; Sons, Chichester, England, 2009.</mixed-citation></ref>
      <ref id="bib1.bibx5"><label>Ding(1986)</label><mixed-citation>
Ding, Y.: Shape optimization of structures a literal survey, Comput. Struct.,
24, 985–1004, 1986.</mixed-citation></ref>
      <ref id="bib1.bibx6"><label>Du and Chen(2008)</label><mixed-citation>
Du, Y. and Chen, L.: Topology optimization for large-displacement compliant
mechanisms using element free galerkin method, Int. J. CAD/CAM, 8, 1–10, 2008.</mixed-citation></ref>
      <ref id="bib1.bibx7"><label>Eriksson(2014)</label><mixed-citation>Eriksson, A.: Constraint paths in non-linear structural optimization, Comput.
Struct., 140, 39–47, <ext-link xlink:href="http://dx.doi.org/10.1016/j.compstruc.2014.05.003" ext-link-type="DOI">10.1016/j.compstruc.2014.05.003</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bibx8"><label>Felippa(2004)</label><mixed-citation>Felippa, C. A.: Introduction to finite element methods (ASEN 5007), University
Lecture Notes, University of Colorado, <uri>http://www.colorado.edu/engineering/CAS/courses.d/IFEM.d/</uri>
(last access: 1 November 2016), 2004.</mixed-citation></ref>
      <ref id="bib1.bibx9"><label>Haftka(1985)</label><mixed-citation>Haftka, R. T.: Simultaneous analysis and design, AIAA J., 23, 1099–1103,
<ext-link xlink:href="http://dx.doi.org/10.2514/3.9043" ext-link-type="DOI">10.2514/3.9043</ext-link>, 1985.</mixed-citation></ref>
      <ref id="bib1.bibx10"><label>Hoetmer et al.(2010)Hoetmer, Woo, Kim, and Herder</label><mixed-citation>Hoetmer, K., Woo, G., Kim, C., and Herder, J.: Negative Stiffness Building
Blocks for Statically Balanced Compliant Mechanisms: Design and Testing,
J. Mech. Robot., 2, 041007-1-7, <ext-link xlink:href="http://dx.doi.org/10.1115/1.4002247" ext-link-type="DOI">10.1115/1.4002247</ext-link>, 2010.</mixed-citation></ref>
      <ref id="bib1.bibx11"><label>Howell(2001)</label><mixed-citation>
Howell, L. L.: Compliant Mechanisms, John Wiley and Sons Inc., New York, USA, 2001.</mixed-citation></ref>
      <ref id="bib1.bibx12"><label>Hsu(1994)</label><mixed-citation>
Hsu, Y.-L.: A review of structural shape optimization, Comput. Indust., 26, 3– 3, 1994.</mixed-citation></ref>
      <ref id="bib1.bibx13"><label>Hughes et al.(2005)Hughes, Cottrell, and Bazilevs</label><mixed-citation>Hughes, T., Cottrell, J., and Bazilevs, Y.: Isogeometric analysis: CAD, finite
elements, NURBS, exact geometry and mesh refinement, Comput. Meth. Appl. Mech.
Eng., 194, 4135–4195, <ext-link xlink:href="http://dx.doi.org/10.1016/j.cma.2004.10.008" ext-link-type="DOI">10.1016/j.cma.2004.10.008</ext-link>, 2005.</mixed-citation></ref>
      <ref id="bib1.bibx14"><label>Joo et al.(2001)Joo, Kota, and Kikuchi</label><mixed-citation>
Joo, J., Kota, S., and Kikuchi, N.: Large deformation behavior of compliant
mechanisms, Proceedings of DETC'01 ASME 2001 Design Engineering Technical
Conference and Computers and Information in Engineering Conference, 9–12 September 2001,
Pittsburgh, PA, 2001.</mixed-citation></ref>
      <ref id="bib1.bibx15"><label>Jutte and Kota(2010)</label><mixed-citation>Jutte, C. V. and Kota, S.: Design of Single, Multiple, and Scaled Nonlinear
Springs for Prescribed Nonlinear Responses, J. Mech. Design, 132, 011003,
<ext-link xlink:href="http://dx.doi.org/10.1115/1.4000595" ext-link-type="DOI">10.1115/1.4000595</ext-link>, 2010.</mixed-citation></ref>
      <ref id="bib1.bibx16"><label>Kiendl(2011)</label><mixed-citation>
Kiendl, J. M.: Isogeometric Analysis and Shape Optimal Design of Shell Structures,
PhD Thesis, Munich University of Technology, Munich, Germany, 2011.</mixed-citation></ref>
      <ref id="bib1.bibx17"><label>Koo et al.(2013)Koo, Ha, Kim, and Cho</label><mixed-citation>Koo, B., Ha, S.-H., Kim, H.-S., and Cho, S.: Isogeometric Shape Design Optimization
of Geometrically Nonlinear Structures, Mech. Bas. Design Struct. Mach., 41,
337–358, <ext-link xlink:href="http://dx.doi.org/10.1080/15397734.2012.750226" ext-link-type="DOI">10.1080/15397734.2012.750226</ext-link>, 2013.</mixed-citation></ref>
      <ref id="bib1.bibx18"><label>Lan et al.(2010)Lan, Wang, and Chen</label><mixed-citation>
Lan, C.-C., Wang, J.-H., and Chen, Y.-H.: A compliant constant-force mechanism
for adaptive robot end-effector operations, in: 2010 IEEE International Conference
on Robotics and Automation, Anchorage Convention District, 3–8 May 2010,
Anchorage, Alaska, USA, 2010.</mixed-citation></ref>
      <ref id="bib1.bibx19"><label>Leishman and Colton(2011)</label><mixed-citation>Leishman, L. C. and Colton, M. B.: A Pseudo-Rigid-Body Model Approach for the
Design of Compliant Mechanism Springs for Prescribed Force – Deflections, ASME,
93–102, <ext-link xlink:href="http://dx.doi.org/10.1115/DETC2011-47590" ext-link-type="DOI">10.1115/DETC2011-47590</ext-link>, 2011.</mixed-citation></ref>
      <ref id="bib1.bibx20"><label>Matlab®(2014)</label><mixed-citation>Matlab<sup>®</sup>: MATLAB and Optimization Toolbox
Release R2014a, The MathWorks, Inc., Natick, Massachusetts, USA,
<uri>http://www.mathworks.nl/help/releases/R2014a/pdf_doc/optim/optim_tb.pdf</uri>
(last access: 1 November 2016), 2014.</mixed-citation></ref>
      <ref id="bib1.bibx21"><label>Nagy(2011)</label><mixed-citation>
Nagy, A. P.: Isogeometric Design Opitmization, PhD Thesis, Delft University
of Technology, Delft, the Netherlands, 2011.</mixed-citation></ref>
      <ref id="bib1.bibx22"><label>Nagy et al.(2010)Nagy, Abdalla, and Gürdal</label><mixed-citation>Nagy, A. P., Abdalla, M. M., and Gürdal, Z.: Isogeometric sizing and shape
optimisation of beam structures, Comput. Meth. Appl. Mech. Eng., 199, 1216–1230,
<ext-link xlink:href="http://dx.doi.org/10.1016/j.cma.2009.12.010" ext-link-type="DOI">10.1016/j.cma.2009.12.010</ext-link>, 2010.</mixed-citation></ref>
      <ref id="bib1.bibx23"><label>Oh(2008)</label><mixed-citation>
Oh, Y.: Synthesis of Multistable Equilibrium Compliant Mechanisms, PhD Thesis,
The University of Michigan, Michigan, USA, 2008.</mixed-citation></ref>
      <ref id="bib1.bibx24"><label>Pedersen et al.(2005)Pedersen, Fleck, and Ananthasuresh</label><mixed-citation>Pedersen, C. B., Fleck, N. A., and Ananthasuresh, G. K.: Design of a Compliant
Mechanism to Modify an Actuator Characteristic to Deliver a Constant Output Force,
J. Mech. Design, 128, 1101–1112, <ext-link xlink:href="http://dx.doi.org/10.1115/1.2218883" ext-link-type="DOI">10.1115/1.2218883</ext-link>, 2005.</mixed-citation></ref>
      <ref id="bib1.bibx25"><label>Piegl and Tiller(1997)</label><mixed-citation>
Piegl, L. and Tiller, W.: The NURBS Book, 2nd Edn., Springer-Verlag, New York, NY, USA, 1997.</mixed-citation></ref>
      <ref id="bib1.bibx26"><label>Powell and Frecker(2005)</label><mixed-citation>Powell, K. M. and Frecker, M. I.: Method for Optimization of a Nonlinear Static
Balance Mechanism With Application to Ophthalmic Surgical Forceps, in: Proceedings
ASME IDETC/CIE 2005, 24–28 September 2005, Long Beach, California, USA, <ext-link xlink:href="http://dx.doi.org/10.1115/DETC2005-84759" ext-link-type="DOI">10.1115/DETC2005-84759</ext-link>, 2005.</mixed-citation></ref>
      <ref id="bib1.bibx27"><label>Pucheta and Cardona(2010)</label><mixed-citation>Pucheta, M. A. and Cardona, A.: Design of bistable compliant mechanisms using
precision – position and rigid-body replacement methods, Mech. Mach. Theory, 45,
304–326, <ext-link xlink:href="http://dx.doi.org/10.1016/j.mechmachtheory.2009.09.009" ext-link-type="DOI">10.1016/j.mechmachtheory.2009.09.009</ext-link>, 2010.</mixed-citation></ref>
      <ref id="bib1.bibx28"><label>Qian(2010)</label><mixed-citation>
Qian, X.: Full analytical sensitivities in NURBS based isogeometric shape
optimization, in: Computer Methods in Applied Mechanics and Engineering, 2010.</mixed-citation></ref>
      <ref id="bib1.bibx29"><label>Radaelli and Herder(2014)</label><mixed-citation>Radaelli, G. and Herder, J. L.: Isogeometric Shape Optimization for Compliant
Mechanisms with Prescribed Load Paths, in: Proceedings ASME IDETC/CIE 2014,
17–20 August 2014, Buffalo, New York, USA, <ext-link xlink:href="http://dx.doi.org/10.1115/DETC2014-35373" ext-link-type="DOI">10.1115/DETC2014-35373</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bibx30"><label>Rai et al.(2006)Rai, Saxena, Mankame, and Upadhyay</label><mixed-citation>Rai, A., Saxena, A., Mankame, N. D., and Upadhyay, C. S.: On Optimal Design of
Compliant Mechanisms for Specified Nonlinear Path Using Curved Frame Elements
and Genetic Algorithm, ASME 2006 International Design Engineering Technical
Conferences and Computers and Information in Engineering Conference, Vol. 2,
30th Annual Mechanisms and Robotics Conference, Parts A and B, 10–13 September 2006,
Philadelphia, Pennsylvania, USA, 91–100, <ext-link xlink:href="http://dx.doi.org/10.1115/DETC2006-99298" ext-link-type="DOI">10.1115/DETC2006-99298</ext-link>, 2006.
</mixed-citation></ref><?xmltex \hack{\newpage}?>
      <ref id="bib1.bibx31"><label>Ringertz(1989)</label><mixed-citation>Ringertz, U. T.: Optimization of Structures with Nonlinear Response, Eng. Optimiz.,
14, 179–188, <ext-link xlink:href="http://dx.doi.org/10.1080/03052158908941210" ext-link-type="DOI">10.1080/03052158908941210</ext-link>, 1989.</mixed-citation></ref>
      <ref id="bib1.bibx32"><label>Ryu et al.(1985)Ryu, Haririan, Wu, and Arora</label><mixed-citation>
Ryu, Y., Haririan, M., Wu, C., and Arora, J.: Structural design sensitivity
analysis of nonlinear response, Comput. Struct., 21, 245–255, 1985.</mixed-citation></ref>
      <ref id="bib1.bibx33"><label>Saxena and Ananthasuresh(1999)</label><mixed-citation>Saxena, A. and Ananthasuresh, G. K.: Topology Synthesis of Compliant Mechanisms
for Nonlinear Force – Deflection and Curved Path Specifications, J. Mech. Design,
123, 33–42, <ext-link xlink:href="http://dx.doi.org/10.1115/1.1333096" ext-link-type="DOI">10.1115/1.1333096</ext-link>, 1999.</mixed-citation></ref>
      <ref id="bib1.bibx34"><label>Sigmund(1997)</label><mixed-citation>Sigmund, O.: On the Design of Compliant Mechanisms Using Topology Optimization,
Mech. Struct. Mach., 25, 493–524, <ext-link xlink:href="http://dx.doi.org/10.1080/08905459708945415" ext-link-type="DOI">10.1080/08905459708945415</ext-link>, 1997.</mixed-citation></ref>
      <ref id="bib1.bibx35"><label>Simo(1985)</label><mixed-citation>Simo, J.: A finite strain beam formulation. The three-dimensional dynamic problem.
Part I, Comput. Meth. Appl. Mech. Eng., 49, 55–70, <ext-link xlink:href="http://dx.doi.org/10.1016/0045-7825(85)90050-7" ext-link-type="DOI">10.1016/0045-7825(85)90050-7</ext-link>, 1985.</mixed-citation></ref>
      <ref id="bib1.bibx36"><label>Tolou(2012)</label><mixed-citation>
Tolou, N.: Statically Balanced Compliant Mechanisms for MEMS and Precision
Engineering, PhD Thesis, Delft University of Technology, Delft, the Netherlands, 2012.</mixed-citation></ref>
      <ref id="bib1.bibx37"><label>Vehar-Jutte(2008)</label><mixed-citation>
Vehar-Jutte, C.: Generalized Synthesis Methodology of Nonlinear Springs for
Predescribed Load-Displacement Functions, PhD Thesis, The University of
Michigan, Michigan, USA, 2008.</mixed-citation></ref>
      <ref id="bib1.bibx38"><label>Wall et al.(2008)Wall, Frenzel, and Cyron</label><mixed-citation>Wall, W. A., Frenzel, M. A., and Cyron, C.: Isogeometric structural shape
optimization, Comput. Meth. Appl. Mech. Eng., 197, 2976–2988, <ext-link xlink:href="http://dx.doi.org/10.1016/j.cma.2008.01.025" ext-link-type="DOI">10.1016/j.cma.2008.01.025</ext-link>, 2008.</mixed-citation></ref>

  </ref-list><app-group content-type="float"><app><title/>

    </app></app-group></back>
    <!--<article-title-html>Shape optimization and sensitivity of compliant beams for prescribed load-displacement response</article-title-html>
<abstract-html><p class="p">This paper presents the shape optimization of a compliant beam for prescribed
load-displacements response. The analysis of the design is based on the
isogeometric analysis framework for an enhanced fidelity between designed and
analysed shape. The sensitivities used for an improved optimization procedure
are derived analytically, including terms due to the use of nonlinear state
equations and nonlinear boundary constraint equations. A design example is
illustrated where a beam shape is found that statically balances a pendulum
over a range of 180° with good balancing quality. The analytical
sensitivities are verified by comparison with finite difference sensitivities.</p></abstract-html>
<ref-html id="bib1.bib1"><label>Bruns and Tortorelli(2001)</label><mixed-citation>
Bruns, T. E. and Tortorelli, D. A.: Topology optimization of non-linear elastic
structures and compliant mechanisms, Comput. Meth. Appl. Mech. Eng., 190,
3443–3459, <a href="http://dx.doi.org/10.1016/S0045-7825(00)00278-4" target="_blank">doi:10.1016/S0045-7825(00)00278-4</a>, 2001.
</mixed-citation></ref-html>
<ref-html id="bib1.bib2"><label>Chen and Zhang(2011)</label><mixed-citation>
Chen, G. and Zhang, S.: Fully-compliant statically-balanced mechanisms without
prestressing assembly: concepts and case studies, Mech. Sci., 2, 169–174,
<a href="http://dx.doi.org/10.5194/ms-2-169-2011" target="_blank">doi:10.5194/ms-2-169-2011</a>, 2011.
</mixed-citation></ref-html>
<ref-html id="bib1.bib3"><label>Cho and Ha(2009)</label><mixed-citation>
Cho, S. and Ha, S.-H.: Isogeometric shape design optimization: exact geometry
and enhanced sensitivity, Struct. Multidiscip. Optimiz., 38, 53–70,
<a href="http://dx.doi.org/10.1007/s00158-008-0266-z" target="_blank">doi:10.1007/s00158-008-0266-z</a>, 2009.
</mixed-citation></ref-html>
<ref-html id="bib1.bib4"><label>Cottrell et al.(2009)Cottrell, Hughes, and Bazilevs</label><mixed-citation>
Cottrell, J. A., Hughes, T. J. R., and Bazilevs, Y.: Isogeometric Analysis:
Toward Integration of CAD and FEA, John Wiley &amp; Sons, Chichester, England, 2009.
</mixed-citation></ref-html>
<ref-html id="bib1.bib5"><label>Ding(1986)</label><mixed-citation>
Ding, Y.: Shape optimization of structures a literal survey, Comput. Struct.,
24, 985–1004, 1986.
</mixed-citation></ref-html>
<ref-html id="bib1.bib6"><label>Du and Chen(2008)</label><mixed-citation>
Du, Y. and Chen, L.: Topology optimization for large-displacement compliant
mechanisms using element free galerkin method, Int. J. CAD/CAM, 8, 1–10, 2008.
</mixed-citation></ref-html>
<ref-html id="bib1.bib7"><label>Eriksson(2014)</label><mixed-citation>
Eriksson, A.: Constraint paths in non-linear structural optimization, Comput.
Struct., 140, 39–47, <a href="http://dx.doi.org/10.1016/j.compstruc.2014.05.003" target="_blank">doi:10.1016/j.compstruc.2014.05.003</a>, 2014.
</mixed-citation></ref-html>
<ref-html id="bib1.bib8"><label>Felippa(2004)</label><mixed-citation>
Felippa, C. A.: Introduction to finite element methods (ASEN 5007), University
Lecture Notes, University of Colorado, <a href="http://www.colorado.edu/engineering/CAS/courses.d/IFEM.d/" target="_blank">http://www.colorado.edu/engineering/CAS/courses.d/IFEM.d/</a>
(last access: 1 November 2016), 2004.
</mixed-citation></ref-html>
<ref-html id="bib1.bib9"><label>Haftka(1985)</label><mixed-citation>
Haftka, R. T.: Simultaneous analysis and design, AIAA J., 23, 1099–1103,
<a href="http://dx.doi.org/10.2514/3.9043" target="_blank">doi:10.2514/3.9043</a>, 1985.
</mixed-citation></ref-html>
<ref-html id="bib1.bib10"><label>Hoetmer et al.(2010)Hoetmer, Woo, Kim, and Herder</label><mixed-citation>
Hoetmer, K., Woo, G., Kim, C., and Herder, J.: Negative Stiffness Building
Blocks for Statically Balanced Compliant Mechanisms: Design and Testing,
J. Mech. Robot., 2, 041007-1-7, <a href="http://dx.doi.org/10.1115/1.4002247" target="_blank">doi:10.1115/1.4002247</a>, 2010.
</mixed-citation></ref-html>
<ref-html id="bib1.bib11"><label>Howell(2001)</label><mixed-citation>
Howell, L. L.: Compliant Mechanisms, John Wiley and Sons Inc., New York, USA, 2001.
</mixed-citation></ref-html>
<ref-html id="bib1.bib12"><label>Hsu(1994)</label><mixed-citation>
Hsu, Y.-L.: A review of structural shape optimization, Comput. Indust., 26, 3– 3, 1994.
</mixed-citation></ref-html>
<ref-html id="bib1.bib13"><label>Hughes et al.(2005)Hughes, Cottrell, and Bazilevs</label><mixed-citation>
Hughes, T., Cottrell, J., and Bazilevs, Y.: Isogeometric analysis: CAD, finite
elements, NURBS, exact geometry and mesh refinement, Comput. Meth. Appl. Mech.
Eng., 194, 4135–4195, <a href="http://dx.doi.org/10.1016/j.cma.2004.10.008" target="_blank">doi:10.1016/j.cma.2004.10.008</a>, 2005.
</mixed-citation></ref-html>
<ref-html id="bib1.bib14"><label>Joo et al.(2001)Joo, Kota, and Kikuchi</label><mixed-citation>
Joo, J., Kota, S., and Kikuchi, N.: Large deformation behavior of compliant
mechanisms, Proceedings of DETC'01 ASME 2001 Design Engineering Technical
Conference and Computers and Information in Engineering Conference, 9–12 September 2001,
Pittsburgh, PA, 2001.
</mixed-citation></ref-html>
<ref-html id="bib1.bib15"><label>Jutte and Kota(2010)</label><mixed-citation>
Jutte, C. V. and Kota, S.: Design of Single, Multiple, and Scaled Nonlinear
Springs for Prescribed Nonlinear Responses, J. Mech. Design, 132, 011003,
<a href="http://dx.doi.org/10.1115/1.4000595" target="_blank">doi:10.1115/1.4000595</a>, 2010.
</mixed-citation></ref-html>
<ref-html id="bib1.bib16"><label>Kiendl(2011)</label><mixed-citation>
Kiendl, J. M.: Isogeometric Analysis and Shape Optimal Design of Shell Structures,
PhD Thesis, Munich University of Technology, Munich, Germany, 2011.
</mixed-citation></ref-html>
<ref-html id="bib1.bib17"><label>Koo et al.(2013)Koo, Ha, Kim, and Cho</label><mixed-citation>
Koo, B., Ha, S.-H., Kim, H.-S., and Cho, S.: Isogeometric Shape Design Optimization
of Geometrically Nonlinear Structures, Mech. Bas. Design Struct. Mach., 41,
337–358, <a href="http://dx.doi.org/10.1080/15397734.2012.750226" target="_blank">doi:10.1080/15397734.2012.750226</a>, 2013.
</mixed-citation></ref-html>
<ref-html id="bib1.bib18"><label>Lan et al.(2010)Lan, Wang, and Chen</label><mixed-citation>
Lan, C.-C., Wang, J.-H., and Chen, Y.-H.: A compliant constant-force mechanism
for adaptive robot end-effector operations, in: 2010 IEEE International Conference
on Robotics and Automation, Anchorage Convention District, 3–8 May 2010,
Anchorage, Alaska, USA, 2010.
</mixed-citation></ref-html>
<ref-html id="bib1.bib19"><label>Leishman and Colton(2011)</label><mixed-citation>
Leishman, L. C. and Colton, M. B.: A Pseudo-Rigid-Body Model Approach for the
Design of Compliant Mechanism Springs for Prescribed Force – Deflections, ASME,
93–102, <a href="http://dx.doi.org/10.1115/DETC2011-47590" target="_blank">doi:10.1115/DETC2011-47590</a>, 2011.
</mixed-citation></ref-html>
<ref-html id="bib1.bib20"><label>Matlab®(2014)</label><mixed-citation>
Matlab<span style="position:relative; bottom:0.5em; " class="text">®</span>: MATLAB and Optimization Toolbox
Release R2014a, The MathWorks, Inc., Natick, Massachusetts, USA,
<a href="http://www.mathworks.nl/help/releases/R2014a/pdf_doc/optim/optim_tb.pdf" target="_blank">http://www.mathworks.nl/help/releases/R2014a/pdf_doc/optim/optim_tb.pdf</a>
(last access: 1 November 2016), 2014.
</mixed-citation></ref-html>
<ref-html id="bib1.bib21"><label>Nagy(2011)</label><mixed-citation>
Nagy, A. P.: Isogeometric Design Opitmization, PhD Thesis, Delft University
of Technology, Delft, the Netherlands, 2011.
</mixed-citation></ref-html>
<ref-html id="bib1.bib22"><label>Nagy et al.(2010)Nagy, Abdalla, and Gürdal</label><mixed-citation>
Nagy, A. P., Abdalla, M. M., and Gürdal, Z.: Isogeometric sizing and shape
optimisation of beam structures, Comput. Meth. Appl. Mech. Eng., 199, 1216–1230,
<a href="http://dx.doi.org/10.1016/j.cma.2009.12.010" target="_blank">doi:10.1016/j.cma.2009.12.010</a>, 2010.
</mixed-citation></ref-html>
<ref-html id="bib1.bib23"><label>Oh(2008)</label><mixed-citation>
Oh, Y.: Synthesis of Multistable Equilibrium Compliant Mechanisms, PhD Thesis,
The University of Michigan, Michigan, USA, 2008.
</mixed-citation></ref-html>
<ref-html id="bib1.bib24"><label>Pedersen et al.(2005)Pedersen, Fleck, and Ananthasuresh</label><mixed-citation>
Pedersen, C. B., Fleck, N. A., and Ananthasuresh, G. K.: Design of a Compliant
Mechanism to Modify an Actuator Characteristic to Deliver a Constant Output Force,
J. Mech. Design, 128, 1101–1112, <a href="http://dx.doi.org/10.1115/1.2218883" target="_blank">doi:10.1115/1.2218883</a>, 2005.
</mixed-citation></ref-html>
<ref-html id="bib1.bib25"><label>Piegl and Tiller(1997)</label><mixed-citation>
Piegl, L. and Tiller, W.: The NURBS Book, 2nd Edn., Springer-Verlag, New York, NY, USA, 1997.
</mixed-citation></ref-html>
<ref-html id="bib1.bib26"><label>Powell and Frecker(2005)</label><mixed-citation>
Powell, K. M. and Frecker, M. I.: Method for Optimization of a Nonlinear Static
Balance Mechanism With Application to Ophthalmic Surgical Forceps, in: Proceedings
ASME IDETC/CIE 2005, 24–28 September 2005, Long Beach, California, USA, <a href="http://dx.doi.org/10.1115/DETC2005-84759" target="_blank">doi:10.1115/DETC2005-84759</a>, 2005.
</mixed-citation></ref-html>
<ref-html id="bib1.bib27"><label>Pucheta and Cardona(2010)</label><mixed-citation>
Pucheta, M. A. and Cardona, A.: Design of bistable compliant mechanisms using
precision – position and rigid-body replacement methods, Mech. Mach. Theory, 45,
304–326, <a href="http://dx.doi.org/10.1016/j.mechmachtheory.2009.09.009" target="_blank">doi:10.1016/j.mechmachtheory.2009.09.009</a>, 2010.
</mixed-citation></ref-html>
<ref-html id="bib1.bib28"><label>Qian(2010)</label><mixed-citation>
Qian, X.: Full analytical sensitivities in NURBS based isogeometric shape
optimization, in: Computer Methods in Applied Mechanics and Engineering, 2010.
</mixed-citation></ref-html>
<ref-html id="bib1.bib29"><label>Radaelli and Herder(2014)</label><mixed-citation>
Radaelli, G. and Herder, J. L.: Isogeometric Shape Optimization for Compliant
Mechanisms with Prescribed Load Paths, in: Proceedings ASME IDETC/CIE 2014,
17–20 August 2014, Buffalo, New York, USA, <a href="http://dx.doi.org/10.1115/DETC2014-35373" target="_blank">doi:10.1115/DETC2014-35373</a>, 2014.
</mixed-citation></ref-html>
<ref-html id="bib1.bib30"><label>Rai et al.(2006)Rai, Saxena, Mankame, and Upadhyay</label><mixed-citation>
Rai, A., Saxena, A., Mankame, N. D., and Upadhyay, C. S.: On Optimal Design of
Compliant Mechanisms for Specified Nonlinear Path Using Curved Frame Elements
and Genetic Algorithm, ASME 2006 International Design Engineering Technical
Conferences and Computers and Information in Engineering Conference, Vol. 2,
30th Annual Mechanisms and Robotics Conference, Parts A and B, 10–13 September 2006,
Philadelphia, Pennsylvania, USA, 91–100, <a href="http://dx.doi.org/10.1115/DETC2006-99298" target="_blank">doi:10.1115/DETC2006-99298</a>, 2006.

</mixed-citation></ref-html>
<ref-html id="bib1.bib31"><label>Ringertz(1989)</label><mixed-citation>
Ringertz, U. T.: Optimization of Structures with Nonlinear Response, Eng. Optimiz.,
14, 179–188, <a href="http://dx.doi.org/10.1080/03052158908941210" target="_blank">doi:10.1080/03052158908941210</a>, 1989.
</mixed-citation></ref-html>
<ref-html id="bib1.bib32"><label>Ryu et al.(1985)Ryu, Haririan, Wu, and Arora</label><mixed-citation>
Ryu, Y., Haririan, M., Wu, C., and Arora, J.: Structural design sensitivity
analysis of nonlinear response, Comput. Struct., 21, 245–255, 1985.
</mixed-citation></ref-html>
<ref-html id="bib1.bib33"><label>Saxena and Ananthasuresh(1999)</label><mixed-citation>
Saxena, A. and Ananthasuresh, G. K.: Topology Synthesis of Compliant Mechanisms
for Nonlinear Force – Deflection and Curved Path Specifications, J. Mech. Design,
123, 33–42, <a href="http://dx.doi.org/10.1115/1.1333096" target="_blank">doi:10.1115/1.1333096</a>, 1999.
</mixed-citation></ref-html>
<ref-html id="bib1.bib34"><label>Sigmund(1997)</label><mixed-citation>
Sigmund, O.: On the Design of Compliant Mechanisms Using Topology Optimization,
Mech. Struct. Mach., 25, 493–524, <a href="http://dx.doi.org/10.1080/08905459708945415" target="_blank">doi:10.1080/08905459708945415</a>, 1997.
</mixed-citation></ref-html>
<ref-html id="bib1.bib35"><label>Simo(1985)</label><mixed-citation>
Simo, J.: A finite strain beam formulation. The three-dimensional dynamic problem.
Part I, Comput. Meth. Appl. Mech. Eng., 49, 55–70, <a href="http://dx.doi.org/10.1016/0045-7825(85)90050-7" target="_blank">doi:10.1016/0045-7825(85)90050-7</a>, 1985.
</mixed-citation></ref-html>
<ref-html id="bib1.bib36"><label>Tolou(2012)</label><mixed-citation>
Tolou, N.: Statically Balanced Compliant Mechanisms for MEMS and Precision
Engineering, PhD Thesis, Delft University of Technology, Delft, the Netherlands, 2012.
</mixed-citation></ref-html>
<ref-html id="bib1.bib37"><label>Vehar-Jutte(2008)</label><mixed-citation>
Vehar-Jutte, C.: Generalized Synthesis Methodology of Nonlinear Springs for
Predescribed Load-Displacement Functions, PhD Thesis, The University of
Michigan, Michigan, USA, 2008.
</mixed-citation></ref-html>
<ref-html id="bib1.bib38"><label>Wall et al.(2008)Wall, Frenzel, and Cyron</label><mixed-citation>
Wall, W. A., Frenzel, M. A., and Cyron, C.: Isogeometric structural shape
optimization, Comput. Meth. Appl. Mech. Eng., 197, 2976–2988, <a href="http://dx.doi.org/10.1016/j.cma.2008.01.025" target="_blank">doi:10.1016/j.cma.2008.01.025</a>, 2008.
</mixed-citation></ref-html>--></article>
