<?xml version="1.0" encoding="iso-8859-1"?>
<!-- tenseg/book/chap4_2.xml  A Practical Guide to Tensegrity Design
     Copyright 2004-2008 Robert William Burkhardt, Jr. -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" 
          "http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd"
          [<!ENTITY mathml "http://www.w3.org/1998/Math/MathML">]>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/xhtml; charset=iso-8859-1"/>
<meta name="keywords"
      content="tensegrity, treatise, how-to, primer, thesis, mathematics,
               tetrahedron, diamond"/>
<meta name="description"
      content="Mathematics of designing diamond tensegrities based on higher-frequency geodesic breakdowns."/>
<title>A Practical Guide to Tensegrity Design:
4.2&nbsp;Diamond Structures</title>
<link rel="stylesheet" type="text/css" href="tenseg.css"/>
</head>

<body>
<p class="link">
A Practical Guide to Tensegrity Design<br/>
<a href="index.html#chap4_2">Table of Contents</a><br/>
4.1&nbsp;<a href="chap4_1.html">Higher-Frequency Spheres:
Introduction</a>
</p>

<p class="section-header-level1" id="diamond">
4.2&nbsp;Diamond Structures
</p>

<p class="section-header-level2" id="diamond_geom">
4.2.1&nbsp;Diamond Structures:
Descriptive Geometry
</p>

<table id="fig_ttet_diamond" class="center"><tr align="center"><td>
<img src="ttet_diamond.png" width="400" height="400"
 alt="line drawing of dowel-and-fishing-line tensegrity tetrahedron in diamond configuration"/><br/>
Figure 4.1:  2&nu; Diamond T-Tetrahedron
</td></tr></table>

<p>
As described in <a href="chap2_3.xml">Section&nbsp;2.3</a>,
diamond structures are characterized by the fact that each tendon
triangle is connected to adjacent tendon triangles via one strut
and two interconnecting tendons.  This section
examines a diamond configuration of the tensegrity tetrahedron.
The zig-zag configuration of the
2&nu;<sup><a href="#tx1" id="rf1">1</a></sup>
t-tetrahedron was examined in <a href="chap2_4.xml">Section&nbsp;2.4</a>.
The diamond configuration of the 2&nu; t-tetrahedron
is illustrated in <a href="#fig_ttet_diamond">Figure&nbsp;4.1</a>.
It is topologically identical to the t-icosahedron
(<a href="chap2_3.xml#fig_toct_nocoord">Figure&nbsp;2.5</a>
of <a href="chap2_3.xml">Section&nbsp;2.3</a>).
The only difference is that the tendon triangles of the 2&nu; diamond
t-tetrahedron are two different sizes.  The t-icosahedron is
actually a special case of the 2&nu; diamond
t-tetrahedron with all tendons the same length.
</p>

<p>
To review the contrast between the diamond and zig-zag configurations
presented in <a href="chap2_3.xml">Section&nbsp;2.3</a>, it is
most productive to focus on the group of four small triangles from the
2&nu; diamond t-tetrahedron.  These correspond to the 2&nu; zig-zag
t-tetrahedron's four tendon triangles.
If two tendon triangles from this group are considered to be facing
each other nose-to-nose, the strut can be seen to connect the right ear
of one triangle with the right ear of the other triangle as it
did in the zig-zag t-tetrahedron.  However, there are now
two tendons interconnecting the two tendon triangles instead of just one.
Each connects the right ear of one tendon triangle with the nose of
the other.
</p>

<p>
These two tendons are symmetrical to each other, so the problem
still consists of minimizing one length as it did in the original
zig-zag problem, and even the same geometrical model
as was used to solve that problem could be used here.
However, the general case is
more complex than this and is not amenable to treatment with
models such as were used to examine the simple zig-zag
t-tetrahedron.  So to illustrate the general procedure, calculations
are done for a frequency-four (or 4&nu; for short) diamond t-tetrahedron.
</p>

<table id="fig_v4_tri" class="center"><tr align="center"><td>
<img src="v4_tri.png" width="386" height="378"
 alt="triangular grid embedded in triangle embedded in circle"/><br/>
Figure 4.2:  4&nu; Breakdown of Tetrahedron Face Triangle
</td></tr></table>

<div class="spacer"><br/><br/></div>

<table id="fig_v4_proj" class="center"><tr align="center"><td>
<img src="v4_proj.png" width="380" height="378"
 alt="triangular grid embedded in triangle projected onto sphere represented by circle"/><br/>
Figure 4.3:  4&nu; Tetrahedron Face Triangle Projected on to a Sphere
</td></tr></table>

<p>
It is called a 4&nu; structure because its geometry
derives from the 4&nu; geodesic subdivision of the
tetrahedron.<sup><a href="#tx2" id="rf2">2</a></sup>
Only even-frequency subdivisions are used in tensegrity designs.
<a href="#fig_v4_tri">Figure&nbsp;4.2</a> shows a 4&nu;
breakdown of a triangle, in this case the face of a tetrahedron.
The labels <math xmlns="&mathml;"><mi>a</mi></math> and
<math xmlns="&mathml;"><mi>b</mi></math>
indicate which triangles are
symmetrically equivalent.
The heavy lines represent the lines of the geodesic breakdown
used in the tensegrity design.  Kenner's
procedure is followed and these triangles are projected onto a sphere
circumscribing the tetrahedron
(see <a href="#fig_v4_proj">Figure&nbsp;4.3</a>).  Notice that,
considering symmetry transformations, there are two types of tendon
triangles composing the system, an equilateral tendon triangle
and an isosceles one.
</p>

<table id="fig_dtt_struts" class="center"><tr align="center"><td>
<img src="dtt_struts.png" width="336" height="470"
 alt="three triangles connected by two solid struts with point labels"/><br/>
Figure 4.4:  4&nu; Diamond T-Tetrahedron:  Representative Struts
</td></tr></table>

<div class="spacer"><br/><br/></div>

<table id="fig_dtt_tendons" class="center"><tr align="center"><td>
<img src="dtt_tendons.png" width="320" height="454"
 alt="three triangles connected by four dashed tendons with point labels"/><br/>
Figure 4.5:  4&nu; Diamond T-Tetrahedron:  Representative Tendons
</td></tr></table>

<p>
Next the interconnecting struts and tendons are introduced. 
<a href="#fig_dtt_struts">Figure&nbsp;4.4</a>
shows representative examples of the
interconnecting struts.  There are two types of strut.
One type connects adjacent isosceles triangles, the other
type connects isosceles with equilateral triangles.
<a href="#fig_dtt_tendons">Figure&nbsp;4.5</a>
shows the corresponding interconnecting tendons.  There are
a pair of tendons corresponding to each strut type.
Note that in
both the figures, the triangles are skewed toward
their final positions for clarity's sake.  In the tensegrity
programming problem, the sum of second
powers of the lengths of the four diamond tendons are minimized,
while the lengths of the
struts and triangle tendons are considered constraints.
</p>

<p class="section-header-level2" id="diamond_math">
4.2.2&nbsp;Diamond Structures:
Mathematical Model
</p>

<table id="fig_v4dicoor_iso" class="center"><tr align="center"><td>
<img src="v4dicoor_iso.png" width="466" height="445"
 alt="isometric view of labeled triangular grid embedded in xyz space"/><br/>
Figure 4.6:  4&nu; Diamond T-Tetrahedron:  Coordinate Model (Face View)
</td></tr></table>

<div class="spacer"><br/><br/></div>

<table id="fig_v4dicoor_edge" class="center"><tr align="center"><td>
<img src="v4dicoor_edge.png" width="360" height="361"
 alt="axial view of labeled triangular grid embedded in xyz space"/><br/>
Figure 4.7:  4&nu; Diamond T-Tetrahedron:  Coordinate Model (Edge View)
</td></tr></table>

