4, 2
0.442242 P,
2, 1
0.442242 P,
1, 4
0.788789 P,
3, 2
0.625425 P
As one can see, we renamed the element forces and deflections and applied the additional DisplaySo
lution function to print the results in twodimensional form. Note that in the second solution of truss1
we changed the names of output parameters (element forces and node deflections) as well.
To obtain the results symbolically, even for simple structures, can be useful for educational purposes.
Such a solution demonstrates how the given parameters were involved in the description of the truss at
the stage of problem setup and where these parameters appear in the output of the unified solver. For
instance, in the example above we can see that all parameters of the SolveTruss output depend on
load P, and node deflections are directly proportional to the load P and length l, but inversely propor
tional to the crosssectional area of the elements and Young's moduli.
The key functions in the visualization and graphics analysis of the plane trusses are the following:
TrussStructurePlot, TrussReactionPlot, TrussDeflectionPlot. Let us demonstrate a
more elaborate example of the multielement plane truss construction built by compact code written in
Mathematica.
The standard Mathematica function GraphicsArray applied to a sequence of steps to build a 2D
crosscut of an Eiffel towerlike structure: stage1, stage2, stage3, stage4, stage5 gives the following
graph:
Show[GraphicsArray[{{stage1, stage2, stage3, stage4, stage5}}]];
Describing the given truss by using Structure, Loads, Reactions as was shown above,
we can solve the specified truss directly by applying the TrussReactionPlot function to the properly
set Truss object. Some special options were used below to obtain the graphical image of the Truss
object called truss3.
Trusses.nb 5
Printed by Wolfram Mathematica Student Edition
Describing the given truss by using Structure, Loads, Reactions as was shown above,
we can solve the specified truss directly by applying the TrussReactionPlot function to the properly
set Truss object. Some special options were used below to obtain the graphical image of the Truss
object called truss3.
TrussReactionPlot[truss3,
ForceScale {.08, Automatic},
Forces True,
FontSize 6];


The blue arrow represents the load and the red arrows represent the reaction of supports.
As we can see, the truss is supported by the fixed supports applied at the foundation nodes of the
structure, and the load is applied at the node that was chosen in the truss3 description.
If truss3 had been previously solved using SolveTruss, there is a way to reuse the solution in
TrussReactionPlot without recomputing it.
Another graphical function in truss analysis is TrussDeflectionPlot. This function analyzes a truss
or reuses the results of prior analysis, draws the initial and deformed trusses and specifies the values of
element forces by the color of a deformed truss. Options for this function allow the user to specify
styles for representing the results of analysis and for drawing the truss.
Consider the direct graphical deflection analysis of a truss structure in the following example. A Ferris
wheel in a fairground can be idealized as eight pinended spokes of length 10.0 m attached symmetri
cally to a rigid rim and meeting at a central hub of negligible dimensions. The spokes are all of steel
and have the same crosssectional area, equal to 5.00 10
3
m
2
. The loading on the wheel induces a
total reactive force at the hub of 500. kN directed at 30 to the vertical as shown. Taking the hub to be
the single free joint in the structure, calculate the displacements of the hub relative to the rim and
maximum forces in the spokes. After describing this truss as truss4, we can use directly the TrussDe
flectionPlot function to draw the truss and solve the problem. The NodeLabel option allows the
user to give any description of the truss nodes.
The description label used below has the following form {{acoordinates, "A"}, ...}. The DeflectionCoef
ficient option set up to m instructs the plotter to scale the deflections by the factor of m before
drawing them. The default is 20. The Deflections option specifies whether the deflection values
should also be printed beside the deflected elements in the graph. (Default is False).
6 Trusses.nb
Printed by Wolfram Mathematica Student Edition
TrussDeflectionPlot[truss4,
NodeLabel labels,
DeflectionCoefficient 1000,
Deflections True,
DisplayLegend True,
LegendPosition {1.5,1.}
];
8 <
8 <
8 <
8 <
8 <
8 <
8 <
8 <
8 <