<p>
Figures <a href="#fig_v4dicoor_iso">4.6</a> and
<a href="#fig_v4dicoor_edge">4.7</a>
show a tetrahedron inscribed within Cartesian
coordinate space in a convenient orientation.  With this
orientation, any symmetry transformation of the
tetrahedron can be accomplished merely by permuting the coordinate axes.
On the tetrahedral face which falls in the positive quadrant (but
extends into three others as well), the elements of the
4&nu; geodesic subdivisioning relevant to tensegrities
have been inscribed.  On this triangle, there are four points
labeled <math xmlns="&mathml;"><msub><mi>P</mi><mn>1</mn></msub></math>,
<math xmlns="&mathml;"><msub><mi>P</mi><mn>2</mn></msub></math>,
<math xmlns="&mathml;"><msub><mi>P</mi><mn>3</mn></msub></math>
and <math xmlns="&mathml;"><msub><mi>P</mi><mn>4</mn></msub></math>.
<math xmlns="&mathml;"><msub><mi>P</mi><mn>1</mn></msub></math>,
<math xmlns="&mathml;"><msub><mi>P</mi><mn>2</mn></msub></math> and
<math xmlns="&mathml;"><msub><mi>P</mi><mn>3</mn></msub></math>
represent the vertices of
the isosceles triangle (or at least it will be isosceles when these
points are projected onto a sphere);
<math xmlns="&mathml;"><msub><mi>P</mi><mn>4</mn></msub></math>
is a point on the equilateral triangle.
</p>

<p>
With these four points, all of the other points of the
4&nu; subdivisioning can be generated by using the
symmetry transforms of the tetrahedron.  Notice that, although
geodesic structures exhibit mirror symmetry frequently,
tensegrity structures generally do not.
So <math xmlns="&mathml;"><msub><mi>P</mi><mn>2</mn></msub></math> cannot be
generated from <math xmlns="&mathml;"><msub><mi>P</mi><mn>1</mn></msub></math>
using a mirroring operation.  Also, initially
<math xmlns="&mathml;"><msub><mi>P</mi><mn>3</mn></msub></math>
and <math xmlns="&mathml;"><msub><mi>P</mi><mn>4</mn></msub></math>
coincide since initially the vertices of the isosceles
and the equilateral triangle are in contact.  When the
computations start though, they part company.
</p>

<p>
The four points,
<math xmlns="&mathml;"><msub><mi>P</mi><mn>1</mn></msub></math>,
<math xmlns="&mathml;"><msub><mi>P</mi><mn>2</mn></msub></math>,
<math xmlns="&mathml;"><msub><mi>P</mi><mn>3</mn></msub></math> and
<math xmlns="&mathml;"><msub><mi>P</mi><mn>4</mn></msub></math>,
can be generated from the
three vertex points,
<math xmlns="&mathml;"><msub><mi>V</mi><mn>1</mn></msub></math>,
<math xmlns="&mathml;"><msub><mi>V</mi><mn>2</mn></msub></math> and
<math xmlns="&mathml;"><msub><mi>V</mi><mn>3</mn></msub></math>,
of the triangular tetrahedron face as follows:
</p>

<table class="center"><tr><td>
<math xmlns="&mathml;"><mrow><msub><mi>P</mi><mn>1</mn></msub><mo>=</mo>
<mfrac><mn>3</mn><mn>4</mn></mfrac><mo>&InvisibleTimes;</mo>
<msub><mi>V</mi><mn>1</mn></msub><mo>+</mo>
<mfrac><mn>0</mn><mn>4</mn></mfrac><mo>&InvisibleTimes;</mo>
<msub><mi>V</mi><mn>2</mn></msub><mo>+</mo>
<mfrac><mn>1</mn><mn>4</mn></mfrac><mo>&InvisibleTimes;</mo>
<msub><mi>V</mi><mn>3</mn></msub></mrow></math><br/>

<math xmlns="&mathml;"><mrow><msub><mi>P</mi><mn>2</mn></msub><mo>=</mo>
<mfrac><mn>3</mn><mn>4</mn></mfrac><mo>&InvisibleTimes;</mo>
<msub><mi>V</mi><mn>1</mn></msub><mo>+</mo>
<mfrac><mn>1</mn><mn>4</mn></mfrac><mo>&InvisibleTimes;</mo>
<msub><mi>V</mi><mn>2</mn></msub><mo>+</mo>
<mfrac><mn>0</mn><mn>4</mn></mfrac><mo>&InvisibleTimes;</mo>
<msub><mi>V</mi><mn>3</mn></msub></mrow></math><br/>

<math xmlns="&mathml;"><mrow><msub><mi>P</mi><mn>3</mn></msub><mo>=</mo>
<mfrac><mn>2</mn><mn>4</mn></mfrac><mo>&InvisibleTimes;</mo>
<msub><mi>V</mi><mn>1</mn></msub><mo>+</mo>
<mfrac><mn>1</mn><mn>4</mn></mfrac><mo>&InvisibleTimes;</mo>
<msub><mi>V</mi><mn>2</mn></msub><mo>+</mo>
<mfrac><mn>1</mn><mn>4</mn></mfrac><mo>&InvisibleTimes;</mo>
<msub><mi>V</mi><mn>3</mn></msub></mrow></math><br/>

<math xmlns="&mathml;"><mrow><msub><mi>P</mi><mn>4</mn></msub><mo>=</mo>
<mfrac><mn>2</mn><mn>4</mn></mfrac><mo>&InvisibleTimes;</mo>
<msub><mi>V</mi><mn>1</mn></msub><mo>+</mo>
<mfrac><mn>1</mn><mn>4</mn></mfrac><mo>&InvisibleTimes;</mo>
<msub><mi>V</mi><mn>2</mn></msub><mo>+</mo>
<mfrac><mn>1</mn><mn>4</mn></mfrac><mo>&InvisibleTimes;</mo>
<msub><mi>V</mi><mn>3</mn></msub></mrow></math><br/>
</td></tr></table>

<p>
Thus, the coordinates of
<math xmlns="&mathml;"><msub><mi>V</mi><mn>1</mn></msub></math>,
<math xmlns="&mathml;"><msub><mi>V</mi><mn>2</mn></msub></math> and
<math xmlns="&mathml;"><msub><mi>V</mi><mn>3</mn></msub></math>
summarized in <a href="#tab_dttrefvc">Table&nbsp;4.1</a>
imply the coordinate values of
<math xmlns="&mathml;"><msub><mi>P</mi><mn>1</mn></msub></math>,
<math xmlns="&mathml;"><msub><mi>P</mi><mn>2</mn></msub></math>,
<math xmlns="&mathml;"><msub><mi>P</mi><mn>3</mn></msub></math> and
<math xmlns="&mathml;"><msub><mi>P</mi><mn>4</mn></msub></math>
summarized in <a href="#tab_dttpc">Table&nbsp;4.2</a>.
</p>

<table id="tab_dttrefvc" class="center"><tr><td align="center">
<table rules="groups" border="1">
<colgroup></colgroup>
<thead>
<tr><td></td><td colspan="3" align="center">Coordinates</td></tr>
<tr><td align="center">&nbsp;Vertex&nbsp;</td>
<td align="center">
&nbsp;&nbsp;<math xmlns="&mathml;"><mi>x</mi></math>&nbsp;&nbsp;</td>
<td align="center">
&nbsp;&nbsp;<math xmlns="&mathml;"><mi>y</mi></math>&nbsp;&nbsp;</td>
<td align="center">
&nbsp;&nbsp;<math xmlns="&mathml;"><mi>z</mi></math>&nbsp;&nbsp;</td>
</tr>
</thead>
<tbody>
<tr><td align="center">
<math xmlns="&mathml;"><msub><mi>V</mi><mn>1</mn></msub></math></td>
<td align="right">
&nbsp;&nbsp;<math xmlns="&mathml;"><mn>1.0</mn></math>&nbsp;&nbsp;</td>
<td align="right">
&nbsp;&nbsp;<math xmlns="&mathml;"><mrow><mo>-</mo><mn>1.0</mn></mrow>
</math>&nbsp;&nbsp;</td>
<td align="right">
&nbsp;&nbsp;<math xmlns="&mathml;"><mn>1.0</mn></math>&nbsp;&nbsp;</td></tr>

<tr><td align="center">
<math xmlns="&mathml;"><msub><mi>V</mi><mn>2</mn></msub></math></td>
<td align="right">
&nbsp;&nbsp;<math xmlns="&mathml;"><mrow><mo>-</mo><mn>1.0</mn></mrow>
</math>&nbsp;&nbsp;</td>
<td align="right">
&nbsp;&nbsp;<math xmlns="&mathml;"><mn>1.0</mn></math>&nbsp;&nbsp;</td>
<td align="right">
&nbsp;&nbsp;<math xmlns="&mathml;"><mn>1.0</mn></math>&nbsp;&nbsp;</td></tr>

<tr><td align="center">
<math xmlns="&mathml;"><msub><mi>V</mi><mn>3</mn></msub></math></td>
<td align="right">
&nbsp;&nbsp;<math xmlns="&mathml;"><mn>1.0</mn></math>&nbsp;&nbsp;</td>
<td align="right">
&nbsp;&nbsp;<math xmlns="&mathml;"><mn>1.0</mn></math>&nbsp;&nbsp;</td>
<td align="right">
&nbsp;&nbsp;<math xmlns="&mathml;"><mrow><mo>-</mo><mn>1.0</mn></mrow>
</math>&nbsp;&nbsp;</td></tr>
</tbody>
</table>
</td></tr><tr><td align="center">
&nbsp;<br/>Table&nbsp;4.1:  Tetrahedron Face:  Vertex Coordinate Values
</td></tr></table>

<div class="spacer"><br/><br/></div>

<table id="tab_dttpc" class="center"><tr><td align="center">
<table rules="groups" border="1">
<colgroup></colgroup>
<thead>
<tr><td></td><td colspan="3" align="center">Coordinates</td></tr>
<tr><td align="center">&nbsp;Point&nbsp;</td>
<td align="center">
&nbsp;&nbsp;<math xmlns="&mathml;"><mi>x</mi></math>&nbsp;&nbsp;</td>
<td align="center">
&nbsp;&nbsp;<math xmlns="&mathml;"><mi>y</mi></math>&nbsp;&nbsp;</td>
<td align="center">
&nbsp;&nbsp;<math xmlns="&mathml;"><mi>z</mi></math>&nbsp;&nbsp;</td>
</tr>
</thead>
<tbody>
<tr><td align="center">
<math xmlns="&mathml;"><msub><mi>P</mi><mn>1</mn></msub></math></td>
<td align="right">
&nbsp;&nbsp;<math xmlns="&mathml;"><mn>1.0</mn></math>&nbsp;&nbsp;</td>
<td align="right">
&nbsp;&nbsp;<math xmlns="&mathml;"><mrow><mo>-</mo><mn>0.5</mn></mrow>
</math>&nbsp;&nbsp;</td>
<td align="right">
&nbsp;&nbsp;<math xmlns="&mathml;"><mn>0.5</mn></math>&nbsp;&nbsp;</td></tr>

<tr><td align="center">
<math xmlns="&mathml;"><msub><mi>P</mi><mn>2</mn></msub></math></td>
<td align="right">
&nbsp;&nbsp;<math xmlns="&mathml;"><mn>0.5</mn></math>&nbsp;&nbsp;</td>
<td align="right">
&nbsp;&nbsp;<math xmlns="&mathml;"><mrow><mo>-</mo><mn>0.5</mn></mrow>
</math>&nbsp;&nbsp;</td>
<td align="right">
&nbsp;&nbsp;<math xmlns="&mathml;"><mn>1.0</mn></math>&nbsp;&nbsp;</td></tr>

<tr><td align="center">
<math xmlns="&mathml;"><msub><mi>P</mi><mn>3</mn></msub></math></td>
<td align="right">
&nbsp;&nbsp;<math xmlns="&mathml;"><mn>0.5</mn></math>&nbsp;&nbsp;</td>
<td align="right">
&nbsp;&nbsp;<math xmlns="&mathml;"><mn>0.0</mn></math>&nbsp;&nbsp;</td>
<td align="right">
&nbsp;&nbsp;<math xmlns="&mathml;"><mn>0.5</mn></math>&nbsp;&nbsp;</td>
</tr>

<tr><td align="center">
<math xmlns="&mathml;"><msub><mi>P</mi><mn>4</mn></msub></math></td>
<td align="right">
&nbsp;&nbsp;<math xmlns="&mathml;"><mn>0.5</mn></math>&nbsp;&nbsp;</td>
<td align="right">
&nbsp;&nbsp;<math xmlns="&mathml;"><mn>0.0</mn></math>&nbsp;&nbsp;</td>
<td align="right">
&nbsp;&nbsp;<math xmlns="&mathml;"><mn>0.5</mn></math>&nbsp;&nbsp;</td>
</tr>
</tbody>
</table>
</td></tr><tr><td align="center">
&nbsp;<br/>Table&nbsp;4.2:
4&nu; Diamond T-Tetrahedron:  Unprojected Point Coordinates
</td></tr></table>

<p>
When the values for
<math xmlns="&mathml;"><msub><mi>P</mi><mn>1</mn></msub></math>,
<math xmlns="&mathml;"><msub><mi>P</mi><mn>2</mn></msub></math>,
<math xmlns="&mathml;"><msub><mi>P</mi><mn>3</mn></msub></math> and
<math xmlns="&mathml;"><msub><mi>P</mi><mn>4</mn></msub></math>
are projected onto the unit sphere, <a href="#tab_dttppc">Table&nbsp;4.3</a>
is obtained.  These coordinates serve as the initial values for the
computation process.  From them, the initial
values of all member lengths are computed.
</p>

<table id="tab_dttppc" class="center"><tr><td align="center">
<table rules="groups" border="1">
<colgroup></colgroup>
<thead>
<tr><td></td><td colspan="3" align="center">Coordinates</td></tr>
<tr><td align="center">&nbsp;Point&nbsp;</td>
<td align="center">
&nbsp;&nbsp;<math xmlns="&mathml;"><mi>x</mi></math>&nbsp;&nbsp;</td>
<td align="center">
&nbsp;&nbsp;<math xmlns="&mathml;"><mi>y</mi></math>&nbsp;&nbsp;</td>
<td align="center">
&nbsp;&nbsp;<math xmlns="&mathml;"><mi>z</mi></math>&nbsp;&nbsp;</td>
</tr>
</thead>
<tbody>
<tr><td align="center">
<math xmlns="&mathml;"><msub><mi>P</mi><mn>1</mn></msub></math></td>
<td align="center">
&nbsp;&nbsp;<math xmlns="&mathml;"><msqrt><mfrac><mn>2</mn><mn>3</mn>
</mfrac></msqrt></math>&nbsp;&nbsp;</td>
<td align="center">
&nbsp;&nbsp;<math xmlns="&mathml;"><mrow><mo>-</mo>
<msqrt><mfrac><mn>1</mn><mn>6</mn>
</mfrac></msqrt></mrow></math>&nbsp;&nbsp;</td>
<td align="center">
&nbsp;&nbsp;<math xmlns="&mathml;"><msqrt><mfrac><mn>1</mn><mn>6</mn>
</mfrac></msqrt></math>&nbsp;&nbsp;</td>
</tr>

<tr><td align="center">
<math xmlns="&mathml;"><msub><mi>P</mi><mn>2</mn></msub></math></td>
<td align="center">
&nbsp;&nbsp;<math xmlns="&mathml;"><msqrt><mfrac><mn>1</mn><mn>6</mn>
</mfrac></msqrt></math>&nbsp;&nbsp;</td>
<td align="center">
&nbsp;&nbsp;<math xmlns="&mathml;"><mrow><mo>-</mo>
<msqrt><mfrac><mn>1</mn><mn>6</mn>
</mfrac></msqrt></mrow></math>&nbsp;&nbsp;</td>
<td align="center">
&nbsp;&nbsp;<math xmlns="&mathml;"><msqrt><mfrac><mn>2</mn><mn>3</mn>
</mfrac></msqrt></math>&nbsp;&nbsp;</td>
</tr>

<tr><td align="center">
<math xmlns="&mathml;"><msub><mi>P</mi><mn>3</mn></msub></math></td>
<td align="center">
&nbsp;&nbsp;<math xmlns="&mathml;"><msqrt><mfrac><mn>1</mn><mn>2</mn>
</mfrac></msqrt></math>&nbsp;&nbsp;</td>
<td align="center">
&nbsp;&nbsp;<math xmlns="&mathml;"><mn>0</mn></math>&nbsp;&nbsp;</td>
<td align="center">
&nbsp;&nbsp;<math xmlns="&mathml;"><msqrt><mfrac><mn>1</mn><mn>2</mn>
</mfrac></msqrt></math>&nbsp;&nbsp;</td>
</tr>

<tr><td align="center">
<math xmlns="&mathml;"><msub><mi>P</mi><mn>4</mn></msub></math></td>
<td align="center">
&nbsp;&nbsp;<math xmlns="&mathml;"><msqrt><mfrac><mn>1</mn><mn>2</mn>
</mfrac></msqrt></math>&nbsp;&nbsp;</td>
<td align="center">
&nbsp;&nbsp;<math xmlns="&mathml;"><mn>0</mn></math>&nbsp;&nbsp;</td>
<td align="center">
&nbsp;&nbsp;<math xmlns="&mathml;"><msqrt><mfrac><mn>1</mn><mn>2</mn>
</mfrac></msqrt></math>&nbsp;&nbsp;</td>
</tr>
</tbody>
</table>
</td></tr><tr><td align="center">
&nbsp;<br/>Table&nbsp;4.3:  4&nu; Diamond T-Tetrahedron:
Projected Point Coordinates
</td></tr></table>