As we can see in the picture, the TrussDeflectionPlot function gives the range of the forces in the
bars and deflections of the nodes. Note that the nodes that do not experience deflections will have both
zero deflection values and "fixed" qualifiers printed beside them.
All standard Mathematica options for Graphics can be also used to finetune the outputs of TrussRe
actionPlot and TrussDeflectionPlot. The latter also accepts all the options of the Mathematica
Legend object.
The package uses consistent naming conventions for options across all the solvers and plotters, such
as TrussDeflectionPlot, TrussDeflectionPlot3D, TrussReactionPlot, TrussReaction
sPlot3D, TrussStructurePlot, TrusssStructurePlot3D, FrameReactionsPlot, FrameDe
flectionsPlot, FrameStructurePlot, etc.
A most attractive feature of the package is the graphical analysis of 3D trusses. First we have to note
that 3D truss structures should be described by the same Truss object, but in this case all the points
involved are three dimensional. The numerical, and in some cases, closed form symbolic solution could
be obtained by using SolveTruss3D applied to the appropriate Truss object. The graphical solution
or visualization could be done by TrussReactionPlot3D and TrussDeflectionPlot3D. There are
only small differences between the plane and space truss analysis and graphical representations. The
forces in the 3D case are represented by the colored points and printed values, and the bars in 3D can
be shown as prisms for better visibility. To demonstrate the geometry of the entire truss construction,
the package has two auxiliary functions: TrussStructurePlot and TrussStructurePlot3D.
These functions can be used at any stage of truss analysis. To this end they accept the Elements,
Structure, and Truss objects. Below we give the graphical image for space structure truss25 gener
ated by TrussStructurePlot3D with the PrismaticBars option set to True.
Trusses.nb 7
Printed by Wolfram Mathematica Student Edition
TrussStructurePlot3D[truss25,
NodeLabel labels,
FontColor RGBColor[1,1,1],
PrismaticBars True,
SpaceBarStyle {4, RGBColor[1,0,.2]},
ElementStyle {.15, GrayLevel[.9]},
Background RGBColor[0,0,0],
ViewPoint {10,7,20}];
Changing the standard ViewPoint option, we can animate the observation of this structure from
different pointsofview. In the figure below, the TrussReactionPlot3D function gives the direct
analysis of support reactions for this structure. Here the blue point gives the applied load and the four
yellow points represent the reactions of fixed supports. ViewPoint was also changed, and the nodes
labels were dropped to demonstrate the options.
8  < 8 <
8 < 8   <
8  <
The deflection analysis for 3D trusses can be done by the TrussDeflectionPlot3D function. As in
the planar case, the element forces in the bars are represented on the graph by the color of the ele
ments. In addition to the specific options, the 3D truss plotters accept all the options allowed for the
Mathematica Graphics and Graphics3D objects. We will demonstrate how the different graphics
objects in Mathematica could be combined in the analysis of a space arch. The two pictures below use
the Graphics objects generated by the TrussReactionPlot3D and TrussDeflectionPlot3D
functions used for analysis. The standard Rectangle, Graphics and Show commands are used to
combine the images. In the two pictures below, the left arcs show the applied forces at the different
nodes by the blue points, and the support reactions are shown by the red points. On the right side of the
pictures, the shapes of deflecting arch are shown, and by the bars' color the stress in the bars is indi
cated.
8 Trusses.nb
Printed by Wolfram Mathematica Student Edition
The deflection analysis for 3D trusses can be done by the TrussDeflectionPlot3D function. As in
the planar case, the element forces in the bars are represented on the graph by the color of the ele
ments. In addition to the specific options, the 3D truss plotters accept all the options allowed for the
Mathematica Graphics and Graphics3D objects. We will demonstrate how the different graphics
objects in Mathematica could be combined in the analysis of a space arch. The two pictures below use
the Graphics objects generated by the TrussReactionPlot3D and TrussDeflectionPlot3D
functions used for analysis. The standard Rectangle, Graphics and Show commands are used to
combine the images. In the two pictures below, the left arcs show the applied forces at the different
nodes by the blue points, and the support reactions are shown by the red points. On the right side of the
pictures, the shapes of deflecting arch are shown, and by the bars' color the stress in the bars is indi
cated.
Show[Graphics[{Rectangle[{9, 0}, {0, 9}, [[1]]],
Rectangle[{0, 0}, {9, 9}, [[2]]]}],
Background GrayLevel[.9]] & /
{{ArchReactions1, ArchDeflections1},
{ArchReactions2, ArchDeflections2}};
More sophisticated image composition is presented in the figure below. The graphics images of initial
and deflecting arches are obtained by TrussDeflectionPlot3D, the separate graphics image Bird
is used to show the view point, and in the small rectangular only the deflecting arch is shown from the
pointofview where the bird is located. In general, graphical objects coming from different sources can
be easily combined in Mathematica environment to form a collated image.
Trusses.nb 9
Printed by Wolfram Mathematica Student Edition
Initial strains in plane structures
The package allows analysis not only of the loaded structures, but also the plane trusses subject to
misfits, thermal changes, and fabrication errors, as well as substructuring in the truss and frame
analysis.
The same unified SolveTruss function analyzes the truss structures subject to the misfits, thermal
changes in the elements, and fabrication errors. This general category of problems can be solved as
initialforce problems in the context of equations [Sack 1989]. In these cases one has to add to the
description of the Truss object the appropriate part InitialStrains or Misfits.
We return to the first example, but now in addition to the acting force, the element that connected the
nodes 1 and 2 is heated 100F above the temperature of the other elements. We find the nodal displace
ments, the reaction forces, and the element forces. Assume = 6.5 10^6 in/(inF).
truss2 Append[truss1, InitialStrains[{{{0, l}, {0, 0}}, , }]];
We have to add the numerical values for the unknown parameters to solve the problem numerically.
The same unified function SolveTruss gives the solution.
SolveTruss]truss2 /.
] 6.5 10
6
, 100, 0.993, 29000, l 144, P 50), x, y, // DisplaySolution
r1 30.0501, r2 50., r3 19.9499, r4 50., x
2
0.475523, x
4
0.575283, y
2
0.19336, y
4
0.150266,
1, 3
0,
3, 4
30.0501,
4, 2
19.9499,
2, 1
19.9499,
1, 4
42.4973,
3, 2
28.2134
The same graphical functions TrussReactionPlot and TrussDeflectionPlot will analyze and
plot the structures subject to thermal change and misfits as usual. For instance, below we consider a
truss that has four bars intersecting at one point, the other ends of the bars having fixed supports on a
vertical wall. Point a has coordinates {0,0}. The points at the walls from top to bottom have coordinates:
b = {4,4}, c = {4,3}, d = {4,0}, e = {4,4}.
We find the nodal displacements and maximum element forces for the truss, if element ac is fabricated
5 mm too short. The modulus of elasticity for all bars is equal to 200 GPa and the crosssectional areas
for the bars are as follows A(ab) = A(ae) = 1131mm
2
, A(ac) = 500 mm
2
, and A(ad) = 400 mm
2
.
[Sack 1989]. The direct solution by the graphics function gives the following picture.
If the element {a,c} is constructed 5 mm too short, it means that this element will be in tension, Ele
ment forces are necessary to constrain the members so that nodal displacements are zero when the
element experiences the initial strain. This line of thought suggests the use of the InitialStrains
object. The change in the length is equal to = .005 (measured in meters)and the strain per unit of the
length is equal to = 1/L, where L is the length of the element.
10 Trusses.nb
Printed by Wolfram Mathematica Student Edition
If the element {a,c} is constructed 5 mm too short, it means that this element will be in tension, Ele
ment forces are necessary to constrain the members so that nodal displacements are zero when the
element experiences the initial strain. This line of thought suggests the use of the InitialStrains
object. The change in the length is equal to = .005 (measured in meters)and the strain per unit of the
length is equal to = 1/L, where L is the length of the element.
Calculate the length of this truss element and determine the initial strain as follows:
rl _ .005,
1
L Dot[(c a), (c a)]
_;
strain1 InitialStrains[{{a, c}, , } ] /. rl;
The expression strain1 is included in the description of truss10 as well as Structure and Reac
tions objects.
TrussDeflectionPlot[truss10,
NodeLabel labels, DeflectionCoefficient 500,
ElementStyle {.07, GrayLevel[.667]},
DisplayLegend True, LegendPosition {.6, .9},
Deflections True, BarStyle {.005, GrayLevel[0.5]}];
8 <
8 <
8 <
8 <
8 <