<p>
In order to express all the members of the tensegrity,
three more points are needed,
<math xmlns="&mathml;"><msub><mi>P</mi><mn>5</mn></msub></math>,
<math xmlns="&mathml;"><msub><mi>P</mi><mn>6</mn></msub></math> and
<math xmlns="&mathml;"><msub><mi>P</mi><mn>7</mn></msub></math>.
These points are symmetry
transforms of
<math xmlns="&mathml;"><msub><mi>P</mi><mn>2</mn></msub></math>,
<math xmlns="&mathml;"><msub><mi>P</mi><mn>3</mn></msub></math> and
<math xmlns="&mathml;"><msub><mi>P</mi><mn>4</mn></msub></math> respectively.
<math xmlns="&mathml;"><msub><mi>P</mi><mn>5</mn></msub></math> and
<math xmlns="&mathml;"><msub><mi>P</mi><mn>6</mn></msub></math>
are obtained from
<math xmlns="&mathml;"><msub><mi>P</mi><mn>2</mn></msub></math> and
<math xmlns="&mathml;"><msub><mi>P</mi><mn>3</mn></msub></math>
by a <math xmlns="&mathml;"><mn>120&deg;</mn></math> left-hand rotation of the
tetrahedron about the vector from the origin to
<math xmlns="&mathml;"><msub><mi>V</mi><mn>1</mn></msub></math>.
In this coordinate system, this is achieved by taking the
<math xmlns="&mathml;"><mi>x</mi></math> axis into the
<math xmlns="&mathml;"><mrow><mo>-</mo><mi>y</mi></mrow></math>
axis, the
<math xmlns="&mathml;"><mrow><mo>-</mo><mi>y</mi></mrow></math>
axis into the
<math xmlns="&mathml;"><mi>z</mi></math> axis, and the
<math xmlns="&mathml;"><mi>z</mi></math> axis into the
<math xmlns="&mathml;"><mi>x</mi></math> axis,
so that
<math xmlns="&mathml;"><msub><mi>P</mi><mn>5</mn></msub></math> and
<math xmlns="&mathml;"><msub><mi>P</mi><mn>6</mn></msub></math>
 can be expressed respectively as
<math xmlns="&mathml;"><mfenced><msub><mi>z</mi><mn>2</mn></msub>
<mrow><mo>-</mo><msub><mi>x</mi><mn>2</mn></msub></mrow>
<mrow><mo>-</mo><msub><mi>y</mi><mn>2</mn></msub></mrow></mfenced></math>
and
<math xmlns="&mathml;"><mfenced><msub><mi>z</mi><mn>3</mn></msub>
<mrow><mo>-</mo><msub><mi>x</mi><mn>3</mn></msub></mrow>
<mrow><mo>-</mo><msub><mi>y</mi><mn>3</mn></msub></mrow>
</mfenced></math>.<sup><a href="#tx3" id="rf3">3</a></sup>
<math xmlns="&mathml;"><msub><mi>P</mi><mn>7</mn></msub></math>
is obtained from
<math xmlns="&mathml;"><msub><mi>P</mi><mn>4</mn></msub></math>
by a
<math xmlns="&mathml;"><mn>120&deg;</mn></math>
left-hand rotation of the tetrahedron about the vector
from the origin to the point
<math xmlns="&mathml;"><mfenced><mn>1.0</mn><mrow><mo>-</mo><mn>1.0</mn></mrow>
<mrow><mo>-</mo><mn>1.0</mn></mrow></mfenced></math>.  This is achieved by
taking the <math xmlns="&mathml;"><mi>x</mi></math> axis into the
<math xmlns="&mathml;"><mi>z</mi></math> axis, the
<math xmlns="&mathml;"><mi>y</mi></math> axis into the
<math xmlns="&mathml;"><mi>x</mi></math> axis,
and the <math xmlns="&mathml;"><mi>z</mi></math> axis into the
<math xmlns="&mathml;"><mi>y</mi></math> axis, so that
<math xmlns="&mathml;"><msub><mi>P</mi><mn>7</mn></msub></math>
can be expressed as
<math xmlns="&mathml;"><mfenced><msub><mi>y</mi><mn>4</mn></msub>
<msub><mi>z</mi><mn>4</mn></msub><msub><mi>x</mi><mn>4</mn></msub>
</mfenced></math>.
</p>

<p>
So whenever coordinates for
<math xmlns="&mathml;"><msub><mi>P</mi><mn>5</mn></msub></math>,
<math xmlns="&mathml;"><msub><mi>P</mi><mn>6</mn></msub></math> or
<math xmlns="&mathml;"><msub><mi>P</mi><mn>7</mn></msub></math>
are required, these transformed versions of
<math xmlns="&mathml;"><msub><mi>P</mi><mn>2</mn></msub></math>,
<math xmlns="&mathml;"><msub><mi>P</mi><mn>3</mn></msub></math> or
<math xmlns="&mathml;"><msub><mi>P</mi><mn>4</mn></msub></math>
are used.
Thus the symmetry constraints of the programming problem are implicitly
subsumed in these expressions for
<math xmlns="&mathml;"><msub><mi>P</mi><mn>5</mn></msub></math>,
<math xmlns="&mathml;"><msub><mi>P</mi><mn>6</mn></msub></math> and
<math xmlns="&mathml;"><msub><mi>P</mi><mn>7</mn></msub></math>.
The variables of the
programming problem are still limited to the
<math xmlns="&mathml;"><mrow><mi>x</mi><mo>&InvisibleTimes;</mo>
<mi>y</mi><mo>&InvisibleTimes;</mo><mi>z</mi></mrow></math>
coordinates of
the original four points, and no new constraints need to be
added to take into account symmetry.
</p>

<!-- Ref:  v4tetra/bkdtt.rc2 with initial data of v4tetra/bktt0.dat -->
<table id="tab_dttilen" class="center"><tr><td align="center">
<table rules="groups" border="1">
<colgroup></colgroup>
<colgroup></colgroup>
<colgroup></colgroup>
<thead>
<tr valign="bottom"><td align="center">&nbsp;Member&nbsp;<br/>
<table cellpadding="0" cellspacing="0" border="0" rules="none" width="100%">
<tr><td class="w50" align="center">#</td>
<td class="w50" align="center">ID</td></tr></table></td>
<td><table cellpadding="0" cellspacing="0" rules="none" width="100%"><tr>
<td>&nbsp;End&nbsp;Points&nbsp;</td></tr></table></td>
<td><table cellpadding="0" cellspacing="0" rules="none" width="100%"><tr>
<td align="center">Length</td></tr></table></td>
<td><table cellpadding="0" cellspacing="0" rules="none" width="100%"><tr>
<td>&nbsp;Comments&nbsp;</td></tr></table></td></tr>
</thead>

<tbody>
<tr><td>
<table cellpadding="0" cellspacing="0"  rules="none" width="100%">
<tr><td class="w50" align="center">1</td>
<td class="w50" align="center">
<math xmlns="&mathml;">
<msub><mi>t</mi><mrow><mn>1</mn><mn>2</mn></mrow></msub></math></td></tr>
<tr><td class="w50" align="center">2</td>
<td class="w50" align="center">
<math xmlns="&mathml;">
<msub><mi>t</mi><mrow><mn>1</mn><mn>3</mn></mrow></msub></math></td></tr>
<tr><td class="w50" align="center">3</td>
<td class="w50" align="center">
<math xmlns="&mathml;">
<msub><mi>t</mi><mrow><mn>2</mn><mn>3</mn></mrow></msub></math></td></tr>
<tr><td class="w50" align="center">4</td>
<td class="w50" align="center">
<math xmlns="&mathml;">
<msub><mi>t</mi><mrow><mn>4</mn><mn>7</mn></mrow></msub></math></td></tr>
</table></td>
<td>
<table cellpadding="0" cellspacing="0"  rules="none" width="100%">
<tr><td class="w50" align="center">
<math xmlns="&mathml;"><msub><mi>P</mi><mn>1</mn></msub></math></td>
<td class="w50" align="center">
<math xmlns="&mathml;"><msub><mi>P</mi><mn>2</mn></msub></math></td></tr>
<tr><td class="w50" align="center">
<math xmlns="&mathml;"><msub><mi>P</mi><mn>1</mn></msub></math></td>
<td class="w50" align="center">
<math xmlns="&mathml;"><msub><mi>P</mi><mn>3</mn></msub></math></td></tr>
<tr><td class="w50" align="center">
<math xmlns="&mathml;"><msub><mi>P</mi><mn>2</mn></msub></math></td>
<td class="w50" align="center">
<math xmlns="&mathml;"><msub><mi>P</mi><mn>3</mn></msub></math></td></tr>
<tr><td class="w50" align="center">
<math xmlns="&mathml;"><msub><mi>P</mi><mn>4</mn></msub></math></td>
<td class="w50" align="center">
<math xmlns="&mathml;"><msub><mi>P</mi><mn>7</mn></msub></math></td></tr>
</table></td>
<td>
<table cellpadding="0" cellspacing="0" rules="none" class="fill">
<tr><td>&nbsp;0.577350&nbsp;</td></tr>
<tr><td>&nbsp;0.517638&nbsp;</td></tr>
<tr><td>&nbsp;0.517638&nbsp;</td></tr>
<tr><td>&nbsp;1.0</td></tr>
</table></td>
<td>
<table cellpadding="0" cellspacing="0" rules="none" class="fill">
<tr><td>&nbsp;Constraint&nbsp;</td></tr>
<tr><td>&nbsp;Constraint&nbsp;</td></tr>
<tr><td>&nbsp;Constraint&nbsp;</td></tr>
<tr><td>&nbsp;Constraint&nbsp;</td></tr>
</table></td></tr>
</tbody>

<tbody>
<tr><td>
<table cellpadding="0" cellspacing="0"  rules="none" width="100%">
<tr><td class="w50" align="center">5</td>
<td class="w50" align="center">
<math xmlns="&mathml;">
<msub><mi>s</mi><mrow><mi>a</mi><mi>b</mi></mrow></msub></math></td></tr>
<tr><td class="w50" align="center">6</td>
<td class="w50" align="center">
<math xmlns="&mathml;">
<msub><mi>s</mi><mrow><mi>b</mi><mi>b</mi></mrow></msub></math></td></tr>
</table></td>
<td>
<table cellpadding="0" cellspacing="0"  rules="none" width="100%">
<tr><td class="w50" align="center">
<math xmlns="&mathml;"><msub><mi>P</mi><mn>1</mn></msub></math></td>
<td class="w50" align="center">
<math xmlns="&mathml;"><msub><mi>P</mi><mn>7</mn></msub></math></td></tr>
<tr><td class="w50" align="center">
<math xmlns="&mathml;"><msub><mi>P</mi><mn>2</mn></msub></math></td>
<td class="w50" align="center">
<math xmlns="&mathml;"><msub><mi>P</mi><mn>6</mn></msub></math></td></tr>
</table></td>
<td>
<table cellpadding="0" cellspacing="0" rules="none" class="fill">
<tr><td>&nbsp;1.414214&nbsp;</td></tr>
<tr><td>&nbsp;0.919401&nbsp;</td></tr>
</table></td>
<td><table cellpadding="0" cellspacing="0" rules="none" class="fill">
<tr><td>&nbsp;Constraint&nbsp;</td></tr>
<tr><td>&nbsp;Constraint&nbsp;</td></tr>
</table></td></tr>
</tbody>

<tbody>
<tr><td>
<table cellpadding="0" cellspacing="0"  rules="none" width="100%">
<tr><td class="w50" align="center">7</td>
<td class="w50" align="center">
<math xmlns="&mathml;">
<msub><msub><mi>t</mi><mrow><mi>a</mi><mi>b</mi></mrow></msub><mn>1</mn></msub>
</math></td></tr>
<tr><td class="w50" align="center">8</td>
<td class="w50" align="center">
<math xmlns="&mathml;">
<msub><msub><mi>t</mi><mrow><mi>a</mi><mi>b</mi></mrow></msub><mn>2</mn></msub>
</math></td></tr>
<tr><td class="w50" align="center">9</td>
<td class="w50" align="center">
<math xmlns="&mathml;">
<msub><msub><mi>t</mi><mrow><mi>b</mi><mi>b</mi></mrow></msub><mn>1</mn></msub>
</math></td></tr>
<tr><td class="w50" align="center">10</td>
<td class="w50" align="center">
<math xmlns="&mathml;">
<msub><msub><mi>t</mi><mrow><mi>b</mi><mi>b</mi></mrow></msub><mn>2</mn></msub>
</math></td></tr>
</table></td>
<td>
<table cellpadding="0" cellspacing="0"  rules="none" width="100%">
<tr><td class="w50" align="center">
<math xmlns="&mathml;"><msub><mi>P</mi><mn>3</mn></msub></math></td>
<td class="w50" align="center">
<math xmlns="&mathml;"><msub><mi>P</mi><mn>7</mn></msub></math></td></tr>
<tr><td class="w50" align="center">
<math xmlns="&mathml;"><msub><mi>P</mi><mn>1</mn></msub></math></td>
<td class="w50" align="center">
<math xmlns="&mathml;"><msub><mi>P</mi><mn>4</mn></msub></math></td></tr>
<tr><td class="w50" align="center">
<math xmlns="&mathml;"><msub><mi>P</mi><mn>1</mn></msub></math></td>
<td class="w50" align="center">
<math xmlns="&mathml;"><msub><mi>P</mi><mn>6</mn></msub></math></td></tr>
<tr><td class="w50" align="center">
<math xmlns="&mathml;"><msub><mi>P</mi><mn>2</mn></msub></math></td>
<td class="w50" align="center">
<math xmlns="&mathml;"><msub><mi>P</mi><mn>5</mn></msub></math></td></tr>
</table></td>
<td>
<table cellpadding="0" cellspacing="0" rules="none" class="fill">
<tr><td>&nbsp;1.0</td></tr>
<tr><td>&nbsp;0.517638&nbsp;</td></tr>
<tr><td>&nbsp;0.517638&nbsp;</td></tr>
<tr><td>&nbsp;0.577350&nbsp;</td></tr>
</table></td>
<td><table cellpadding="0" cellspacing="0" rules="none" class="fill">
<tr><td>&nbsp;To be minimized&nbsp;</td></tr>
<tr><td>&nbsp;To be minimized&nbsp;</td></tr>
<tr><td>&nbsp;To be minimized&nbsp;</td></tr>
<tr><td>&nbsp;To be minimized&nbsp;</td></tr>
</table></td></tr>
</tbody>
</table>
</td></tr><tr><td align="center">
&nbsp;<br/>Table&nbsp;4.4:  4&nu; Diamond T-Tetrahedron:
Initial Member Lengths
</td></tr></table>

<p>
<a href="#tab_dttilen">Table&nbsp;4.4</a> summarizes the initial
lengths for the constrained members obtained using these coordinate values.
The relevant mathematical programming problem is:
</p>