The depicted values of deflection of nodes on the wall are {0,0}. This emphasizes the fact that these
nodes have the fixed supports. The deflection of node a is multiplied by the coefficient 500 before being
plotted. The maximum element force appears in the bar {a,c} and its value is depicted on the force
diagram. The flexible choices for option values allow the program to attain maximum clarity and visual
quality for structure images.
Substructuring in trusses
Some structures are too large to be analyzed as a single system, and they can be investigated only
after division into a number of smaller units or substructures. With the smaller problem sizes, faster,
more convenient and more reliable solutions are obtained. The response of the total system is estab
lished by synthesizing the individual substructural responses in a systematic fashion. In substructuring,
the nodes are grouped into interior nodes and interface nodes, then the behavior of the structure of both
is analyzed.
Even though the output of the unified SolveTruss function gives the reactions of supports and the
deflections only at the interface nodes, the geometry of the entire structure is involved in considering a
calculation. SolveTruss solves the problem by substructural analysis only when the description of
truss structure includes the InterfaceNodes object . The following examples illustrate the usage of
InterfaceNodes.
Trusses.nb 11
Printed by Wolfram Mathematica Student Edition
Even though the output of the unified SolveTruss function gives the reactions of supports and the
deflections only at the interface nodes, the geometry of the entire structure is involved in considering a
calculation. SolveTruss solves the problem by substructural analysis only when the description of
truss structure includes the InterfaceNodes object . The following examples illustrate the usage of
InterfaceNodes.
This structure is taken from the examples library of the package. It is simply the foundation of a two
dimensional tower (called truss23 in the example library)the intermediate stage of building that
structure. This structure has 20 nodes, but let us assume that for some reason the responses at five of
these nodesthe ones with numbers 2, 9, 11, 12, 19are more important to us than the rest. The
following shows the InterfaceNodes object listing the nodes of importance added to the truss23
definition:
truss23 = Truss[InterfaceNodes["9","2","11","12","19"]/.
StructureNames[elements23],
reactions23, loads23, structure23];
SolveTruss gives the deflections of interfaces and support reactions.
truss23//SolveTruss
Dx11 0.00027525, Dx12 0.0000875278, Dx16 0.000256787, Dx19 0.0000575047, Dx2 0.000100786,
Dx7 0.00129238, Dx9 0.00105104, Dy11 0.000210681, Dy12 0.00049829, Dy16 0.000719956,
Dy19 0.000111986, Dy2 0.0000215334, Dy7 0.00142344, Dy9 0.00129134, r5 11.3131,
r7 11.3084, r8 11.6104, r6 20.2844, r2 4.28275, r1 4.54429, r3 7.16585, r4 22.388
To find support reactions graphically, use TrussReactionPlot instead:
TrussReactionPlot[truss23,
ElementStyle {.002, RGBColor[.5,0,.5]},
NodeSize .02, Forces True, FontSize 9];


 
An overview of frames and beams
The package solves not only truss but also plane prismatic frames. For this reason the Frame object is
introduced in Mathematica, and an additional simple object, InertiaMoments, is used for the purpose
of frame analysis. The frames solved in the package can be loaded, subject to thermal changes, and
can be defined as axially rigid or inextensible. The substructuring in the frames is implemented in the
package as well. The similar graphical functions FrameReactionPlot and FrameDeflectionPlot
could be used for graphical analysis, or just for visualization.
Many modern bridges have structural elements described as beams and cables. The package gives a
complete analysis of straight EulerBernoulli beams in static equilibrium.
For illustration purposes, let us give a picture of one beam, described in terms of a Beam object and
plotted by BeamReactionPlot with the option SolvedStructure set to False.
12 Trusses.nb
Printed by Wolfram Mathematica Student Edition
The package solves not only truss but also plane prismatic frames. For this reason the Frame object is
introduced in Mathematica, and an additional simple object, InertiaMoments, is used for the purpose
of frame analysis. The frames solved in the package can be loaded, subject to thermal changes, and
can be defined as axially rigid or inextensible. The substructuring in the frames is implemented in the
package as well. The similar graphical functions FrameReactionPlot and FrameDeflectionPlot
could be used for graphical analysis, or just for visualization.
Many modern bridges have structural elements described as beams and cables. The package gives a
complete analysis of straight EulerBernoulli beams in static equilibrium.
For illustration purposes, let us give a picture of one beam, described in terms of a Beam object and
plotted by BeamReactionPlot with the option SolvedStructure set to False.