<p class="center">
<math xmlns="&mathml;"><mtable>
<mtr><mtd><mtext>minimize</mtext></mtd>
<mtd>
 <mrow><mi>o</mi><mo>&equiv;</mo>
 <msup><mfenced open="|" close="|"><mrow><msub><mi>P</mi><mn>3</mn></msub>
 <mo>-</mo><msub><mi>P</mi><mn>7</mn></msub></mrow></mfenced><mn>2</mn></msup>
 <mo>+</mo>
 <msup><mfenced open="|" close="|"><mrow><msub><mi>P</mi><mn>1</mn></msub>
 <mo>-</mo><msub><mi>P</mi><mn>4</mn></msub></mrow></mfenced><mn>2</mn></msup>
 <mo>+</mo>
 <msup><mfenced open="|" close="|"><mrow><msub><mi>P</mi><mn>1</mn></msub>
 <mo>-</mo><msub><mi>P</mi><mn>6</mn></msub></mrow></mfenced><mn>2</mn></msup>
 <mo>+</mo>
 <msup><mfenced open="|" close="|"><mrow><msub><mi>P</mi><mn>2</mn></msub>
 <mo>-</mo><msub><mi>P</mi><mn>5</mn></msub></mrow></mfenced><mn>2</mn></msup>
 </mrow>
 </mtd></mtr>

 <mtr><mtd><mrow>
 <msub><mi>P</mi><mn>1</mn></msub><mo>,</mo>
 <msub><mi>P</mi><mn>2</mn></msub><mo>,</mo>
 <msub><mi>P</mi><mn>3</mn></msub><mo>,</mo>
 <msub><mi>P</mi><mn>4</mn></msub>
 </mrow></mtd></mtr>
 <mtr><mtd></mtd></mtr>
 <mtr><mtd><mtext>subject to</mtext></mtd>
 <mtd><mtext>Tendon constraints:</mtext></mtd></mtr>
 <mtr><mtd></mtd><mtd><mrow><mfrac><mn>1</mn><mn>3</mn></mfrac>
 <mo>&ge;</mo>
 <msup><mfenced open="|" close="|"><mrow><msub><mi>P</mi><mn>1</mn></msub>
 <mo>-</mo><msub><mi>P</mi><mn>2</mn></msub></mrow></mfenced><mn>2</mn></msup>
 </mrow></mtd></mtr>
 <mtr><mtd></mtd><mtd><mrow><mo>tan</mo>
 <mfenced><mfrac><mn>&pi;</mn><mn>12</mn></mfrac></mfenced>
 <mo>&ge;</mo>
 <msup><mfenced open="|" close="|"><mrow><msub><mi>P</mi><mn>1</mn></msub>
 <mo>-</mo><msub><mi>P</mi><mn>3</mn></msub></mrow></mfenced><mn>2</mn></msup>
 </mrow></mtd></mtr>
 <mtr><mtd></mtd><mtd><mrow><mo>tan</mo>
 <mfenced><mfrac><mn>&pi;</mn><mn>12</mn></mfrac></mfenced>
 <mo>&ge;</mo>
 <msup><mfenced open="|" close="|"><mrow><msub><mi>P</mi><mn>2</mn></msub>
 <mo>-</mo><msub><mi>P</mi><mn>3</mn></msub></mrow></mfenced><mn>2</mn></msup>
 </mrow></mtd></mtr>
 <mtr><mtd></mtd><mtd><mrow><mn>1</mn>
 <mo>&ge;</mo>
 <msup><mfenced open="|" close="|"><mrow><msub><mi>P</mi><mn>4</mn></msub>
 <mo>-</mo><msub><mi>P</mi><mn>7</mn></msub></mrow></mfenced><mn>2</mn></msup>
 </mrow></mtd></mtr>
 <mtr><mtd></mtd><mtd><mtext>Strut constraints:</mtext></mtd></mtr>
 <mtr><mtd></mtd><mtd><mrow><mo>-</mo><mn>2</mn>
 <mo>&ge;</mo>
 <mo>-</mo>
 <msup><mfenced open="|" close="|"><mrow><msub><mi>P</mi><mn>1</mn></msub>
 <mo>-</mo><msub><mi>P</mi><mn>7</mn></msub></mrow></mfenced><mn>2</mn></msup>
 </mrow></mtd></mtr>
 <mtr><mtd></mtd><mtd><mrow><mo>-</mo><mn>0.84529946</mn>
 <mo>&ge;</mo>
 <mo>-</mo>
 <msup><mfenced open="|" close="|"><mrow><msub><mi>P</mi><mn>2</mn></msub>
 <mo>-</mo><msub><mi>P</mi><mn>6</mn></msub></mrow></mfenced><mn>2</mn></msup>
 </mrow></mtd></mtr>
</mtable>
</math>
</p>

<p>
This completely specifies the problem.  Again, only the coordinates of
<math xmlns="&mathml;"><msub><mi>P</mi><mn>1</mn></msub></math>,
<math xmlns="&mathml;"><msub><mi>P</mi><mn>2</mn></msub></math>,
<math xmlns="&mathml;"><msub><mi>P</mi><mn>3</mn></msub></math> and
<math xmlns="&mathml;"><msub><mi>P</mi><mn>4</mn></msub></math>
are variables in the minimization process since
the coordinates of
<math xmlns="&mathml;"><msub><mi>P</mi><mn>5</mn></msub></math>,
<math xmlns="&mathml;"><msub><mi>P</mi><mn>6</mn></msub></math> and
<math xmlns="&mathml;"><msub><mi>P</mi><mn>7</mn></msub></math>
are specified to be symmetry
transforms of the coordinates of these points.
</p>

<p>
This is a very formal statement of the problem, and, as stated
in <a href="chap3.xml#solve">Section&nbsp;3.2</a>, to solve it the
inequality constraints are assumed to be met with equality.
</p>

<p class="section-header-level2" id="diamond_solution">
4.2.3&nbsp;Diamond Structures:  Solution
</p>

<p>
As described in
<a href="chap3.xml#solve">Section&nbsp;3.2</a>,
the partials of the member equations and the non-member
constraint equations can be conceived as a matrix,
<math xmlns="&mathml;"><mi>&Psi;</mi></math>,
which has as many rows as their are equations (10 in this case) and as
many columns as there are coordinate values (12 in this case). 
The <math xmlns="&mathml;"><mrow><mi>i</mi><mi>j</mi><mtext>th</mtext>
</mrow></math> element of this matrix,
<math xmlns="&mathml;"><msub><mi>&psi;</mi>
<mrow><mi>i</mi><mi>j</mi></mrow></msub></math>,
is the derivative of the
<math xmlns="&mathml;"><mi>i</mi><mtext>th</mtext></math>
equation with respect to the
<math xmlns="&mathml;"><mi>j</mi><mtext>th</mtext></math>
coordinate value.
The coordinate values are numbered in the order they appear, so for example,
<math xmlns="&mathml;"><msub><mi>&psi;</mi>
<mrow><mn>4</mn><mo>,</mo><mn>11</mn></mrow></msub></math>
is the partial derivative of the second power of the length of the
<math xmlns="&mathml;"><msub><mi>t</mi>
<mrow><mn>4</mn><mn>7</mn></mrow></msub></math>
tendon with respect to
<math xmlns="&mathml;"><msub><mi>y</mi><mn>4</mn></msub></math>.
Its value is
<math xmlns="&mathml;"><mrow>
<mn>2</mn><mo>&InvisibleTimes;</mo>
<mfenced><mrow><msub><mi>y</mi><mn>4</mn></msub><mo>-</mo>
<msub><mi>x</mi><mn>4</mn></msub></mrow></mfenced><mo>+</mo>
<mn>2</mn><mo>&InvisibleTimes;</mo>
<mfenced><mrow><msub><mi>y</mi><mn>4</mn></msub><mo>-</mo>
<msub><mi>z</mi><mn>4</mn></msub></mrow></mfenced></mrow></math>.
This partial is unusual in that it has two terms.
Most of the member-equation partials are either zero or consist of
a single difference.
</p>

<p>
The first step is to reformulate this as an unconstrained
minimization problem by choosing a subset of the coordinates
to be dependent coordinates whose values are obtained
by solving the constraints given the values for the independently
specified coordinates.  Since there are six constraints, there
are six dependent coordinates.  This leaves six
<math xmlns="&mathml;"><mfenced>
<mrow><mn>12</mn><mo>-</mo><mn>6</mn></mrow></mfenced></math>
independent coordinates.  By coincidence, the number of
independent coordinates is equal to the number of dependent coordinates
in this problem.
Using Gaussian elimination with double pivoting on the partial derivative
matrix for the system resulted in
<math xmlns="&mathml;"><msub><mi>x</mi><mn>1</mn></msub></math>,
<math xmlns="&mathml;"><msub><mi>x</mi><mn>2</mn></msub></math>,
<math xmlns="&mathml;"><msub><mi>x</mi><mn>3</mn></msub></math>,
<math xmlns="&mathml;"><msub><mi>z</mi><mn>3</mn></msub></math>,
<math xmlns="&mathml;"><msub><mi>x</mi><mn>4</mn></msub></math> and
<math xmlns="&mathml;"><msub><mi>z</mi><mn>4</mn></msub></math>
being used as the initial
independent coordinates.  So, given the values for these coordinates,
the constraints were solved for the remaining dependent coordinates,
<math xmlns="&mathml;"><msub><mi>y</mi><mn>1</mn></msub></math>,
<math xmlns="&mathml;"><msub><mi>z</mi><mn>1</mn></msub></math>,
<math xmlns="&mathml;"><msub><mi>y</mi><mn>2</mn></msub></math>,
<math xmlns="&mathml;"><msub><mi>z</mi><mn>2</mn></msub></math>,
<math xmlns="&mathml;"><msub><mi>y</mi><mn>3</mn></msub></math> and
<math xmlns="&mathml;"><msub><mi>y</mi><mn>4</mn></msub></math>.
</p>

<!-- Ref:  v4tetra/bkdtt.rc2 with initial data of v4tetra/bktt0.dat;
           values are half what tcalc gives since tcalc no longer
           divides by two. -->
<table id="tab_dttideriv" class="center"><tr><td align="center">
<table rules="groups" border="1">
<colgroup></colgroup>
<thead>
<tr><td align="center">&nbsp;Coordinate&nbsp;</td>
<td align="center">&nbsp;Derivative&nbsp;</td>
</tr>
</thead>
<tbody>
<tr><td align="center">
<math xmlns="&mathml;"><msub><mi>x</mi><mn>1</mn></msub></math></td>
<td align="right">
&nbsp;<math xmlns="&mathml;">
<mrow><mo>-</mo><mn>0.875117</mn></mrow></math>&nbsp;</td></tr>
<tr><td align="center">
<math xmlns="&mathml;"><msub><mi>x</mi><mn>2</mn></msub></math></td>
<td align="right">
&nbsp;<math xmlns="&mathml;">
<mrow><mo>-</mo><mn>0.160155</mn></mrow></math>&nbsp;</td></tr>
<tr><td align="center">
<math xmlns="&mathml;"><msub><mi>x</mi><mn>3</mn></msub></math></td>
<td align="right">
&nbsp;<math xmlns="&mathml;"><mn>1.38037&nbsp;&nbsp;</mn></math>&nbsp;</td>
</tr>
<tr><td align="center">
<math xmlns="&mathml;"><msub><mi>z</mi><mn>3</mn></msub></math></td>
<td align="right">
&nbsp;<math xmlns="&mathml;"><mn>0.345092</mn></math>&nbsp;</td></tr>
<tr><td align="center">
<math xmlns="&mathml;"><msub><mi>x</mi><mn>4</mn></msub></math></td>
<td align="right">
&nbsp;<math xmlns="&mathml;">
<mrow><mo>-</mo><mn>0.345093</mn></mrow></math>&nbsp;</td></tr>
<tr><td align="center">
<math xmlns="&mathml;"><msub><mi>z</mi><mn>4</mn></msub></math></td>
<td align="right">
&nbsp;<math xmlns="&mathml;"><mn>0.597720</mn></math>&nbsp;</td></tr>
</tbody>
</table>
</td></tr><tr><td align="center">
&nbsp;<br/>Table&nbsp;4.5:  4&nu; Diamond T-Tetrahedron:
Initial Objective Function Derivatives
</td></tr></table>

<p>
The initial derivatives of the objective function with respect
to the independent coordinates are summarized in
<a href="#tab_dttideriv">Table&nbsp;4.5</a>.
At a minimum point, the values of all these derivatives will be
as close to zero as the accuracy of the computations permits. 
Instead of constantly looking at this whole list of derivatives
(which can be very long for a complex structure) to assess how
close to a minimum the system is, two summary
statistics can be examined,
the geometric average of the absolute values of these
derivatives, and the variance of the natural logarithm of (the
absolute value of) these derivatives.
The variance is an important statistic, since if the system
starts going singular, one or more of the derivatives starts
to diverge from the rest.  This singularity is a signal that the partitioning
of variables between independent and dependent variables needs to be redone.
</p>

<p>
The value of the objective function is initially 1.86923.
The system is solved using the Parallel Tangents technique which
results in an objective function value of 1.65453.
<a href="#tab_dttpcv">Table&nbsp;4.6</a>
summarizes the corresponding point values,
and <a href="#tab_dttplen">Table&nbsp;4.7</a> summarizes the
lengths of the members in the objective function thus obtained.
</p>

<!-- Ref:  v4tetra/bkdtt1.dat -->
<table id="tab_dttpcv" class="center"><tr><td align="center">
<table rules="groups" border="1">
<colgroup></colgroup>
<thead>
<tr><td></td><td colspan="3" align="center">Coordinates</td></tr>
<tr><td align="center">&nbsp;Point&nbsp;</td>
<td align="center">
&nbsp;&nbsp;<math xmlns="&mathml;"><mi>x</mi></math>&nbsp;&nbsp;</td>
<td align="center">
&nbsp;&nbsp;<math xmlns="&mathml;"><mi>y</mi></math>&nbsp;&nbsp;</td>
<td align="center">
&nbsp;&nbsp;<math xmlns="&mathml;"><mi>z</mi></math>&nbsp;&nbsp;</td>
</tr>
</thead>
<tbody>
<tr><td align="center">
<math xmlns="&mathml;"><msub><mi>P</mi><mn>1</mn></msub></math></td>
<td align="right">
&nbsp;<math xmlns="&mathml;"><mn>0.887555</mn></math>&nbsp;</td>
<td align="right">
&nbsp;<math xmlns="&mathml;"><mrow><mo>-</mo><mn>0.438450</mn></mrow>
</math>&nbsp;</td>
<td align="right">
&nbsp;<math xmlns="&mathml;"><mn>0.455646</mn></math>&nbsp;</td></tr>

<tr><td align="center">
<math xmlns="&mathml;"><msub><mi>P</mi><mn>2</mn></msub></math></td>
<td align="right">
&nbsp;<math xmlns="&mathml;"><mn>0.677306</mn></math>&nbsp;</td>
<td align="right">
&nbsp;<math xmlns="&mathml;"><mrow><mo>-</mo><mn>0.505030</mn></mrow>
</math>&nbsp;</td>
<td align="right">
&nbsp;<math xmlns="&mathml;"><mn>0.989215</mn></math>&nbsp;</td></tr>

<tr><td align="center">
<math xmlns="&mathml;"><msub><mi>P</mi><mn>3</mn></msub></math></td>
<td align="right">
&nbsp;<math xmlns="&mathml;"><mn>0.614181</mn></math>&nbsp;</td>
<td align="right">
&nbsp;<math xmlns="&mathml;"><mrow><mo>-</mo><mn>0.076748</mn></mrow>
</math>&nbsp;</td>
<td align="right">
&nbsp;<math xmlns="&mathml;"><mn>0.705421</mn></math>&nbsp;</td></tr>

<tr><td align="center">
<math xmlns="&mathml;"><msub><mi>P</mi><mn>4</mn></msub></math></td>
<td align="right">
&nbsp;<math xmlns="&mathml;"><mn>0.710900</mn></math>&nbsp;</td>
<td align="right">
&nbsp;<math xmlns="&mathml;"><mrow><mo>-</mo><mn>0.048791</mn></mrow>
</math>&nbsp;</td>
<td align="right">
&nbsp;<math xmlns="&mathml;"><mn>0.590190</mn></math>&nbsp;</td></tr>
</tbody>
</table>
</td></tr><tr><td align="center">
&nbsp;<br/>Table&nbsp;4.6:  4&nu; Diamond T-Tetrahedron:
Preliminary Coordinate Values
</td></tr></table>

<div class="spacer"><br/><br/></div>

<!-- Ref:  v4tetra/bkdtt.rc2 with default data of v4tetra/bkdtt1.dat -->
<table id="tab_dttplen" class="center"><tr><td align="center">
<table rules="groups" border="1">
<colgroup></colgroup>
<thead>
<tr valign="bottom"><td align="center">&nbsp;Member&nbsp;<br/>ID</td>
<td align="center">&nbsp;Length&nbsp;</td>
</tr>
</thead>
<tbody>
<tr><td align="center">
<math xmlns="&mathml;">
<msub><msub><mi>t</mi><mrow><mi>a</mi><mi>b</mi></mrow></msub><mn>1</mn></msub>
</math></td>
<td align="right">
&nbsp;<math xmlns="&mathml;"><mn>0.940409</mn></math>&nbsp;</td></tr>
<tr><td align="center">
<math xmlns="&mathml;">
<msub><msub><mi>t</mi><mrow><mi>a</mi><mi>b</mi></mrow></msub><mn>2</mn></msub>
</math></td>
<td align="right">
&nbsp;<math xmlns="&mathml;"><mn>0.448489</mn></math>&nbsp;</td></tr>
<tr><td align="center">
<math xmlns="&mathml;">
<msub><msub><mi>t</mi><mrow><mi>b</mi><mi>b</mi></mrow></msub><mn>1</mn></msub>
</math></td>
<td align="right">
&nbsp;<math xmlns="&mathml;"><mn>0.455651</mn></math>&nbsp;</td></tr>
<tr><td align="center">
<math xmlns="&mathml;">
<msub><msub><mi>t</mi><mrow><mi>b</mi><mi>b</mi></mrow></msub><mn>2</mn></msub>
</math></td>
<td align="right">
&nbsp;<math xmlns="&mathml;"><mn>0.601166</mn></math>&nbsp;</td></tr>
</tbody>
</table>
</td></tr><tr><td align="center">
&nbsp;<br/>Table&nbsp;4.7:  4&nu; Diamond T-Tetrahedron:
Preliminary Objective Member Lengths
</td></tr></table>