H  L
Figure 2. The loaded EulerBernoulli beam.
The SolveBeam function gives the complete solution of this beam, but the beam analysis has the
additional graphical functions ShearPlot, BendingMomentPlot, SlopePlot, and Deflection
Plot. The SolveBeam function could be used in symbolic mode as well as in numeric.
This functions take the solution of the given beam and visualize the result, or take the Beam object and
draw the respective solution. In the figure below, the SlopePlot and DeflectionPlot functions
analyze the slope and deflections of the centroid axis of the beam shown above.
{SlopePlot[#, LineThickness .02],
DeflectionPlot[#, LineThickness .02]}&/@{beam1};
Coplanar cables
There are no special graphical functions for the analysis of coplanar cables in the package, but there is
a wealth of symbolic computation, because cable analysis is based on the principles of double integra
tion. There are two types of cables. In suspension bridges we find a coplanar arrangement, in which a
cable supports a large load but the weight of the cable itself may often be considered negligible (the so
called parabolic case). In transmission lines the principal factor is the weight of the cable itself (the so
called catenary case). In this package we consider both parabolic and catenary cases. Once a cable
structure is given by its span and sag loads, the function for cable analysis generates an equation for
the cable curve, gives a value of cable length, an equation for tension as the function of the horizontal
coordinate (or of the cable length itself), and the horizontal coordinate of the left support for asymmetric
cable.
Trusses.nb 13
Printed by Wolfram Mathematica Student Edition
There are no special graphical functions for the analysis of coplanar cables in the package, but there is
a wealth of symbolic computation, because cable analysis is based on the principles of double integra
tion. There are two types of cables. In suspension bridges we find a coplanar arrangement, in which a
cable supports a large load but the weight of the cable itself may often be considered negligible (the so
called parabolic case). In transmission lines the principal factor is the weight of the cable itself (the so
called catenary case). In this package we consider both parabolic and catenary cases. Once a cable
structure is given by its span and sag loads, the function for cable analysis generates an equation for
the cable curve, gives a value of cable length, an equation for tension as the function of the horizontal
coordinate (or of the cable length itself), and the horizontal coordinate of the left support for asymmetric
cable.
All components in the descriptions of the cable structures are represented by the objects specifically
designed for these purpose and are described in familiar terms. The following objects: Span, Sag, and
Height, provide the description of the geometry of symmetrical and asymmetrical cable structures. A
Mathematica pure function is a reasonably good tool for describing distributed loading for cables, and
that is what is used in the underlying design in the package. As we already mentioned, within this
package a cable with the loading distributed along the horizontal coordinate will be described as a
Cable object. The cables with loading distributed along the cable length are represented by the Chain
object. The unified SolveCable function and other functions can handle numeric, and in many cases,
symbolic solutions for cables and chains.
As an example let us find the shape of a cable stretched between two points on the same level. The
cable has forces l meter apart with sag f meters, and it is subject to a loading of c Newton/Meters
distributed in the horizontal direction.
0.125 l
2
ArcSinh
4. f
l
f
,
Tension
c Newton 0.015625 l
4
f
2
x
2
f
Notice that Figure3 was plotted by the CableStructurePlot function, and the following settings of
the options were used:
CableStructurePlot_cable1,
CableLabel _"l Meter", "f Meter", "c
Newton
Meter
"_,
Background RGBColor[.9, .9, 1] _
Figure 4 and Figure 5 were reproduced by CableStructurePlot as well.
The input data for the functions in the Engineering Structures package for asymmetric cables should be
numeric. (The following example shows the characteristic usage of numeric data in asymmetric case).
Find the maximum tension.of the cable carrying a horizontally distributed load of 3 kg/m . It is stretched
between two supports not at the same level. The left side of a cable is mounted at an elevation 10 m
below the right side. The sag, measured from the left support, is 10 m. The span is equal to 200 m.
(Similar to the problem 6.9 , W.G. McLean&E.W.Nelson, Engineering mechanics )