<p>
This would be the end of the calculations, except that when
the endogenous member forces are calculated,
they indicate that "tendon"
<math xmlns="&mathml;">
<msub><mi>t</mi><mrow><mn>1</mn><mn>2</mn></mrow></msub></math>
is marginally in compression
(see <a href="chap7_2.xml#tab_dttstress">Table&nbsp;7.1</a>).
This problem stems from the substitution of
equalities for inequalities in the constraints.  If
inequalities had been used, this particular constraint would be found
to be not effective.  At this point the problem is dealt with by eliminating
the member from the constraints which means the tendon doesn't appear in the
final structure.<sup><a href="#tx4" id="rf4">4</a></sup>
Eliminating this constraint also
means a new selection of independent variables needs to be made
since seven are now needed.
Repartitioning results in
<math xmlns="&mathml;"><msub><mi>z</mi><mn>1</mn></msub></math>
being added to the independent variables.
Using the Parallel Tangents technique on this problem
resulted in a final objective-function value of 1.65174.
<a href="#tab_dttfcv">Table&nbsp;4.8</a>
summarizes the corresponding point values;
<a href="#tab_dttflen">Table&nbsp;4.9</a>
summarizes the objective function member lengths,
and <a href="#fig_v4dtt">Figure 4.8</a> shows the final design
where the location of the omitted tendon is indicated by a dashed line.
</p>

<!-- Ref:  v4tetra/bkdtt2.dat -->
<table id="tab_dttfcv" class="center"><tr><td align="center">
<table rules="groups" border="1">
<colgroup></colgroup>
<thead>
<tr><td></td><td colspan="3" align="center">Coordinates</td></tr>
<tr><td align="center">&nbsp;Point&nbsp;</td>
<td align="center">
&nbsp;&nbsp;<math xmlns="&mathml;"><mi>x</mi></math>&nbsp;&nbsp;</td>
<td align="center">
&nbsp;&nbsp;<math xmlns="&mathml;"><mi>y</mi></math>&nbsp;&nbsp;</td>
<td align="center">
&nbsp;&nbsp;<math xmlns="&mathml;"><mi>z</mi></math>&nbsp;&nbsp;</td>
</tr>
</thead>
<tbody>
<tr><td align="center">
<math xmlns="&mathml;"><msub><mi>P</mi><mn>1</mn></msub></math></td>
<td align="right">
&nbsp;<math xmlns="&mathml;"><mn>0.874928</mn></math>&nbsp;</td>
<td align="right">
&nbsp;<math xmlns="&mathml;"><mrow><mo>-</mo><mn>0.442843</mn></mrow>
</math>&nbsp;</td>
<td align="right">
&nbsp;<math xmlns="&mathml;"><mn>0.484207</mn></math>&nbsp;</td></tr>

<tr><td align="center">
<math xmlns="&mathml;"><msub><mi>P</mi><mn>2</mn></msub></math></td>
<td align="right">
&nbsp;<math xmlns="&mathml;"><mn>0.675644</mn></math>&nbsp;</td>
<td align="right">
&nbsp;<math xmlns="&mathml;"><mrow><mo>-</mo><mn>0.506061</mn></mrow>
</math>&nbsp;</td>
<td align="right">
&nbsp;<math xmlns="&mathml;"><mn>0.981906</mn></math>&nbsp;</td></tr>

<tr><td align="center">
<math xmlns="&mathml;"><msub><mi>P</mi><mn>3</mn></msub></math></td>
<td align="right">
&nbsp;<math xmlns="&mathml;"><mn>0.602311</mn></math>&nbsp;</td>
<td align="right">
&nbsp;<math xmlns="&mathml;"><mrow><mo>-</mo><mn>0.068420</mn></mrow>
</math>&nbsp;</td>
<td align="right">
&nbsp;<math xmlns="&mathml;"><mn>0.715369</mn></math>&nbsp;</td></tr>

<tr><td align="center">
<math xmlns="&mathml;"><msub><mi>P</mi><mn>4</mn></msub></math></td>
<td align="right">
&nbsp;<math xmlns="&mathml;"><mn>0.699892</mn></math>&nbsp;</td>
<td align="right">
&nbsp;<math xmlns="&mathml;"><mrow><mo>-</mo><mn>0.049794</mn></mrow>
</math>&nbsp;</td>
<td align="right">
&nbsp;<math xmlns="&mathml;"><mn>0.605188</mn></math>&nbsp;</td></tr>
</tbody>
</table>
</td></tr><tr><td align="center">
&nbsp;<br/>Table&nbsp;4.8:  4&nu; Diamond T-Tetrahedron:
Final Coordinate Values
</td></tr></table>

<div class="spacer"><br/><br/></div>

<table id="tab_dttflen" class="center"><tr><td align="center">
<table rules="groups" border="1">
<colgroup></colgroup>
<thead>
<tr valign="bottom"><td align="center">&nbsp;Member&nbsp;<br/>ID</td>
<td align="center">&nbsp;Length&nbsp;</td>
</tr>
</thead>
<tbody>
<tr><td align="center">
<math xmlns="&mathml;">
<msub><msub><mi>t</mi><mrow><mi>a</mi><mi>b</mi></mrow></msub><mn>1</mn></msub>
</math></td>
<td align="right">
&nbsp;<math xmlns="&mathml;"><mn>0.937671</mn></math>&nbsp;</td></tr>
<tr><td align="center">
<math xmlns="&mathml;">
<msub><msub><mi>t</mi><mrow><mi>a</mi><mi>b</mi></mrow></msub><mn>2</mn></msub>
</math></td>
<td align="right">
&nbsp;<math xmlns="&mathml;"><mn>0.446946</mn></math>&nbsp;</td></tr>
<tr><td align="center">
<math xmlns="&mathml;">
<msub><msub><mi>t</mi><mrow><mi>b</mi><mi>b</mi></mrow></msub><mn>1</mn></msub>
</math></td>
<td align="right">
&nbsp;<math xmlns="&mathml;"><mn>0.473042</mn></math>&nbsp;</td></tr>
<tr><td align="center">
<math xmlns="&mathml;">
<msub><msub><mi>t</mi><mrow><mi>b</mi><mi>b</mi></mrow></msub><mn>2</mn></msub>
</math></td>
<td align="right">
&nbsp;<math xmlns="&mathml;"><mn>0.590748</mn></math>&nbsp;</td></tr>
</tbody>
</table>
</td></tr><tr><td align="center">
&nbsp;<br/>Table&nbsp;4.9:  4&nu; Diamond T-Tetrahedron:
Final Objective Member Lengths
</td></tr></table>

<div class="spacer"><br/><br/></div>

<table id="fig_v4dtt" class="center"><tr align="center"><td>
<!-- Ref:  bkdtt2.pov -->
<img src="v4dtt.png" width="522" height="467"
 alt="view of final design for 4v diamond t-tetrahedron"/><br/>
Figure 4.8:  4&nu; Diamond T-Tetrahedron:  Final Design
</td></tr></table>

<div id="footnotes">
<hr class="footmark"/>
<p class="note">
<sup><a href="#rf1" id="tx1">1</a></sup>
  The qualifier "2&nu;" is explained below.
  </p>

<p class="note">
<sup><a href="#rf2" id="tx2">2</a></sup>
  <a href="refs.html#Kenner76"><i>Kenner76</i></a>, Chapter&nbsp;5.
  </p>

<p class="note">
<sup><a href="#rf3" id="tx3">3</a></sup>
<math xmlns="&mathml;"><msub><mi>x</mi><mi>n</mi></msub></math>,
<math xmlns="&mathml;"><msub><mi>y</mi><mi>n</mi></msub></math> and
<math xmlns="&mathml;"><msub><mi>z</mi><mi>n</mi></msub></math>
represent the Cartesian coordinates of
<math xmlns="&mathml;"><msub><mi>P</mi><mi>n</mi></msub></math>.
  </p>

<p class="note">
<sup><a href="#rf4" id="tx4">4</a></sup>
  Alternatively, its length could be shortened until it is effective.
  </p>
</div>

<p class="link">
<a href="index.html#chap4_2">Table of Contents</a><br/>
4.3&nbsp;<a href="chap4_3.xml">Zig-Zag Structures</a>
</p>

</body>
</html>
