Mechanical Behavior of Truss Materials

Mechanical Behavior of Truss Materials
by
Jeremy C. Wallach
B.S.E. Mechanical Engineering
Princeton University, 1998
SUBMITTED TO THE DEPARTMENT OF MECHANICAL ENGINEERING IN
PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF
MASTER OF SCIENCE IN MECHANICAL ENGINEERING
AT THE
MASSACHUSETTS INSTITUTE OF TECHNOLOGY
JUNE 2000
©2000 Jeremy C. Wallach. All rights reserved.
The author hereby grants to MIT permission to reproduce
and to distribute publicly paper and electronic
copies of this thesis document in whole or in part.
Signature of Author:________
Department of Mechanical Engineering
May 10, 2000
Certified by:
Lorna J. Gibson
& Engineering
Science
Materials
of
Matoulas S Salapatas Professor
Thesis Supervisor
Accepted by:
Ain A. Sonin
Professor of Mechanical Engineering
ETduate
Chairman,
IN8TITUlT
HUSETIS
STTE Students
INTITUTE
MASSACHUSETTSMASSACHU~lTS
OF TECHNOLOGY
OF TECHNOLOGY TUTE
JAN 17 2002
LIBRARIES
LIBRARIES
Mechanical Behavior of Truss Materials
by
Jeremy C. Wallach
Submitted to the Department of Mechanical Engineering
on May 5, 2000 in Partial Fulfillment of the
Requirements for the Degree of Master of Science in
Mechanical Engineering
ABSTRACT
A variety of novel manufacturing techniques can be used to make materials with a periodic, threedimensional truss-like structure. The high stiffness per unit weight of such structures makes them
attractive for use in sandwich panels. This thesis examines the elastic moduli and the uniaxial and
shear strengths of some truss materials. Numerical modeling includes linear and non-linear
analyses of a periodic unit cell and finite-size structures. Predictions for normal and shear
properties compare well with experimental results. Normalized moduli and strengths are
determined as a function of unit cell aspect ratio, demonstrating that the properties may be varied
depending on the functional requirements. Also examined are size effects and defect sensitivity.
Studies incorporate the Lattice Block truss material and the octet truss material. Finally, an
alternative manufacturing process for truss-core sandwich panels is demonstrated.
Thesis Supervisor: Lorna J. Gibson
Title: Matoulas S Salapatas Professor of Materials Science & Engineering
-- 2 -
BIOGRAPHICAL NOTE
The author attended the Hackley School, in Tarrytown, NY, and graduated valedictorian in 1994.
He received a B.S.E. in Mechanical Engineering and a certificate in Materials Science from
Princeton University in 1998, graduating Magna cum Laude. He began work at MIT in
September 1998 and is currently finishing an M.S. in Mechanical Engineering under Professor
Gibson. The Fannie and John Hertz foundation awarded him a Graduate Fellowship that funded
his current studies. Previous summer employment included jobs at Carl Zeiss, Inc., Stanford
University (the CPIMA program), McDonnell Douglas / The Boeing Company, and the HewlettPackard Company. Most importantly, the author is engaged to the charming and wonderful
Jennifer Jensen, whom he will marry this June.
-3 -
ACKNOWLEDGEMENTS
I would like to thank my advisor, Professor Gibson, for her guidance, inspiration, and
encouragement. I gratefully acknowledge the financial support of the Fannie and John Hertz
foundation. Additional support for this project came from ARPA through Contract Number
N00014-96-1-1028. I also want to thank JAMCORP for supplying Lattice Block specimens.
- 4-
TABLE OF CONTENTS
1.
INTRO D U CTION ................................................................................................................................ 8
SANDW ICH BEAM S ...................................................................................................................................... 8
FOAM CORE M ATERIALS ............................................................................................................................. 8
TRUSS M ATERIALS .................................................................................................................................... I I
QUESTIONS ................................................................................................................................................ 12
OUTLINE .................................................................................................................................................... 12
11.
M O DELIN G O VERV IEW ................................................................................................................ 13
STRUCTURE GENERATION ......................................................................................................................... 13
TRUSS SOLVER IN M ATLA B .................................................................................................................... 17
The M atrixMethod ............................................................................................................................... 17
Linked Nodes ........................................................................................................................................ 19
The Modified Matrix Method................................................................................................................ 20
FINITE ELEMENT ANALYSIS AND M ODEL CONVERSION ............................................................................ 21
RAY TRACE IMAGES .................................................................................................................................. 23
111.
LATTICE BLO CK M ATERIAL ..................................................................................................24
GEOMETRY ................................................................................................................................................ 24
Description ........................................................................................................................................... 24
ELASTIC CONSTANTS ................................................................................................................................ 25
ANALYSIS .................................................................................................................................................. 28
PROPERTIES OF SOLID MATERIAL ............................................................................................................... 29
NORMAL STRESS / STRAIN ........................................................................................................................ 31
ALTERNATE M ETHOD FOR NORMAL STRESS / STRAIN .............................................................................. 39
Boundary Conditions:A DetailedExample.......................................................................................... 40
SHEAR STRESS / STRAIN ............................................................................................................................ 42
GEOMETRY EFFECTS ................................................................................................................................. 46
DEFECT SENSITIVITY ................................................................................................................................. 51
EXPERIMENTAL VERIFICATION AND FAILURE ANALYSIS .......................................................................... 54
Procedure .............................................................................................................................................54
Results...................................................................................................................................................56
Discussion.............................................................................................................................................58
COMPARISON TO M ETAL FOAM ................................................................................................................. 64
IV.
O CTET TRU SS M ATERIAL ........................................................................................................68
GEOMETRY ................................................................................................................................................68
NORMAL STRESS / STRAIN ........................................................................................................................ 70
SHEAR STRESS / STRAIN ............................................................................................................................ 73
GEOMETRY EFFECTS .................................................................................................................................76
BUCKLE TO YIELD TRANSITION ................................................................................................................. 79
V.
TRU SS CO RE M ATERIAL ..............................................................................................................83
DESCRIPTION .............................................................................................................................................83
M ANUFACTURING .....................................................................................................................................85
VI.
SUMM A RY .....................................................................................................................................91
VII.
REFEREN CES ...............................................................................................................................93
VIII.
APPEND IX .....................................................................................................................................94
A. MATLAB script to create the Lattice Block unit cell (unit cell.m ).................................................. 94
-5-
B.
C.
D.
E.
F.
G.
H.
L
J.
K.
L.
M.
N.
0.
P.
Q.
R.
S.
T.
U.
V.
W.
X.
MATLAB script to generatefinite Lattice Block structures (frame.m)........................................ 95
MATLAB truss solver (solve truss link.m)..................................................................................
100
105
ABAQUS input file for a three cell by two cell Lattice Block structure .......................................
MATLAB script to convert MATLAB models to ABAQUS inputfiles (abaqus.m)........................ 111
113
ParameterizedABAQUS inputfile for use with ABA QUS/Design...............................................
116
Sample ABA Q US/Post input script...............................................................................................
117
MATLAB scriptto generateABAQUS/Post input script (post-script.m).....................................
118
Sample Unix script to run ABAQUS/Standard.............................................................................
MATLAB scriptto automaticallygenerate a POV-Ray scene file (raytrace.m)........................... 119
POV-Ray scene file that describes the Lattice Block unit cell (unit cell.pov) .............................. 120
MATLAB scriptto generateperiodic unit cell model in z-x shear (shear5.m)............................. 123
125
MA TLAB script to interpretforce / displacement data (interp.m)................................................
MA TLAB script to define the octet truss periodic unit cell (frame.m).......................................... 126
128
MATLAB script to generatefinite octet truss models (frameoffset.m)..................
132
MATLAB script to compress octet truss in x-direction (constrainx.m)......................................
134
MATLAB script to compress octet truss in y-direction (constrain-y.m) ......................................
136
MATLAB script to compress octet truss in z-direction (constrain-z.m).......................................
MA TLAB script to calculate normal stress /strainproperties of octet truss (main.m)................. 138
140
MATLAB scriptfor parametricanalysis of octet truss (parametric.m)........................................
MATLAB script to calculate the volume fractionfor an octet truss structure (volume-frac.m)... 142
MATLAB script to load octet truss unit cell in zy-shear (constrainzyshear.m)........................ 143
MATLAB script to load octet truss unit cell in zx shear (constrainzx-shear.m)........................ 145
MATLAB script to load octet truss unit cell in xy shear (constrainjxy-shear.m)........................ 147
-6-
List of Symbols
$
fraction of material in cell edges
g
strain
Cy
stress
p
density of porous material
Cy
peak strength of porous material
V*
Poisson's ratio of porous material
Cynorm
normalized strength
Ps
density of solid material
VS
Poisson's ratio of solid material
(Tys
yield strength of solid material
a, b, c
unit cell dimensions
AR
aspect ratio
A,
cross section area
C, Cy, C,
direction cosines
E
Young's modulus
E
Young's modulus of porous material
Enorm
normalized Young's modulus
Es
Young's modulus of solid material
G*
shear modulus of porous material
Gnorm
normalized shear modulus
h
unit cell height
1
member length
L
member length, face member length, link matrix
Po
pressure inside cell
Pat
atmospheric pressure
r
member radius
Vf
volume fraction
-7--
I.
Introduction
Sandwich Beams
Stiff, lightweight structures can be built from two thin faces separated by a lightweight core.
These sandwich beams behave mechanically like an I-beam: the face sheets carry tensile and
compressive stress, the core carries predominantly shear stress, and the beam cross-section has a
high moment of inertia. The sandwich configuration is particularly efficient for resisting bending
and buckling deformations. Typical face materials are aluminum sheets and fiber-reinforced
composites. Typical core materials are honeycombs (aluminum or paper-resin), foams (polymer
or aluminum) or wood. Recent developments in metal foam manufacturing have stimulated
interest in metal foam as a core material. (Gibson and Ashby, 1997)
Foam Core Materials
Materials such as wood, bone, and cork are examples of natural cellular structures. In addition,
foams can be manufactured with polymers, metals, and ceramics. Foams can have open cells or
closed cells. Examples of open and closed cell metal foams are shown in Figure I-1 and 1-2.
The properties of metal foams depend on three parameters: the relative density, the mechanical
properties of the cells walls, and the cell geometry. The relative density is the ratio between the
foam density, p*, and the density of the solid material, ps. The mechanical properties of the cell
walls are described by the Young's modulus, E,, the Poisson's ratio, v,, and the yield strength,
Uys, of the solid material. (Gibson and Ashby, 1997)
Figure I-1. Open cell metal foam.
-8-
Figure 1-2. Closed cell metal foam.
cell edge
t
u
--
open cell face
Figure 1-3. Open cell foam unit cell cell. (Reprinted from Gibson and Ashby, 1997)
Basic results for mechanical properties of foams are developed using a cubic model (Fig. 1-3),
together with beam theory and scaling laws. The appropriate constants are determined
empirically, leading to the results below.
(open cells)
ES
(I-i)
A
3/2
*
a*
~_0.
(1-2)
1(
*
*
~ 0.
(closed cells)
C((1- #)
~+
E
#
0)p,
(1-3)
3/2
+(1-)
+ P
UyS
-Pat "
yS
-9-
(1-4)
For the closed-cell foams, $ is the fraction of material contained in the cell edges, leaving the
fraction 1 -$ in the cell faces. Pa, and po are, respectively, atmospheric pressure and pressure inside
the cell. The constants C1 and C1' are determined empirically. Symbols with an asterisk refer to
foam properties while those with a subscript s refer to the solid cell wall properties.
Open cell foams deform through bending of the cell edges. Subsequent yield and failure occurs
through the development of plastic hinges in the bent edges. Closed cell foams, on the other hand,
deform by stretching of the cell faces. Failure then occurs through yield in the cell faces. Edge
bending in open cell foams leads to the non-linear dependence on relative density: Young's
modulus goes with relative density squared, while yield stress goes as the 3/2 power. Cell wall
stretching, however, leads to a linear dependence of the properties on relative density. (Gibson
and Ashby, 1997)
We expect closed cell foams to be stronger and stiffer than open cell foams of the same relative
density. Relative density is always less than 1.0, and since closed cell foams depend less strongly
on relative density than open cell foams, they should have higher properties. However, closed-cell
metallic foams exhibit properties similar to those for open-cell foams of the same relative density,
suggesting that bending, not stretching, is the dominant deformation mode. Properties of closedcell foams are further reduced below the expected values by structural defects such as elliptical
cells or curved cell walls. (Bart-Smith et al 1999, Simone and Gibson 1998, Andrews et al. 1999)
Novel truss materials, such as the one shown in Figure 1-4, offer the potential for porous materials
that are governed by axial, rather than bending, deformation of members. Because the forces are
axial, strength and stiffness of these materials will depend linearly on relative density. This
should give materials with superior mechanical properties compared to metal foams of similar
relative density.
- 10 -
Figure 1-4. Three-dimensional truss material, trade name Lattice Bock.
Truss Materials
A typical three-dimensional truss material made of a cast aluminum alloy is shown in Fig. 1-4.
The structure has a periodic unit cell with fully triangulated members. A variety of
manufacturing techniques are available for producing such materials. The top lattice, the bottom
lattice and the core can be separately injection molded with a polymer, assembled to form a
complete structure, and then used as a mold for investment casting if a metallic material is
desired. Three-dimensional printing techniques can be used to build up the structure, layer by
layer. Stereolithography techniques can be used to cure sequential layers of light-sensitive resin
with a laser. The dimensions of the unit cell range from one to tens of millimeters.
The top lattice, bottom lattice and core can also be made separately from a thin layer of silver,
assembled and then electroplated with another metal, such as nickel. The silver lattices are made
as follows. All three layers (the top lattice, the bottom lattice and the core) are made as flat grids.
A master of each of the three patterns is made of an elastomer using conventional
photolithography. The master is then used to stamp a self-assembled monolayer onto a glass slide
coated with a 50 nm thick layer of silver. The silver which is not stamped with the selfassembled monolayer is removed by chemical etching. The core layer is then folded to obtain the
three-dimensional structure, the three layers are hand assembled and the resulting silver truss
material is electroplated with nickel.
The fully triangulated, three-dimensional truss structure induces axial forces in the individual
members, so the Young's modulus and yield strength are expected to vary linearly with relative
density. The structure is therefore expected to have a high specific stiffness and strength, making
-
11 -
it attractive for use in structural sandwich panels. It will be shown that Young's modulus and
yield strength do vary linearly with relative density. Consequently it useful to introduce
normalized moduli and a normalized strength.
Enorm =E*
ESF
Gnorm
1
(1-5)
7W
G
1
0-*
1
(1-6)
E, p/p,
(-7)
norm
Here G* is the shear modulus and the other parameters are defined above. Normalization permits
the study of geometry-property relationships independent of relative density. For all triangulated
truss materials, doubling the member cross section will double the relative density, the Young's
modulus, the shear modulus, and the yield stress.
Questions
The following questions are addressed in this thesis. What are the mechanical properties of truss
materials? How do properties depend on geometry, such as the unit cell proportions? How
accurately can we predict the properties with a simple truss analysis? What refinements in the
model can significantly improve the predictions? How do truss materials compare to metal
foams? And might there be a new, better way to manufacture truss core sandwich panels?
Outline
We develop a system for modeling periodic and finite structures numerically (Chapter 2). This is
used to explore the stiffness, strength, and defect-sensitivity of Lattice Block, a commercially
available truss material (Chapter 3). The mechanical properties of a second truss material, called
octet truss, are also analyzed (Chapter 4). Then we explore the production of sandwich panels and
present a novel manufacturing process (Chapter 5). Finally we summarize the results and offer a
suggestion for future work (Chapter 6).
-- 12-
II.
Modeling Overview
Structure Generation
Numerical models representing truss structures are generated using MATLAB (Mathworks,
Natick, MA). Two varieties of models are required for these analyses: periodic unit cells, and
finite structures. The periodic unit cells are small models that capture exactly one unit cell. They
deform periodically and account correctly for members that are shared with adjacent cells. If
loads are applied in a consistent manner, these models correctly describe the behavior of very
large truss structures. Finite models, on the other hand, represent real (non-periodic) structures.
They consist of a large number of nodes and members and describe an actual structure.
Figure II-1. Lattice Block unit cell.
To develop a periodic unit cell, we begin by identifying a unit cell. The Lattice Block unit cell is
shown in Figure II-1. Each node and each member is then numbered. The node coordinates are
entered into a matrix, with one node per row. The rows of the node matrix have the following
format.
node number, x-coordinate, y-coordinate, z-coordinate
Information describing the members is entered into a second matrix, with one member per row.
Since the members are truss elements, they contain only two nodes. The rows of the member
matrix have the following format.
member number, node 1, node 2, cross-section area
-13-
14
15
8
Figure 11-2. Lattice Block unit cell with numbered nodes.
The cross-section area is used to calculate the stiffness of each member. Members that are shared
between two cells are assigned one-half of their true cross section area; members that are shared
between four cells are assigned one-quarter of their true cross-section area. This is necessary to
avoid double-counting shared members. A MATLAB script to create the Lattice Block periodic
unit cell is shown in Appendix A.
For the periodic unit cell to remain periodic during deformation, the cell sides must remain
parallel. Also, nodes falling on cell edges must have corresponding nodes on opposite edges. The
periodic unit cell mimics the behavior of a large structure. If the unit cell deformed in a nonperiodic manner, its behavior could no longer represent a large structure.
An example of boundary conditions leading to periodic deformation is given for compression in
the x-direction. The node numbering and loading arrangement are shown in Fig. 11-2. Many
nodes are left free in one or more directions. Some nodes are restrained so that they cannot move:
for example all the nodes on the bottom face are restrained the z-direction. Some nodes have
imposed displacements: for example node 3, on the right side, is displaced in the negative xdirection. Many nodes are linked to other nodes, requiring that both nodes displace the same
amount: for example nodes 5, 8, 11, and 15 are linked to node 3 in the x-direction. Linking
greatly simplifies periodic boundary conditions: for example all the nodes on the front face
{1, 2,
3, 9, 10, 111 move together in the y-direction, so nodes {2, 3, 9, 10, 111 are linked to node 1 in
the y-direction. If node 1 is free in the y-direction, the entire face can move but all the nodes must
remain planar and the face will not rotate.
- 14 -
V
x
Figure 11-3. Lattice Block unit cell - nodes and loading for x-dir compression.
Figure 11-4. Lattice Block structure with two unit cells.
To develop a finite structure, we also begin by identifying a unit cell. The unit cell will have to be
repeated to build up the finite structure. Consider a truss structure of two Lattice Block unit cells,
as shown in Figure 11-4. Taking one unit cell and adding another next to it generates the structure.
Note, however, the unit cell has to be modified to avoid creating duplicate members. Any
member that falls on the unit cell edge will be created twice if another unit cell is placed next to
-15-
it. Therefore we must be careful to create each member exactly once when modeling finite
structures.
We consider truss structures of arbitrary size in two directions, and one cell high. Repeating the
unit cell a number of times in the x- and y-directions generates this type of structure. However,
creating each node and each member exactly once requires care. The approach adopted here was
to create nodes separately from the members. Nodes in the unit cell are divided into groups to
facilitate structure generation: the groups used for Lattice Block are shown below.
-
Nodes that appear in each cell
-
Nodes on the back edge
-
Nodes on the right edge
-
Nodes on the front-right corner
The first group contains the subset of nodes that can be repeated without creating two identical
nodes. The other groups are used to fill in missing nodes along the back edge, right edge, and
front-right corner. For-loops create the nodes for the truss structure. One loop translates the unit
cell in the x-direction, the second translates it in the y-direction. Each iteration adds nodes to a
matrix that, eventually, contains all the nodes in the structure.
Members in the unit cell are divided into groups in a similar manner. Member groups used for the
Lattice Block unit cell are shown below.
-
Members in each cell
-
Members in back row
-
Members at front edge
-
Members at right edge
-
Members at right-front corner
-
Members at right-back corner
Another series of for-loops is used to create the members, with each iteration adding members to
a matrix that eventually contains all the members for the structure. The members are defined in
terms of their nodes. Each loop-iteration calculates the absolute position of the required nodes,
then searches for the node at that location. The corresponding node numbers are recorded in the
member matrix. Finally, each member is assigned its full cross-section area. A script to generate
Lattice Block structures is included in Appendix B. The script is called frame.m, and refers to
nodes as "joints." A structure generated with this script is shown in Figure 11-5: it has 8 cells in
the x-direction and 6 cells in the y-direction.
-- 16 -
lw~XI
Figure 11-5. Large finite Lattice Block structure (8 cells by 6 cells).
A node matrix and a member matrix completely describe any finite truss structure. Each matrix
has the same format as for the periodic structure. However there are often hundreds or even
thousands of nodes and members in finite structures, much larger than for the periodic unit cell.
Truss Solver in MATLAB
The Matrix Method
A linear truss solver was developed using methods in Weaver and Gere's Matrix Analysis of
FramedStructures. The solver is based on the Stiffness Method, one of the techniques described
in the book. Each member has a stiffness that depends on its modulus, cross-sectional area and
length. Changes in member length cause forces to develop that are proportional to the member
stiffness and the length change, and that act at the nodes at either end of the member. A
"solution" to the problem consists of finding node displacements such that equilibrium is
satisfied.
The technique for setting up and solving a linear elastic truss problem is outlined below. The
fundamental equation for the Stiffness Method relates the actions at each node to displacements at
all of the nodes.
Aj = SD,
II1
Here Aj represents the actions, Sj represents a stiffness matrix, and Dj represents the
displacements. The subscript J indicates consideration of all of the nodes. Each node has three
degrees of freedom (x-, y-, and z-directions), so n nodes gives A, and D, of dimension 3n x 1, and
-17-
Sj of dimension 3n x 3n. Equation II-1 is a statement of equilibrium: actions applied at each node,
in each direction, must balance the components of member-generated forces.
A structure with n nodes has indices from 1 to 3n. Boundary conditions are applied by assigning
forces and displacements at individual nodes in each direction. The displacement in each
direction at a node may be restrained (its position in that direction may not change) or free (it can
move). Restrained indices can have zero or nonzero displacements, the latter being useful for
modeling an applied strain. Restrained indices with zero displacement are called "fixed."
Indices are divided into free and restrained groups. Free indices are placed at the top of vectors A
and D, and the matrix S is rearranged accordingly.
AF
AR _
_SFF
SRF
(11-2)
SFR
SRR _LDR_
The subscript F refers to free indices and the subscript R refers to restrained indices.
stiffness matrix relating forces at free indices to displacements at free indices.
SFR
SFF
is the
is the stiffness
matrix relating forces at free indices to displacements at restrained indices, and so forth. This
Equation 11-2 can now be decomposed into a system of two equations.
+ SFRDR
(11-3)
AR = SRFDF +SRRDR
(11-4)
AF= SFFDF
Equation 11-3 can be solved for displacements at the free indices,
DF-
DF =S1(AF -SFRDR)
(11-5)
Then actions at the restrained indices, AR, are found with Equation 11-4. Equations 11-4 and 11-5
constitute a solution to the truss problem: they allow us to find the unknown displacements (at all
free indices) and to find the unknown actions (at all the restrained indices). However, this is
practically useful only if we can compute the stiffness matrix Sj.
This analysis uses the "Computer Oriented Direct Stiffness Method," described by Weaver and
Gere, to assemble the stiffness matrix. The overall stiffness matrix, Sj, is assembled by adding
contributions from each member. Each member has nodes at each end, say nodes j and k. The
member stiffness matrix sets up the relationship between forces and displacements at the member
- 18 -
ends. The top-left sub-matrix relates forces at the j-end to displacements at the j-end. The topright sub-matrix relates forces at the j-end to displacements at the k-end, and so forth.
Ci
,C
CC
C,,
C
CC,
CxCy
y
C
Cl
C
- CC
CZC,
CzCy
C C
CYCZ
C2
- CyC
- CZC
EAX CXCZ
Ssi...........L...cc
_ - CxC,
C2
..CXC~
CC
- CC
- CZC,
-C,
- YC
-CC
-CC
CC
-c~c
CYCX
_c2
cc
(11-6)
C
CZ
Equation 11-6 is the stiffness matrix for a single member. E is Young's modulus, Ax is crosssectional area, L is length, and C,, Cy, and Cz are direction cosines describing the member's
orientation in space. Weaver and Gere outline methods for numbering the indices, for assembling
a global stiffness matrix from member stiffness matrices, and for separating the free and
restrained indices. Their methods were adopted here.
Linked Nodes
Linking is a method by which displacements at certain nodes follow displacement at other nodes.
Linking is implemented through a matrix equation that relates displacements at the linked
(dependent) nodes to the parent (independent) nodes.
DL = LDJ
(11-7)
DL is a vector containing displacements at the linked nodes. Dj is a vector containing
displacements at all the nodes, and has size 3n x 1. L is the linking matrix: its rows contain one 1
and zeros elsewhere. The displacement indexes are again separated into groups of free, restrained,
and linked, the linking matrix is rearranged accordingly.
DF
DL = [LF
LR
LL.
DR
(8)
DL
LF relates displacements at free indices to displacement at linked indices. Similarly LR relates
displacements at restrained indices to displacements at linked indices. Linking is a one-to-one
relationship, and LL must be a null matrix because linked indices cannot depend on other linked
indices.
'Weaver and Gere, p 263.
-- 19 -
The Modified Matrix Method
The matrix method is readily extended to a problem containing linked nodes. 2 We begin with the
tractions applied to each index by the displaced members.
T, = SDj
(11-9)
The indices are divided among three categories: free, restrained, and linked.
TF
SFF
SFR
SFL
DF
TR
SRF
SRR
SRL
DR
T
SLF
SLR
SLL_
D
(11-10)
Equilibrium requires that the external force at each free index equal the traction generated by the
displaced members. External forces at free indices are indicated by AF and tractions generated at
the free indices are indicated by
TF.
(-11)
TF =SFFDF+ SFRDR + SFLD
Linked indices are treated as if there were part of their parent index. Tractions at linked indices
are mapped to corresponding parent indices. LF maps displacements at free indices to
displacements at linked indices. Consequently
indices to free indices. Multiplying
LFT by
LFT maps
TL gives
TFL,
displacements (and forces) at linked
the tractions at linked indices mapped to
corresponding free indices.
TFL = LF SLFDF + SLRDR + SLLDL]
(11-12)
Similarly, external forces at linked indices (AL) are mapped to corresponding free indices and
indicated by
AFL.
AFL
(11-13)
FAL
The following equilibrium condition is applied to each free index: member generated tractions
must equal external forces. Taking into account linked indices, the condition is expressed as
follows.
TF +TFL-
F
(11-14)
AFL =0
Substituting for the tractions and using the relation for linked displacements, it is possible to solve
for displacements at the free joints.
2
The Modified Matrix Method is developed for this project was not found in Weaver and Gere.
-20-
DF =SFF + LSLF
+SLFLF
+ L SLLLF
F
F
L
FR + L
SLR +SFLLR
+ LFSLLLR)DR]
(11-15)
Equation 11-15 gives displacements at all the free indices. Equation 11-8 and Equation 11-11 then
yield DL, displacements at the linked indices, and TF, the tractions generated at each index from
member displacements.
This form, known as the modified matrix method, gives a solution for displacements at the free
indices and includes the effect of linked indices. Using Equation 11-15 we can setup and solve a
unit cell problem or a finite structure problem, and utilize linked indices as necessary.
Finite Element Analysis and Model Conversion
The commercial finite element code ABAQUS was used for nonlinear analyses. Several features
in ABAQUS correspond to features of the MATLAB models, making it possible to generate
almost identical models under MATLAB and ABAQUS. The MATLAB environment integrates
modeling with a versatile programming language, permitting creative model generation, data
processing, and even parametric analysis. However the MATLAB truss solver works only for
linear elastic problems, and ABAQUS accommodates nonlinear geometry and nonlinear material
response.
Linear elastic problems assume the material response is elastic, and the geometry is constant.
Elastic material response means that stress is linearly related to strain, with Young's Modulus as
the proportionality constant. Constant geometry means the model deforms only by a small
amount, so the relative angle of members and applied loads is constant throughout the problem.
Nonlinear material response includes material yield and hardening, allowing a more complete
description of the actual behavior. Nonlinear geometry allows the model to update between
solution increments, so the angles between members evolve with node displacements.
Truss elements were used to build all the ABAQUS models. Under linear conditions, a truss
element behaves the same way as the members in the MATLAB truss solver. For nonlinear
response, the truss element undergoes area change inversely proportional to the strain. An
ABAQUS feature, Equation, can have the same effect as Links in the MATLAB truss solver. It
allows the model to impose a relationship between nodal degrees of freedom, and can be
implemented to produce a link between two nodes. Another ABAQUS feature, Multi-Point
Constraint or MPC, provides a shorthand for linking two nodes. Prescribing a "PIN" MPC
relationship means that all three translation degrees of freedom at one node follow those at
another node.
-21-
ABAQUS reports forces and displacements at each node, and produces separate tables for each
increment along a nonlinear analysis. It would be tedious to track forces at every node on a
particular face of interest and later add them to find the total force. A better approach is to utilize
the equation feature to link all the nodes. Displacements applied to the parent nodes are imposed
on all linked nodes, and resultant forces are mapped back to the parent node. Then the results are
obtained from examining the force / displacement curve at a single node, which is done with the
post processor ABAQUS/Post.
Entering material response data in ABAQUS is non-intuitive: the stress / strain curve must be
divided into elastic and plastic sections. Under the keyword "Elastic" is entered Young's modulus
and Poisson's ratio. Under the keyword "Plastic" is a table of plastic strain as a function of total
stress. At a particular a stress, the plastic strain is the difference between total strain and the
elastic strain predicted by Young's modulus.
A sample ABAQUS input file is shown in Appendix D. It contains a model for a three cell by two
cell Lattice Block structure. It has sections for Nodes, Elements, Material response, Multi-Point
Constraints, Equations, and an applied load. It also utilizes node sets (keyword NSET) to
condense some Equations.
ABAQUS input files are created directly from MATLAB models using a conversion script. The
script, abaqus.m, is included in Appendix E. The node matrix in MATLAB is converted directly
into a table of nodes for ABAQUS. The member matrix is converted directly to a table of truss
elements. The material response data is copied into the input file from another file. Then links are
converted into Equations or Multi-Point Constrains, depending on whether they affect some or all
translation degrees of freedom.
Parametric analyses are useful to study the effect of one variable on the model. These analyses
can be performed with ABAQUS/Design or with a series of input files generated with MATLAB.
ABAQUS/Design is suited to small models where the input file can be hand-written in a
parameterized form. Using an input file written in terms of variables, ABAQUS/Design can
automatically generate and process a series of models. An example of a parameterized input file
in included in Appendix F. However, using MATLAB to generate the series of input files is
essential for some analyses. For this procedure, the models are generated with loops in MATLAB
and then converted to ABAQUS input files.
-22-
Post processing parametric analyses would be tedious to perform on a file-by-file basis.
Depending on the analysis, as many as 100 files might have to examined. A better way is to store
the ABAQUS/Post commands in a file, then execute ABAQUS/Post on the command line with
the "input" parameter. A sample ABAQUS/Post script is shown in Appendix G. Generally all the
files are run through ABAQUS before post processing, so care must be exercised to avoid filling
the hard disk. The most important steps are: i) writing only the necessary data to the results file,
ii) refrain from writing the restart file, and iii) refrain from writing results to the data file. The
savings in disk space can be quite large.
For larger parametric analyses it is helpful to generate the ABAQUS/Post script with MATLAB.
It may also be helpful to generate a Unix script that executes ABAQUS/Standard once for each
input file. Examples of MATLAB scripts to accomplish these tasks, as well as a sample Unix
script, are in included in Appendices H and I.
Ray Trace Images
Photo-realistic images were created using a computer-rendering package. The Persistence of
Vision Ray Tracer, or POV-Ray, is a graphics package that was used to produce Figures 11-1, II4, and 11-5. The software is available, free of charge, at http://www.povray.org. The images were
useful for visualizing three-dimensional structures and for checking complicated structures for
proper connectivity.
POV-Ray interprets a scene description contained in a text file. Generally a MATLAB script is
used to produce the scene-file from a MATLAB model. The scene-file includes camera position,
lighting, and the structure itself. To produce the structure, each member is translated into a solid
cylinder. Since the node positions and member connectivity are already determined, producing a
POV-Ray scene file is straightforward. A MATLAB script to automatically generate a scene-file
is included in Appendix J. A small POV-Ray file, which describes the Lattice Block unit cell, is
also included in Appendix K.
POV-Ray can produce images of original structures or deformed structures. Also, it is possible to
generate a series of images that show increasing deformation. The series could even be combined
into an animation of a particular deformation mode.
-23-
III. Lattice Block Material
Geometry
Description
Lattice Block material is a three dimensional truss material available from JAMCORP in
Wilmington, MA. The material is manufactured in square tiles (Figure 1-4). Two unit cells have
been identified and are shown in Figures III-1 and 111-2. The first unit cell has edges that make
45-degree angles with those of the LBM tile in Figure 1-4. The second unit cell has more
members but has useful symmetry planes. Also, the sides of the second unit cell lie parallel to
those of the LBM tile, ensuring a simple relationship between forces on the tile and those on the
unit cell. Because of its symmetry and its convenient orientation, the second unit cell will be used
exclusively for considering LBM behavior. Henceforth we refer to this second unit cell as "the"
unit cell.
Figure III-1. Lattice Block unit cell with edges at 45 degrees to tile.
The relative density of the unit cell is the ratio of member volume in the cell to the volume of the
entire cell. Member volume is determined by multiplying member length by cross-section and
summing over all members. This procedure inherently over-estimates the volume fraction by a
small amount: at the nodes where members insect, some material is double-counted.
4 + 442+ 8AR
Relative Density - p* - Vf =
A
AR
A
-24-
+ 1/4
1
'r
2
12(-1)
l2
Figure III-2. Lattice Block unit cell with edges parallel to tile.
Here p* is the density of the lattice block material, p is the density of the bulk solid, AR
=
h/i is
the aspect ratio, r is the member radius, 1 is the length of the base, and h is the unit cell height.
The JAMCORP material has the following dimensions: r = 0.0625", 1= 1.50", h = 0.925", AR =
0.617. The relative density is therefore 14%.
Elastic Constants
Consider the unit cell as a representative volume element, such as is commonly seen in
continuum mechanics. The forces and displacements on the cell faces define stress and strain
tensors. Assuming linear elasticity, stress and strain are related by a fourth rank compliance
tensor, S.
(111-2)
F = So-
The compliance tensor contains, in general, 81 constants. However the definition of shear strain
requires that E12
023 =
= 621, E13 = 631,
and E23 = E32 . Equilibrium requires that C12 =
021, 013 = 031,
and
032. This reduces the number of independent constants in S to 36 and permits the contracted
notation for stress and strain. In the contracted notation strain is represented:
-33*F3, E2 3 *Y 4 , E314y5,
023*04, 0314Y05,
E 1 14Ei, E2 2 *E 2 ,
and e 12 -y 6. Also stress is represented: Ui140i, 022402, 033+03,
and 012a06. Furthermore the compliance matrix is symmetric, which can be
shown using virtual work (see, for example, Nye 1960).
-25-
61
S11
S12
S1 3
S 14
S15
S 16
01
E2
S21
S22
S23
S24
S25
S26
(2
63
S31
S32
S 33
S3 4
S3 5
S36
473
Y4
S41
S42 S43
S44
S 45
S46
(74
S53
S54
S55
S56
'75
S63
S 64
S65
S66 _ _76
51 S52
r5
V6 _
z
or
_S61
S62
(111-3)
X3
y
or x2
C
b
x or xi
Figure III-3. Lattice Block unit cell with dimensions a, b, and c.
Further simplification of the compliance matrix is made based on symmetry in the unit cell.
Consider a unit cell of dimensions a, b, and c, as shown in Figure 111-3, subject to normal stress
al. A plane of symmetry lies parallel to the y-z plane and passes through x =
a. The symmetry
plane, which is perpendicular to the x-axis, guarantees that ai cannot produce shear strains y5 (z-x
direction) or y6 (x-y direction). Another symmetry plane exists at y =
stress and also symmetric about y =
b. a 1 is a uniform normal
b. Consequently the strain must be symmetric about y =
b, so the shear strain y4 (z-y direction) must also be zero. The elements s4 1, s5 1, and S61 therefore
vanish.
Similar arguments show that y4, y5, and y6 are zero under normal stress
S5 2 , S62, S 43 , S52,
S 26 ,
and
S6 3
02
or 03. Consequently s4 2,
also vanish. Since the compliance matrix is symmetric, S14, S15,
Si6, S24, S2 5 ,
S34 , S35 , and S36 must also equal zero.
Finally, it can be shown that shear stress induces strain only in the sense of the applied stress. For
example, consider o4 (z-y shear stress). The unit cell is symmetric about x =
symmetric about the plane x =
a. Consequently, for
-26-
Y4
a, and a4 is also
loading, no shear can develop in the x-
direction. Thus y5 (z-x shear strain) and y6 (x-y shear strain) must equal zero. Similarly, under 05
loading no shear can develop in the y-direction, so y4 and y6 must be zero. Therefore s45, s4 6, s5 4 ,
and s56 must equal zero. The compliance matrix is symmetric, so s4 and s65 must also equal zero.
The linear elastic stress-strain relationship, after placing appropriate zeros in the compliance
matrix, is shown in Equation 111-4. Recalling the symmetry of the compliance tensor, it is
observed that nine constants fully describe the elastic behavior.
6
s11
s 12
s13
0
0
0
a-
£2
s 23
s 22
s 23
0
0
0
U2
s13
s 23
s33
0
0
0
a3
y4
0
0
0
S44
0
0
-4
y5
0
0
0
s55
0
U5
_Y6
L0
0
0
0
0
0
s66
_
E3
_
(111-4)
The compliance matrix takes the same form as that for an orthotropic material. However,
orthotropy is a symmetry property in which materials are unchanged after 180 degree rotation
about any principal axis. Rotating the unit cell 180 degrees about the x-axis gives a structure
which cannot be superimposed on the original. Therefore the unit cell is not technically
orthotropic.
A final word on the compliance matrix: it can be re-written in terms of the familiar Young's
modulus E, Poisson's ratio v, and shear modulus G, as shown in Equation 111-5. Three Young's
moduli, six Poisson's ratios, and three shear moduli are needed for this representation.
E
V2 1
El
£2
63
4
0
V13
E2
1
E3
V 23
E2
V3 1
0
El
V 12
E3
1
V32
0
E2
0
0
0
0
0
0
0
0
0
0
E3
0
0
G4
0
0
-
2
U3
0
y5
L_Y _J
0
U5
0
0
0
1
G5
0
0
0
0
L
a4
0
_[U_
1
G6_
Poisson's ratio is defined as the negative ratio of strain in the i-direction to strain in thejdirection, where j is the loading direction.
-27-
(III-5)
, where j is the loading direction
Vi =L'
(111-6)
Ei
Although twelve elastic constants appear in Equation 111-5, only nine are independent. The
Poisson's ratios obey the reciprocal relation:
Eil/i = Ejvj , where i, j= 1-3 and i j
(111-7)
Therefore only three of the Poisson's ratios are independent, and Equation 111-5 indeed contains
only nine independent elastic constants.
Analysis
A unit cell can be assembled with 29 members and 15 nodes. The cell boundary cuts some
members in half, leaving members that appear unconnected at one end. However the
requirements for periodicity place constraints on these members, effectively reconnecting them to
the structure. Also, some members lie on cell faces and are shared between adjacent cells. To
account for sharing, these members are assigned one-half of the regular area. In 3D periodic
LBM, some members are shared between four cells and must be assigned one-quarter the regular
area.
The mechanical response of an infinite plane of the truss material was calculated from that of the
unit cell. Since the material is periodic before deformation, it must also be periodic after
deformation, requiring periodic boundary conditions. For loading by a normal stress, it is
sufficient to constrain the unit cell faces to remain flat, parallel and mutually perpendicular. For
loading by a shear stress, we observe that each shear mode is independent: for example x-z shear
is independent from y-z shear. Consequently, we model shear by imposing a single shear mode
and then calculating the resultant stress. This approach leads to individual sets of boundary
conditions for shearing in the x-z, y-z, and x-y planes. The core struts, those lying between the
upper and lower faces, are identical in the x- and y-directions. It follows that the z-y and z-x
shear modes exhibit identical properties. For example, consider x-z shear imposed by fixing the
lower face and moving the upper face in the x-direction. Only struts in the core deform, while
struts on both faces remain unstressed. If instead we had displaced the upper face in the ydirection the situation would be the same: only the core members would be stressed. Since the
core struts exhibit 900 rotational symmetry, z-x and z-y shear response must be the same.
In the actual truss material, the inner members that extend between the upper and lower faces
meet at a point below (or above) the upper (or lower) faces. The inner strut offset, d, was
-28-
measured to be 2.4mm (Figure 111-4). A more detailed model was developed to include inner
strut offset. The model included additional nodes at the correct endpoints of the inner struts.
These were rigidly connected to nodes on the faces using linking in MATLAB and the Equation
feature in ABAQUS: x-, y-, and z-translations were constrained to follow translations of nearby
face-nodes.
Figure 111-4. Side view of Lattice Block showing inner strut offset, d.
The actual structure appears to be regular and we could not measure any variation in cell size
(with resolution 0.2 mm). In a perfect structure, multiple members experience the same stress
and should, theoretically, fail at the same load. In practice, tension tests produced a significant
variation in the failure strain of the members: the average was 1.95% with a standard deviation of
1.25%. The models were modified by introducing a random perturbation to the node locations,
simulating random variation within the individual struts, and guaranteeing that members would
fail individually. Perturbations were applied to the x-, y-, and z-coordinates; each was chosen
from a uniform distribution with mean 0 and range +/- 2.5 mm. Elastic and strength properties
reported below represent a perfect structure; the perturbed results are reported afterward for
comparison.
Finally, the effect of the aspect ratio, h/b, of the unit cell on the elastic moduli and
uniaxial strength of the truss material were calculated using the infinite planar model. The elastic
properties were calculated for a perfect model neglecting inner strut offset. The strength
properties were calculated for a perfect model including inner strut offset.
Properties of solid material
The composition of the aluminum alloy was measured using wavelength dispersive spectrometry
(Jeol JXA-733 Superprobe, Peabody, Massachusetts). The composition of the aluminum alloy
was found to be 95% Al, 4% Si, and 0.2% Fe, with traces of Cu and Zn. This composition is
-29-
similar to alloy 443, a casting alloy with 4.5 - 6.0 % Si. Since the truss material is manufactured
through investment casting, we expect the aluminum to be a casting alloy.
The uniaxial tensile stress-strain curve of the solid from which truss material was made was first
measured. Individual struts were cut from a tile and machined into waisted specimens suitable
for tension tests. The finished specimens had a waisted diameter of 2.54 mm and waisted length
of 15.2 mm. They were loaded in tension in a mechanical testing machine (Model 4201, Instron
Corp., Canton, MA) while measuring force with a load cell and strain with an extensometer of
gauge length 12.5 mm. Seven specimens of the solid material were tested.
The uniaxial compressive stress-strain curve of the solid was also measured. Individual struts
were cut into 14mm long cylinders and tested in compression between steel platens (Model 4201,
Instron Corp., Canton, MA). Force was measured with a load cell and displacement was
measured with an LVDT (050 MHR, Lucas Shaevitz, Hampton, Virginia). Four specimens were
tested in this manner.
Solid Strut Material Response
350 300-
Compresskion Test
250 0.
2200 -
Tension Test
150 Cl 100 50 50
0
rII
0%
I
5%
10%
15%
Strain
Figure 111-5. Typical uniaxial stress-strain curves for the solid.
Typical uniaxial tensile and compressive stress-strain curves for the solid aluminum alloy
specimens are shown in Figure 111-5. The tensile curve exhibits mild yielding and then brittle
fracture, perhaps related to a void nucleation and growth mechanism. The compression curve
exhibits yielding, strain hardening, and eventually a decrease in load corresponding to specimen
buckling. The Young's Modulus, Es, is 69 GPa and the 0.2% offset yield strength, Y*ys, is 224
MPa. The strain to failure for the tensile stress-strain curve shown is 1.3 %; values varied from
-30-
0.4% to 4.0% among the seven tests. The low ductility is typical of brittle aluminum casting
alloys. Alloys 443.0-F, B443.0-F, and C443.0-F have yield strengths of 55 - 110 MPa, tensile
strengths of 130 - 230 MPa, and elongation to failure of 8 - 10% (Aluminum and Aluminum
Alloys, 1996). The tensile stress-strain curve shown in Figure 111-5 was used for the elastic,
strain-hardening failure analyses since it gives a conservative estimate of the failure strain.
Normal Stress / Strain
Three Young's moduli and three Poisson's ratios describe the normal stress / strain elastic
properties of Lattice Block. These are determined by deforming the periodic unit cell and
examining the resultant stress and strain. Boundary conditions were determined separately for
each deformation mode. As an example, the boundary conditions for compression in the xdirection are illustrated in Figure 111-6. Nodes that fall on the left and right faces are displaced in
the x-direction. Nodes on front and back faces are linked so that the faces remain parallel. Nodes
on the bottom face are restrained in the z-direction. Nodes on the top face are linked so that the
top face remains parallel to the bottom face.
The moduli for the JAMCORP material appear in Table 111-1. These were computed with
dimensions and material properties obtained from JAMCORP's tiles. Included in these models
was an inner strut offset equal to the measured value: d = 2.4 mm.
The normalized Young's moduli and Poisson's ratios are plotted in Figure 111-7 and Figure 111-8
as a function of unit cell aspect ratio, h/b. The Young's moduli are normalized by the Young's
modulus of the solid, E,, and the relative density, p*/ps, of the truss material. The normalized
results are independent of solid modulus, member cross-section area, and overall unit cell size.
These calculations neglected inner strut offset: d = 0. Three Poisson's ratios are plotted in Fig.
111-8; the three that have been omitted can be calculated using the reciprocal relation
Eiv = Ejvj 1 .
The uniaxial strength of the ideal infinite planar truss material is plotted against aspect ratio in
Figure 111-9. The strengths have been normalized by the yield strength of the solid, T*ys and by
the relative density, p*/ps of the truss material. Strength is defined as the peak stress. The model
includes the inner-strut-offset refinement (d=2.4mm). For small aspect ratios the offset distance,
d, becomes significant compared to the unit cell height so that the results are meaningful only for
aspect ratios greater than about 0.4.
- 31 -
Boundary Conditions for loading in the x-direction
X:disp by -0.5*U
Y: link to 7
Z: Fixed
X: disp by 0.5*U
Y: link to 7
Z: Fixed
Free
Free
Fixed
-*4 6
7
F8
X: disp by -0.5*U
Y: Free
Z: Fixed
4
*.
5 X: disp by 0.5*U
Y: Free
Z: Fixed
24
disp by -0.5*U
link to 2
Fixed
;(X: disp by 0.5*U
X: Free
Y: Fixed
Z: Fixed
Y: link to 2
Z: Fixed
BOTTOM SURFACE
z
X: disp by -0.5**U
Y: Free
Z: Free
-- *
X: Link to 12
Y: Link to 13
Z: Link to 12
13
x
X: disp by 0.5*U
Y: Free
Z: Free
14
X: Free
12 Y: Free
Z: Free
Lattice Block iuiitcell cell
V-9
*10
X: disp by -0.5*U
Y: Free
Z: Free
X: Link to 12
Y: Link to 9
Z: Link to 12
X: disp by 0.5*U
Y: Free
Z: Free
TOP SURFACE
Figure 111-6. Boundary conditions for compression in the x-direction.
-32-
Table 111-1. Moduli for the JAMCORP Lattice Block, including 2D periodic and 3D periodic values.
p*/ps = 14.2 %
3D Periodic
Value (GPa)
p*/ps = 9.89 %
0.87
0.54
2.96
1.67
1.22
1.10
0.70
0.46
0.89
0.43
2D Periodic
Value (GPa)
Ex
Ez
Gxz
Gyz
Gxy
Young's Moduli
0.6
-
0.5
-
0.4
-
y-dir
0.3
w
0.2
z-dir
x-dir
0.1
0.0
0
0.5
1
1.5
h/b (Aspect Ratio)
Figure 111-7. Normalized Young's moduli for 2D periodic Lattice Block.
-33-
2
Poisson's Ratios
1.2
1.0
*
-
*
*
4
v
0.8
vxz
0.4 -
e
0.2
y
VyZ
0.0
AAA
0
AAA-A--------A
0.5
1
-A4
1.5
2
h/b (Aspect Ratio)
Figure 111-8. Poisson's ratios for 2D periodic Lattice Block
Normalized Strength for Periodic 2D Material
0.8 0.7 -
c
CL
0.6 0
0.5 E
CD-E3-
X-dir
Y-dir
0.4 -
0.
-o 0.3 CI)
(D
N
ICU'
0.2 -
~0.0
0.4
0.9
1.4
1.9
Aspect Ratio (h/b)
Figure 111-9. Normalized strength of 2D periodic Lattice Block.
-34-
Consider first the relative moduli for normal stress/strain. The z-direction modulus exhibits the
greatest aspect ratio dependence. For small aspect ratios (a short unit cell) the material is very
compliant, but at larger aspect ratios the material becomes much stiffer. The aspect ratio
dependence occurs because of geometry of the members connecting the upper and lower surfaces.
For small aspect ratios these members account for less volume of material in the cell, and the
relative modulus in the z-direction is small. At larger aspect ratios these members are longer, in
comparison to the rest of the cell, and account for more of the material volume. In the limit of
very large aspect ratios these members are almost vertical and account for most of the material
volume. At that limit, the relative modulus in the z-direction should approach unity, while the
relative moduli in the x- and y- directions should be very small.
The y-direction modulus is about 3.5 times larger than the x-direction modulus. The higher
stiffness is expected because of the members that run across the upper and lower faces. A set runs
parallel to the y-direction, but no comparable set exists in the x-direction. It is interesting to note
that LBM is least anisotropic at aspect ratios near 0.90.
Lattice Block Material can also be constructed in three dimensions, as is illustrated in Figure III10. Note that the unit cell is shifted by a half-width in the x-direction between vertical layers.
A "true" unit cell, one that would pack to form three-dimensional LBM without half-cell shifts,
would consist of two conventional unit cells stacked one above the other. A conventional unit cell
is highlighted in Figure 111-10. If that were combined with the members below it, the aggregate
would be a "true" unit cell. Note that the bottom half of the "true" unit cell is the mirror image
(reflected across the x-y plane) of the top half.
Consideration of three-dimensional periodic LBM will proceed using the same unit cell as before.
Although this includes half of the "true" unit cell, the symmetry across the x-y plane allows the
simplification. Members on the faces and edges are shared differently than in the twodimensionally periodic unit cell, so their effective cross-sectional area is different. Members in
the interior are considered "whole" members and are assigned full cross-sectional area. Members
on the faces are "half' members because they are shared between two adjacent cells. They carry
one-half of a standard cross-sectional area. Members on the edges are "quarter" members because
they are shared between four adjoining cells. They carry one-quarter of a standard cross-sectional
area.
-35-
Figure III-10. Three-dimensional Lattice Block construction.
Figure III-11. Three-dimensional semi-infinite Lattice Block.
-36-
A three-dimensional semi-infinite Lattice Block is illustrated in Figure 111-11. The unit cell was
repeated in the x-, y-, and z-directions many times, with '/2cell
shifts between vertical layers. The
relative density for the three-dimensional periodic structure can be approximated as a function of
1, r, and AR. Again, this is an approximation because material at the member intersections is
counted twice.
2+24
p*
P
AR
f
For the same values of AR
+8 AR 2 +1/4
=
2
1
(3D periodic LBM)
(111-8)
0.617, r = 0.0625 in, and 1= 1.50 in, as in the 2D periodic material,
the 3D periodic material has a relative density 9.89%, well below the value of 14.2% for the 2D
periodic material. The lower relative density occurs because the top and bottom faces contain
half-thickness members, rather than the full-thickness members in the 2D periodic material.
Normalized moduli for normal stress / strain are presented in Figure 111-12 as a function of aspect
ratio. At small aspect ratios the material is stiffest in the y-direction and most compliant in the zdirection. As aspect ratio increases the material becomes stiffer in the z-direction and more
compliant in the x- and y-directions. The x- and z- directions have identical moduli at AR = 0.5.
The y- and z- direction have identical moduli near AR = 0.7. At large aspect ratios (> 1.0) the zdirection more than twice as stiff as the x- or y- directions.
Poisson's ratios for normal stress / strain are presented in Figure 111-13 as a function of aspect
ratio. At small aspect ratio the Poisson's ratios are very large or very small. In fact, for AR < 0.3,
v12 and v 2 1 are negative and v31 and v32 approach infinity. The Poisson's ratios intersect at AR =
0.5, where v 12 = v 32
=
0.33, v13 = V31= 0.44, and V2 1 = V23= 0.12. At large aspect ratios (AR > 1)
the Poisson's ratios appear to approach limiting values, with v 2 3 , v 31, and v 32 all tending toward
zero.
Normal stress / strain moduli for the two-dimensional and three-dimensional periodic structures
are plotted together in Figure 111-14. The former is stiffer in the x- and y-directions, but less stiff
in the z-direction. The two-dimensional structure's unit cell has unshared members on the top and
bottom faces, giving it a higher relative density than the three-dimensional periodic structure.
These unshared members account for the greater stiffness in the x- and y-directions. However
these members increase the relative density by more than they do the stiffness in the z-direction,
producing a decrease compared to the three-dimensional periodic structure.
-37-
3D Periodic Lattice Block: Young's Moduli
0.8
0.7-
0.
0.6
-
0.5
-
0.4
-
0.3
-
0.2
-
0.1
-
z-dir
y-dir
w
0.0
x-dir
k
0
~
2
1.5
1
0.5
h/b (Aspect Ratio)
Figure 111-12. Normalized moduli for 3D periodic Lattice Block.
3D Periodic Lattice Block: Poisson's Ratios
1.2
1.0
0.8
0.61v1
0.4
-
0.2
-
V13
v13
-+
v23
0.0
V23
-0.2
0
0.5
1
1.5
h/b (Aspect Ratio)
Figure 111-13. Poisson's ratios for 3D periodic Lattice Block.
-38-
2
2D & 3D Periodic Lattice Block: Young's Moduli
0.8
solid = 2D
dashed= 3D
0.70.6 -
A*
.. A"
0.5 '3_
z-dir
y-dir
-
S0.4
.A**
0.2
0.0
1
0.5
0
1.5
2
h/b (Aspect Ratio)
Figure 111-14. Normalized moduli for 2D and 3D periodic Lattice Block, plotted together.
Dimensional elastic constants are calculated for a three-dimensional version of the JAMCORP
material. The material has a unit cell with the same dimensions as found in the two-dimensional
periodic structure, implying AR = 0.617. Assuming the three-dimensional version would also be
made from aluminum, we take Es = 10*106 Psi. The results appear in Table 111-1. The threedimensionally periodic material is less stiff in all normal directions.
Alternate Method for Normal Stress / Strain
It is possible to compute the elastic constants through an alternate method, based on determining
the stiffness matrix and inverting it. This method was developed at the beginning of this project.
It simplifies the boundary conditions necessary for analyzing the periodic unit cell, but yields the
elastic moduli in a less direct manner.
We define the relationship between normal stress and normal strain on the unit cell through a
stiffness matrix Cn.
1
L2
_3 i
C11
C12
C13 F1
C2 1
C22
C2 3
C32
C3 3 _e
_C
31
62
3
J
-39-
(111-9)
The elastic constants cij are determined with three related models. First the cell faces are
constrained such that
Fl
# 0, while E2 = 0 and
-3 =
0. The analysis is run, meaning that we
compute forces and displacements. Then the forces and stresses on each face are found, giving o1,
02,
and 03. This is sufficient to solve for three elements of the stiffness matrix c11, c 2 2 , and c 3 3.
C
Ei
and
EI,
Then the unit cell faces are constrained such that
- 2 # 0,
E
31
while
gj
{for E2 = 3 = 01
= 0 and
3=
(111-10)
0, and we compute
c 12 , c 22 , and c3 2 . Finally the unit cell faces are constrained such that E3 # 0, while
g1
= 0 and E3 = 0,
and we compute c 3 1, c 32 , and c 33.
The compliance matrix for normal stress/strain, S,, is equal to the inverse of the stiffness matrix.
El
Si1
S12
S13
471
e 21
21
S22
S23
U2
_e3 _
_31
S32
S33 _P_73 _(J_1
Cn-1
S=
(111-12)
The compliance matrix for normal stress / strain can also be written in terms of Young's moduli
and Poisson's ratios.
C2
L-'3
-
1
V12
El
V21
E2
E3-
1
V23
El
E2
__- V32
E3
V3 1
El
E2
V13
(111-13)
U2
3
-
E3
The diagonal elements of S, are the reciprocals of the Young's moduli. The off-diagonal elements
are the ratios between a Young's modulus and a Poisson's ratio. At this point the Young's moduli
and Poisson's ratios are readily calculated.
Boundary Conditions:A DetailedExample
Boundary conditions for the first analysis are explained to illustrate the overall approach. The
goal is to load the unit cell such that EI # 0, but E2 = 0 and E3 = 0. Figure 111-15 illustrates a unit
cell with the appropriate boundary conditions. The displacement is applied symmetrically: the left
face displaces -
U and the right face displaces
1/2
-40-
U in the x-direction. The front and back faces
are restrained, as are the top and bottom faces. Finally six nodes (1, 3, 6, 8, 10, and 14) are linked
because otherwise they would have zero stiffness in the x- and z-directions.
Boundary Conditions for loading in the x-direction
link to 4
link to 7
link to 7
X: Free
Y: Rest. Dy = 0
Z: Rest. dz = 0
7
16
link to 5
link to 7
link to 7
Compression in the xdirection (U is negative)
Imposed Strain:
s1l = nonzero
8
622 =0
633 = 0
X: Rest. dx = -1I2*U
Y: Free
Z: Rest. dz = -
4
X: Rest. dx = 112*U
Y: F ree
Z: Rest. dz = 0
24
X: linkto4
Y: link to 2
Z: link to 2
X: Free
Y: Rest. dy = 0
Z: Rest. dz = 0
link to 5
link to 2
link to 2
BOTTOM SURFACE
z
x
X: Rest. dx = -1I2*U
Y: Rest. dy = 0
Z: Rest. dz = 0
X: Link to 12
Y: Link to 13
Z: Link to 12
I
13
Rest. dx = 112*U
Rest. dy = 0
Rest. dz = 0
14
X: Rest. dx = 0
12 Y: Rest. dy = 0
Z: Free
11
-> 4 9
3D view of unit cell
4 110
X: Rest. dx = -1/2*U
Y: Rest. dy = 0
Z: Rest. dz = 0
X: Link to 12
Y: Link to 9
Z: Link to 12
Rest. dx = 112*U
Rest. dy = 0
Rest. dz = 0
TOP SURFACE
Figure 111-15. Bondary conditions for x-dir compression using alternate method
-41-
(E2 =
E3
=
0)-
Shear Stress / Strain
The shear moduli, G 4 , G5 , and G6 , were calculated using the periodic unit cell. Separate boundary
conditions were required to determine each shear modulus. For z-x shear, bottom face is
restrained in the x- and z-directions while the top face is displaced in the x-direction. The original
and deformed unit cells are shown in Figure 111-16. A MATLAB script that generates this model
is included in Appendix L.
The shear moduli for the JAMCORP material, listed in Table 111-2, were calculated using the
measured inner strut offset: d = 2.4 mm.
Normalized shear moduli are plotted as a function of aspect ratio in Figure 111-17. Here the shear
moduli are normalized by Young's modulus of the solid material, E,, and by the relative density,
p*/ps. The normalized moduli were calculated under the assumption of no inner strut offset: d = 0.
Shear strength is plotted as a function of aspect ratio in Figure 111-18. Shear strength is defined as
the peak stress. As before, the shear strength is normalized by the yield stress of the solid
material, oys, and the relative density, p*/ps. The shear moduli were calculated using the measured
inner strut offset, d = 2.4 mm.
As was anticipated, G 4 and G5 are identical. G4 and G5 correspond to z-y and z-x loading, which
occur by translating the top surface in the x- and y-directions. Members connecting the top and
bottom surfaces have 90 degree symmetry in the x-y plane. Thus translation of the top face with
respect to the bottom face is identical in the x- and y- directions, and G4 and G5 must always be
the same.
Shear moduli G 4 and G 5 depend strongly on aspect ratio. At small aspect ratios the relative shear
moduli G 4 and G5 are near zero. As the aspect ratio increases G4 and G5 rise rapidly, reach a peak
around AR = 0.6, and then begin to decrease. In contrast, G6 has a value near 0.1 for small aspect
ratios and declines slowly with increasing aspect ratio.
-42-
Shear Strain: e_
Shear Strain: ezx
Figure 111-16. Original and deformed unit cells for shear loading.
-43
-
Table 111-2. Shear moduli for 2D and 3D periodic Lattice Block.
2D Periodic
Value (GPa)
p*/ps = 14.2 %
3D Periodic
Value (GPa)
P*/Ps = 9.89 %
Gxz
Gyz
0.70
0.46
Gxy
0.89
0.43
Shear Moduli
0.12 0.100.08
x-y shear
0.06
x-z, y-z shear
0.04
0.02
0.00 -0
1
0.5
1.5
h/b (Aspect Ratio)
Figure 111-17. Normalized shear moduli for 2D periodic Lattice Block.
-44
-
2
Normalized Shear Strength for Periodic 2D Material
0.24-X- Shear ZX
0 Shear ZY
-A- Shear XY
0.20
~0.20
-.
0.16
0.12
a,
0.08 0.04 0.00-
0.4
0.9
1.4
1.9
Aspect Ratio
Figure 111-18. Normalized shear strength of 2D periodic Lattice Block.
Shear moduli were also determined for a 3D periodic unit cell. The shear moduli for JAMCORP
material are included in Table 111-2. The normalized shear moduli (neglecting inner strut offset)
are plotted as a function of aspect ratio in Figure 111-19. G4 and G5 are again identical, and again
exhibit strong aspect ratio dependence. At small aspect ratios they rise from zero to a peak of 0.07
near AR = 0.6. Further increase in aspect ratio lead to a steady decline in G 4 and G5 . In contrast
G6 shows less aspect ratio dependence, declining slowly with increasing aspect ratio.
Normalized shear moduli appear for comparison in Figure 111-19. The 2D periodic structure has a
larger relative modulus for shear in the x-y direction. In contrast, the three-dimensionally periodic
structure has a larger normalized modulus for shear in the z-y and z-x directions. Just as for
normal stress / strain, these effects have to do with changes in stiffness and relative density from
members on the top and bottom faces.
-45
-
2D & 3D Periodic Lattice Block: Shear Moduli
0.12
solid = 2D
dashed = 3D
0.10
x-y
shear
0.08
"*A.-A
CL
L
0.04
x-z, y-z
0
shear
-,
--A -A
.
0.02
0.00
0
1
0.5
1.5
2
h/b (Aspect Ratio)
Figure 111-19. Normalized shear moduli for 2D and 3D periodic Lattice Block.
Geometry Effects
Other aspects of the Lattice Block geometry, in additional to aspect ratio, can have a significant
effect on the mechanical properties. The most significant factors are edge effects and the inner
strut offset.
Small specimens behave differently than larger ones because of edge effects. These result from:
1) the effect of edge members of full, rather half, thickness, and 2) non-periodic deformations
near the specimen edges. This effect is studied by writing a program to generate tiles with an
arbitrary number of unit cells along each edge. JAMCORP tiles have a border that runs parallel to
the x-direction. This border is included for comparison with experimental results. A six-by-six
tile, with unit cell dimensions matching those of the JAMCORP material, is illustrated in Figure
111-20.
-46-
Figure 111-20. Lattice Block tile 6 cells wide by 6 cells deep.
Square tiles were analyzed with edge lengths from one to ten cells. The Young's moduli are
plotted in Figure 111-21 as a function of the number of unit cells along the tile edge. The relative
density of each specimen is plotted in Figure 111-22, also as a function of the number of unit cells
along the tile edge. Also included are results for two-dimensionally periodic LBM. Correlation
with the periodic results improves with increasing tile size. The x-direction relative modulus is
much larger than the 2D periodic value for small tile sizes. This is can be attributed to the border
running in the x-direction. For increasing tile sizes the large number of internal cells dilutes the
border effect, and E, approaches the 2D periodic value. For a 10 x 10 tile, the limit of this study,
E is 22% larger than the 2D periodic value.
The relative density also approaches the 2D periodic value for larger tiles. Again the discrepancy
is related to the full members and the extra border along the edge. The smallest tile, a 1 x 1 cell,
has a relative density 57% larger than the 2D periodic value. The largest tile analyzed, with size
10 x 10, has a relative density only 6% larger than the 2D periodic value.
Non-periodic deformation of cells near the tile edges is shown in Figure 111-23. The drawing
shows a 6 x 6 tile subject to a 5% strain in the z-direction, as seen from above. The edge effects
are most clearly seen by comparing the curved edges of the deformed structure (dashed lines) to
the original structure (solid lines). Curvature is much more pronounced in the x-direction, where
the edges bow out near the center. This makes sense because Lattice Block has a larger stiffness
in the y-direction.
-47
-
Lattice Block Modulus as a Function of Tile Size
5 .0
Exx
ydir+
y-dir
.5-
4 .5
4 .0
-
E3- Eyy
Ezz
3 .5
3 .0
VU
0
.....-
2
0
.----.----...-----------------.....---..---.
2D periodic: y-dir
2 .0 -z-dir
.5
.0
2D periodic: x-dir
2D periodic: z-dir
0 .5
0.0
2
0
4
8
6
10
Tile Size (Num. of cells along each edge)
Figure 111-21. Lattice Block modulus plotted as a function of tile size.
Lattice Block Volume Fraction vs Tile Size
0.25
-
a)
C
a) 0.20 0.15
-
2D periodic value
0
0.10
-
E 0.05
-
4)
.
0.000
2
4
6
8
Tile Size (Num. of cells along each edge)
Figure 111-22. Relative density plotted as a function of tile size.
-48
-
10
Load in z-direction
1'z
"V
Ca
N
"N"
21HZI
V
x-axis
Figure 111-23. Non-periodic deformation of Lattice Block tile compressed in z-direction.
There is good correlation between moduli for the infinite planar array and those for large tiles.
This is the expected result. It confirms that large structures can be modeled effectively with a
periodic unit cell analysis.
The second important geometry effect is the inner strut offset. To illustrate this effect, moduli are
plotted as a function of inner strut offset, d, in Figure 111-24. The data was generated using
MATLAB scripts to create models with varying inner strut offset. The models had the same
dimensions as the experimental specimens, discussed later. The moduli Ex, Ey, G 4, and G5
increase with increasing d. In contrast E, declines with increasing d. The inner strut offset effect
is most significant for the shear moduli, G4 and G5 .
Other geometry effects were studied as well. Models were generated with randomly perturbed
nodes and loaded to failure in ABAQUS. The nodes were perturbed by a small, randomly
computed amount, to simulate structural irregularities. Results for a specimen loaded in the xdirection are shown in Figure 111-25. Here the perturbations were uniformly distributed between 2.5 mm and 2.5 mm, and applied separately x-, y-, and z-coordinates of each node. Each curve
labeled "Perturbed Nodes" represents a different set of random perturbations. Generally the effect
on mechanical properties was small. The peak stress and failure strain decrease, and Young's
Modulus decreases slightly as well.
-49
-
Effect of Inner Strut Offset on Calculated Modulus
5 Ey - calculated
4.5 -
Ey -measured
4
co
o 3.5
S 30 2.5 -
E
2
C,
-
calculatedEz
- measured
91.5
E,
1.5-
0
0.5--
0
calculated
e
-
1
-f"-c1c
2
-
x
jmeasured
3
4
5
6
d (mm)
Figure 111-24. Lattice Block moduli plotted as a function of inner strut offset.
LBM Compression/Failure Model: X-dir
9
87 6First member fails. Analyses
no longer converge.
0.
Ul) 3
Distorted Nodes
-Undistorted
Nodes
2
10
0.0%
1.0%
0.5%
1.5%
Strain
Figure 111-25. Force-displacement curve for x-dir compression,
comparing perturbed and unperturbed nodes.
The linear dependence of modulus and strength on relative density was also verified. Periodic
unit cell models were created in ABAQUS for three different relative densities. These were used
to compute Young's modulus and peak strength for x-, y- and z-direction loadings. The results,
-50-
which are plotted in Figure 111-26 and Figure 111-27, confirm that Young's modulus and peak
strength scale linearly with relative density.
Modulus of Lattice Block Material vs Density
3500 3000 2500 0
2I
--U-
20001500-
-A-
Ex
Ey
Ez
1000
500
0
5%
0
10%
15%
Relative Density
Figure 111-26. Lattice Block moduli as a function of relative density.
Strength of Lattice Block Material vs Density
16
-
a_ 14
Cz 12
10
-
U-
-
X-dir
Y-dr
--e- Z-dir
-
-
864>
20-
....
.....
F--
5%
10%
15%
Relative Density
Figure 111-27. Lattice Block strength as a function of relative density.
Defect Sensitivity
The defect sensitivity of Lattice Block was examined by creating a series of models with more
and more defects (missing struts). The models were based on a 6 cell by 6 cell Lattice Block
-51-
structure compressed in the z-direction. Originally the structure contained 769 members, and
members were randomly selected and removed to generate defects. The deleted members were
selected separately for each model, so each model had a different set of defects. The original
structure is shown in Figure 111-28, and a structure with 100 missing members is shown in Figure
111-29.
Figure 111-28. Lattice Block tile, 6 cells by 6 cells.
Figure 111-29. Lattice Block tile with 100 missing members.
The models were created automatically with a series of MATLAB scripts, solved using
ABAQUS, and then results were tabulated using another MATLAB script. The script interp.m,
-52-
included in Appendix M, performed the data analysis: it converted force / displacement data to
stress / strain data, and calculates the peak stress, 0.2% offset yield stress, and Young's modulus.
In total 102 models were analyzed, containing between zero and 101 defects. The decrease in
mechanical properties are plotted as a function of the fraction of missing struts in Figures 111-30
and 111-31. The scatter in the figures comes from randomly choosing the defect locations for each
analysis. Straight lines drawn through the data suggest the properties decline linearly with the
fraction of missing struts. Young's modulus and yield stress decrease at a rate of 1.5 times the
fraction of missing struts, while the peak stress decreases at a rate of 1.7.
This study indicates that Lattice Block is relatively insensitive to defects. If the defect rate were,
say, 1%, then the mechanical properties would be better than 98% of the defect-free properties.
Defect Sensitivity (z-dir compression)
1.00
0.95
y = -1.528x + 1.004
0.90
0
0.85
+ Sy* / SyG
0
00
o Smax* / S_maxO
+
0
0.80
y = -1.704x + 0.982
.
0.75
O.x 0
0.10
0.05
a
0.15
Fraction of Missing Struts
Figure 111-30. Yield-stress and peak-stress defect sensitivity for Lattice Block.
-53-
Defect Sensitivity (z-dir compression)
1.00 1-
0.95
*
+
+
+
0.90
y =-1.539x + 1.005
+
0.85
+
+
0.80
0.75
0.00
0.05
0.10
0.15
Fraction of Missing Struts
Figure 111-31. Young's modulus defect sensitivity for Lattice Block.
Experimental Verification and Failure Analysis
Procedure
The uniaxial compressive response of the truss material was measured directly on specimens cut
from the tiles. For loading in the x- and y- directions, the specimens were cut to be 5 cells long in
the compression direction, and 1 cell long in the perpendicular direction. For loading in the zdirection, the specimens were constrained to be only one cell high in the loading direction as this
was the height of the tiles obtained from the manufacturer. The Young's modulus in the zdirection was measured on small specimens (1.5 cells x 2 cells in area). Three specimens were
used for each of the x-, y-, and z-direction tests. All of these specimens were tested using a 25kip
capacity Instron testing machine (Model 1321, Instron Corporation, Canton, Massachusetts).
However the capacity of this machine was insufficient to measure the strength of the truss
material in the z-direction. Additional tests were performed on a 100 kip capacity machine (MTS
Test Frame 311.21, Minneapolis, MN) using larger specimens (2 cells x 4 cells). The strength of
the truss material in the z-direction was measured from these tests, using two specimens. We
were unable to obtain reliable displacement data from the latter tests because the platens lacked
mounting points for an LVDT, so a reliable stress-strain curve was not obtained. In all cases the
specimens were tested in compression between steel platens. Platens on the 25 kip machine were
-54-
25 mm thick, and platens on the 100 kip machine were 50 mm thick. Force was measured with a
load cell and displacement was measured with LVDT's mounted directly to the platens (for the
25kip machine). Three specimens were tested in compression for each of the x-, and y-directions,
and two were tested for each of the z-direction experiments.
The shear response of the truss material was measured in accordance with ASTM standard C27361 (1994). A typical sample is shown in Fig. 111-32. Due to sample size requirements, it was
possible only to measure the shear response in the z-x and z-y planes. A sample of the truss
material of dimensions 12.75" x 2.25" was bonded to 0.5" thick aluminum plates using the
structural adhesive FM-123-2 (Cytec, Harve de Grace, Maryland). The assembly was cured in an
autoclave at 107 0C and 0.28 MPa for 2 hours. Tests were performed by pulling the sample in
tension, along the diagonal of the specimen, as shown in the Fig. 111-32. Displacement was
measured with two high-precision LVDT's (050 MHR, Lucas Shaevitz, Hampton, Virginia)
mounted directly on rigid plates attached to the specimen. Force was again measured with a load
cell. Four specimens were tested in shear: two in the z-x plane and two in the z-y plane.
+
Figure 111-32. Typical shear test specimen.
-55-
Results
Typical stress-strain curves for loading the truss material in the x-, y- and z-directions are shown
in Fig. 111-33. For loading in the x- and y- directions, the curves initially exhibit an increasing
slope, corresponding to the specimens deforming slightly to contact the loading plates at each
point across the loading surface. Subsequent loading produces a linear stress-strain relationship.
Eventually the specimens begin to yield and the slope decreases slowly. When the first member
fails the stress drops instantaneously. This and subsequent member failures are accompanied by
audible pings. The specimens were partially unloaded for elastic modulus calculations; the
unloading portions of the stress-strain curves overlap the loading curves.
The properties of the truss material in the z-direction were measured in two sets of tests due to
difficulties with the capacity of the testing machines and with measuring displacements. The first
set gave the linear elastic portion of the stress-strain curve, shown in Fig. 111-33, while the second
gave the failure stress. The average value of the compressive strength of the truss material in the
z-direction is 9.01 MPa, with standard deviation 0.33 MPa.
Experimental Response of Lattice Block Specimens
20
18 -
y-dir
16 14 c12
10 8 -
z-dir
x-dir
6 4 2 -
0
0.0%
0.5%
1.5%
1.0%
2.0%
2.5%
Strain
X-direction: 5 cell x1 cell specimen
-Y-direction:
1 cell x 5 cell specimen
Z-direction: 1.5 cell x 2 cell specimen
Figure 111-33. Typical stress-strain curves for loading in x-, y-, and z-directions.
-56-
Failure in specimens loaded in the x-direction corresponded to the sudden fracture of individual
members loaded in tension (Fig 111-34). Failure in specimens loaded in the y-direction
corresponded to buckling of individual top- and bottom-lattice members loaded in compression
(Fig 111-35). Failure in specimens loaded in the z-direction corresponded to tensile fracture in topand bottom-members and buckling in core-members (Fig 111-36).
A typical stress-strain curve for loading in shear in the z-x plane (equivalent to the z-y plane) is
shown in Fig. 111-37. The curve is initially linear and gives a shear modulus of 1.17 GPa with a
standard deviation of 0.11 GPa. The modulus was calculated from partial unloading curves,
which overlap the loading curves exactly. After loading the stress dips slightly, rises again, and
then declines slowly, corresponding to debonding between the specimen and the aluminum plates.
As a result of debonding, we were unable to measure the yield and failure response in shear.
Figure 111-34. Specimen compressed to failure in x-direction.
Figure 111-35. Specimen compressed to failure in y-direction.
-57
-
Figure 111-36. Specimen compressed to failure in z-direction.
Lattice Block Specimen Shear Test
1.8
1.6 1.4'
0.
1.2begins
1 -debonding
u 0.8O5 0.6 0.40.20
0.0%
0.2%
0.4%
0.6%
0.8%
1.0%
Strain
Figure 111-37. Stress-strain curve for loading in z-x shear.
Discussion
The predicted and experimental data for elastic properties are compared in Table 111-3. The
calculated values are the results obtained by modeling the exact geometry of the test. For
example, the x-direction compression tests used 5 cell by 1 cell specimens, so the calculated
value for x-direction modulus is obtained by modeling a 5 cell by 1 cell structure. The
calculations used perfect models (no node perturbations) and included inner strut offset. The
calculated modulus is plotted against the inner strut offset distance in Figure 111-24, together with
the measured values. Agreement between the experimental data and model results is good. The
-58-
discrepancy between experiment and model for Ex, Ey, Ez, and Gz are -17%, +5%, +7%, and -27
%, respectively. Elastic properties for the infinite planar array and for an infinite truss material in
three-dimensions were included in Table 111-1.
Table 111-3. Predicted and experimental values for elastic properties of Lattice Block.
Measured
(GPa)
Standard
Deviation (GPa)
Calculated
(GPa)
% Error
Ex
1.151
0.03
0.961
- 17%
EY
4.222
0.30
4.452
+5 %
Ez
Gxz
Gyz
1.263
0.11
1.354
+7%
1.175
0.11
0.926
-27%
Notes:
1. Specimen was 5 cell by 1 cell, aligned along x-direction.
2. Specimen was 5 cell by 1 cell, aligned along y-direction.
3. Specimen was 1.5 cells (x-dir) by 2 cells (y-dir).
4. Average from two models: a 1 cell by 2 cell model and a 2 cell by 2 cell model.
5. Shear specimens were 8.5 cells by 1.5 cells. Two were tested with the long axis along the
x-dir, and two were tested with the long axis along the y-dir. Results were the same within
scatter, as predicted by symmetry.
6. Average from two models: an 8 cell by 1 cell and a 9 cell by 2 cell model.
The model also predicts the nonlinear stress-strain response of the truss material. Results from
tests of the x- and y-direction compression are plotted together with model results in Figure 111-38
and Figure 111-39. The models include a random distortion to node positions to capture random
variations in specimen geometry and material response. The x-direction model gives a good
description of the measured compressive stress-strain curve. Results from tests of y-direction
compression agree equally well during linear loading and yielding, but the model under-estimates
failure stress. The elastic - hardening model (without material failure) gives a good description of
the stress - strain curve up until failure. The measured strengths for loading in the x-, y- and zdirections are compared with the model results in Table 111-4. The model predicts U*x and *z
well, but underestimates o*y.
-59-
LBM Compression/Failure Model: X-dir
9
I
8
7
Cz
r------UISOred
Nodes
-Undistorted
Nod I's
I
Experiment
,00
,6
a-
First member fails. Anal)yses
no longer converge.
2-15
cn4
U)3
2
1
0
0.0%
0.5%
1.0%
1.5%
2.0%
2.5%
Strain
Figure 111-38. Comparison of model and experiment results for x-direction.
LBM Compression/Failure Model: Y-dir
2018
-
16
-
--------
Undistorted Nodes
Experiment
14 -
U)
12
-
10
-
8-
Distorted Nodes
Analyses no
longer converge
642
0
0.0%
0.5%
1.0%
1.5%
2.0%
2.5%
Strain
Figure 111-39. Comparison of model and experiment results for y-direction.
-60-
Table 111-4. Measured and predicted strengths for finite Lattice Block specimens.
Experiment (MPa)
Standard Deviation
(MPa)
Model (MPa)1
Model ()/ Experiment
ox
6.50
1.1
8.03 (7.28)
1.12
CY
18.31
1.0
15.11 (14.72)
0.80
CY
9.01
0.33
8.92 (8.42)
0.93
1.
2.
Notes:
Two values for each model are given. The first is for a geometrically perfect model, and the
(second) is for a model that includes random distortions in initial node position.
Specimen sizes: x- and y-dir specimens were 5 cells by 1 cell. The z-dir specimens were 2 cells by
4 cells.
The larger discrepancy in ody may be understood by considering possible failure modes for
individual members: yield and brittle failure in tension, yield and brittle failure in compression,
and buckling. The model uses simple truss elements, and therefore captures only tension and
compression failures. Buckling, which is physically possible, is neglected entirely in the simple
model. The Euler buckling equation can be used to find the critical stress for a member of length 1
to buckle elastically.
P = n
"r12
2
2 7rt EI
__D_
, where I =
64
for circular members
(111-14)
The critical elastic buckling stress for members in the JAMCORP Lattice Block, assuming pinned
ends (n = 1), is shown below. In practice, the ends are closer to a fixed condition, giving even
higher elastic buckling loads.
Table 111-5. Critical buckling stress for Lattice Block members.
Member Length
oCr
(MPa)
38.1 mm
296
30.2 mm
470
Since the aYS = 224 MPa for the solid material, the Euler equation predicts yield before elastic
buckling.
Insight into actual failure mechanisms is gained by considering relative stresses in the linear
elastic model. Relative stresses in individual members, which are calculated by normalizing by
-61-
the maximum member stress, are displayed for x-, y-, and z-direction loading in Figure 111-40,
Figure 111-41, and Figure 111-42. Specimens loaded in the x-direction exhibit the largest stress and
strain in face members loaded in compression. These members probably yield first, in
compression, leading to increased strain in surrounding members. Tensile-member stress and
strain increase for compatibility, eventually leading to tensile member fracture. Finally
compressive members bend and begin to crack on the tensile side. Specimens loaded in the ydirection exhibit the largest compressive stress in face members located parallel to the ydirection. These members run continuously through the specimen it the y-direction. Probably
these members yield in compression and then buckle plastically during failure. Specimens loaded
in the z-direction exhibit the largest stress in core members running between the upper and lower
faces. Probably these yield in compression, and eventually buckle plastically. In addition, there is
tensile fracture in the most highly loaded tensile members on the faces.
As shown in Fig. 111-5, the material is stronger in compression. It is therefore plausible that
members in compression deform elastically, reach the yield stress, and then fail through plastic
buckling. Such a process suggests that they support higher ultimate stress and strain then
members in tension, which fail by brittle fracture. It seems reasonable that the x-direction model
is most accurate because members fail in tension, which is well captured by the tensile material
response data and the truss analysis. The y-direction model may be less accurate because
members fail in compression (buckling), which is poorly captured by the tensile material response
data and the truss analysis. The z-direction model is somewhat more accurate because members
fail in tension as well as compression, and the model captures the tensile failure mode.
For a unit cell loaded in compression, the ratio of maximum tensile stress to maximum
compressive stress is: for loading in the x-direction, 0.602; for loading in the y-direction, 0.337;
and for loading in the z-direction, 0.347. Therefore tensile failure is most likely for loading in the
x-direction, and buckling is most likely for loading in the y-direction. These predictions agree
with the failures in Figure 111-34, Figure 111-35, and Figure 111-36.
-62-
Load in X-dir: Relative Member Stress
l
Maximum Compressive Stress
Maximum Tensile Stress
Intermediate Stress Levels
1.000
-0.518
-0.518
.518.
0.602
C.
2
2
.0 .602
2
2 6 2 .602
2
.602
8
8.1
1.000
y-axis
Figure 111-40. Relative stresses in members, unit cell loaded in x-direction.
Load in Y-dir: Relative Member Stress
ani
Maximum Compressive Stress
Maximum Tensile Stress
y
Intermediate Stressr Leens
Fiur
0.150
A
1.000
1.000
.150
000
-0.3377
.337 .-
07.37
.337 37
1
10.
1.
0.150
y-axis
.7
0
1.000
x-axis
Figure III-41. Relative stresses in members, unit cell loaded in y-direction.
-63-
Load in Z-dir: Relative Member Stress
yi
Maximum Compressiv Stress
x
Stress
Maximum Tensile
F
Intermediate Stress Lee s
-0.347
-0.069
.069
-0.069
..
347
.8
.80
.000
8
.780.000
.00.780
80
7
-0. 9
y-axis
9
-. 6
x-axis
Figure III-42. Relative stresses in members,
unit cell loaded in z-direction.
Comparison to Metal Foam
Models for closed-cell foams suggest that uniaxial and shear loading induce axial forces in their
members, giving them moduli and strengths which should vary linearly with relative density,
similar to the truss material studied here. In practice, imperfections in the structure (for instance,
curvature in the cell walls or highly elliptical cells) induce bending in the cell walls, reducing
their properties to values substantially below those expected for ideal closed-cell foams (Andrews
et al., 1999; Bart-Smith et al., 1999). The Young's moduli and compressive strength of the truss
material are compared with those of metallic foams, and with model results for open-and closedcell foams, in Figure 111-43 and Figure 111-44. Most of the metallic foams in Figure 111-43 and
Figure 111-44 are closed-cell: their Young's moduli and compressive strengths lie well below the
model predictions for closed cell foams. The Young's modulus and compressive strength of the
truss material significantly exceeds those of metallic foams for loading in the y-direction. For
loading in the x- or z-directions, the Young's moduli of the truss material is comparable to those
of metallic foams and the compressive strengths are equal to the strongest metallic foams.
The Young's moduli, the shear moduli and the uniaxial compressive strengths of the truss
material are compared with those of a commercially available, nearly isotropic, closed-cell
metallic foam (trade name Alulight) in Table 111-6. The relative densities of the two materials are
within 6% of each other. The truss material has superior properties in all cases with the
exception of the Young's moduli for loading in the x- and z-directions. The shear moduli and the
-64-
uniaxial compressive strengths of the truss material in all three directions are significantly higher
than those for the metallic foam.
Relative Modulus vs Relative Density
100
T-
I
V
V
V
101
y-dir
0
(
0
0
z- r
x-dir
x
closed-cell
102
V
w
r
X
4.
V
*
Andrews (1 999a) Alcan
open-cell,
E3
Beals (1997) Alcan
Simone (1998) Alcan
V
0
0
Sugimura (1997) Alcan
A
A
V
V
V
Andrews (1 999a,b) Alporas
Simone (1998) Alporas
Sugimura (1997) Alporas
Andrews (1 999a) Alulight
Gradinger (1997) Alulight
McCullough (1999) Alulight
Andrews (1 999a) Fraunhofer
Weber (1994) Fraunhofer
Andrews (1 999a,b) ERG
Bart-Smith (1998) ERG
Dubbelday (1992) ERG
Lattice block
L/
10-4
1(72
10-1
100
RELATIVE DENSITY, p/p
Figure 111-43. Young's modulus comparison between Lattice Block and metal foams.
-65-
Relative Strength vs Relative Density
1O
V
10'1
y-dir
3H
/-dir
x-dir
(9
/
z
closed-cell
w
io2y
o
Andrews (1999a) Alcan
Beals (1997) Alcan
Prakash (1995) Alcan
Simone (1998) Alcan
VonHagen (1998)Alcan
Andrews (1999a,b) Alporas
Gioux (1999) Alporas
Simone (1998) Alporas
Sugimura (1997) Alporas
VonHagen (1998)Alporas
Andrews (1999a) Alulight
Gradinger (1997) Alulight
McCullough (1999) Alulight
Andrews (1999a) Fraunhofer
Banhart (1998) Fraunhofer
Banh art (1995) Fraunhofer
Weber (1994) Fraunhofer
Thornton (1975) AJ-7%Mg
Bart-Smith (1998) ERG
Gioux (1999) ERG
Triantafillou (1989) ERG
Lattice block
I
O
*
I
,
open-cell
1
V
*
A
3
o
X
+
+
v
+
A
v
*
14
1C
2
1
_
ioo
0
RELATIVE DENSITY, p/p
Figure 111-44. Strength comparison between Lattice Block and metal foams.
-66-
Table 111-6. Properties of Lattice Block compared to metal foam.
Alulight
Lattice Block'
Es
(GPa)
69
69 GPa
Gys
(MPa)
250
224 MPa
0.151
p*/ps
0.142
x-dir
y-dir
z-dir
E*
(GPa)
1.68
1.13
4.33
1.26
Gys*
(MPa)
4.55
6.50
18.31
9.01
G*
(GPa)
1.17
1.17
0.63
2
Notes
1. Lattice Block data are measured values, not model results.
2. G for Alulight estimated assuming v = 0.33
3. Gy was not measured for Lattice Block, so the model value is given.
-67-
0.89 (est
3)
IV. Octet Truss Material
Geometry
The octet truss material, shown in Figure IV- 1, is another three-dimensional truss material.
The
face members have length L, and the brace members (those in the core) have length LBIn
contrast to Lattice Block, the brace members trace out tetrahedrons instead of square-pyramids.
Also the face members intersect at 1200 angles instead of alternating 900 and 450 angles. Nathan
Wicks proposed the periodic unit cell shown in Figure IV-2. Using that model, each unit cell
contains 6 full face-members and three full brace-members. An alternative unit cell, shown
in
Figure IV-3, will be useful for calculating the mechanical properties.
Figure IV-1. Computer generated image of octet truss material.
It is helpful to define some quantities with respect to the unit cell geometry. The diagram in
Figure IV-4 shows that the unit cell length is -L
and the width is L. Also, the upper and lower
faces are offset in the x-direction by a distance 8x, and the unit cell height is H.
Sx=-
3
L2
3
L,
-68-
(IV-1)
Figure IV-2. Periodic unit cell proposed by N. Wicks and J. Hutchinson.
Figure IV-3. Alternative periodic unit cell.
Yt
---
L
V
I
I
I
*
I
I
I
I
I
I
*
I
I
I
I
I
I
I
I
I
I
I
I
I
Top face members
Bottom face members
Brace member
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
*
I
I
I
0
x
ax=
3
L
-
2
V3L
L
Figure IV-4. Diagram of N. Wicks' unit cell showing relevant dimensions.
-69-
Properties of an infinite array of the octet truss material were computed using the second unit cell
(Figure IV-3). A MATLAB script, frame.m, defining the model, is included in Appendix N. It is
also possible to generate a model containing an arbitrary number of unit cells. A MATLAB script
to generate finite octet truss models is included in Appendix 0.
The relative density of octet truss material can be expressed in terms of L, LB, and Ax, where the
Ax is the cross-sectional area each members.
PS
As
=V = 2
2+
ALB
L0
(
B )2
_Y
N. Fleck manufactured octet truss material using injection molding and manual assembly. Those
samples have dimensions L = 10 mm, LB = 10 mm, and member diameter D = 2 mm, giving a
member area Ax = 7ED 2/4 = 3.14 mm 2 . An infinite array of such an octet truss would have a
relative density 40 %.
Normal Stress / Strain
Normal stress / strain response was calculated using the alternate unit cell (Figure IV-3) as its
sides align more closely with three perpendicular axes. Since the unit cell is periodic, the moduli
describe an infinite planar array. Young's moduli for the x-, y- and z- directions were determined
using the MATLAB truss solver. The procedure involved: constructing a unit cell model
(frame offset.m); compressing the model in the x-, y-, or z-directions (constrain x.m,
constrainy.m, and constrain-z.m); solving for the nodal forces (solvetrusslink.m); and
determining relevant stresses, strains, and moduli (main.m). All of the MATLAB scripts, except
the truss solver, are included in Appendices P, Q, R, and S.
The Young's moduli were calculated with the following formulas.
2U
(IV-3)
E, = C , where O. =
2bH
E
n E_
E
=
and E -=2U
E
=
"
"' , where U, =
S E, '
0P
where U
==
2aH
(2a)(2b)
-70-
2a
"
2b
and E
=-
"
U
H
(IV-4)
(IV-5)
The unit cell in Figure IV-5 has width 2a, depth 2b, and height H. The force Pi denotes the force
parallel to the i-direction on the displaced face. U is the applied displacement: for the x- and
ydirections it is applied to both faces, but for the z-direction it is applied to the top face only.
z
H
2bH
2a
Figure IV-5. Unit cell with dimensions 2a, 2b, and H
Representative properties are calculated for the truss material described below. The relative
density of the this material is 8.45 %.
Table IV-1. Dimensions and properties for an octet truss material.
Unit cell dimensions
L
10 mm
LB
10 mm
Member diameter
1.0 mm
Inner strut offset, d
0.75 mm
Es
70 GPa
-71-
Young's Moduli
EXX
1.32 GPa
Eyy
1.31 GPa
Ezz
1.16 GPa
The unit cell does not have even orthotropic symmetry: 1800 rotations about the x-, y-, and zdirections do not leave the material unchanged. However the Young's moduli above are quite
close: the smallest, Ez, differs from the largest, Exx, by only 12 %.
Modulus variation as a function of L/LB was characterized using a parametric analysis. The
MATLAB script parametric.m, included in Appendix T, generated and analyzed unit cell models
over a range of L/LB. The moduli were normalized by the solid modulus, E,, and the relative
density, p*/p,.
Enor
=
E
l
(IV-6)
The relative density, which is the same as the volume fraction, was calculated using the
MATLAB script volumefrac.m in Appendix U. The script computes the total volume occupied
members in the unit cell, accounting for half-thickness members on the edges, and divides by the
unit cell volume.
The normalized moduli are plotted as a function of L/LB in figure IV-6. Note that L/LB must be
less than
I3 because of geometry constraints. For small L/LB, the unit cell is tall and the brace
members are nearly vertical. In this configuration the z-direction has a large normalized modulus,
while the x- and y-directions have small normalized moduli. As L/LB inceases the z-direction
loses stiffness while the x- and y-directions become more rigid. The moduli are approximately
equal for L/LB= 0.9. As L/LB continues to increase, the x- and y-direction moduli increase
slightly and the z-direction modulus approaches zero. Note that the x- and y-direction moduli are
nearly identical over the full range of L/LB-
-72-
Octet Truss Material: Elastic Moduli
0.90 -0.80 0.70
z-dir
-+-
Exx
Eyy
-e-
Ezz
0.60 --*
0.50
0.40
W
x-dir
0.30
y-dir
0.20
0.10
0.00
-
0.0
0.2
0.4
0.6
0.8
1.0
1.2
1.4
1.6
1.8
L/Lb
Figure IV-6. Normalized moduli for octet truss material.
Shear Stress / Strain
The stiffness of the octet truss material in shear was examined using the periodic unit cell. The
alternate unit cell, shown in Figure IV-3, was loaded in zy-, zx-, and xy-shear using the
MATLAB scripts constrain-zy-shear.m, constrainzxshear.m, and constrain_xy-shear.m. Each
script defines constraints for a particular shear mode; the scripts are included in Appendices V,
W, and X. The deformed unit cells are shown in Figure IV-7, Figure IV-8, and Figure IV-9,
together with the original unit cell. The constraints for zy-shear are to restrain the bottom face in
the y- and z-directions, restrain the top face in the z-direction, and displace the top face in the ydirection. Shear moduli for a particular octet truss material appear Table IV-2.
-73-
Load in zy shear
x
N
x-axis
y-axis
Figure IV-7. Octet truss unit cell loaded in zy-shear.
Load in zx shear
U)
x-axis
y-axis
Figure IV-8. Octet truss unit cell loaded in zx-shear.
Load in xy shear
x-axis
y-axis
Figure IV-9. Octet truss unit cell loaded in xy-shear.
-74
-
Table IV-2. Dimensions and shear moduli for an octet truss material
Octet truss material specifications
L
10mm
LB
10mm
Member diameter
1.0 mm
Inner strut offset, d
0.75 mm
Es
70 GPa
Relative density p*/ps
8.45 %
Shear Moduli
Gzy
0.29 GPa
Gzx
0.30 GPa
GY
0.39 GPa
Careful examination of Figure IV-7 reveals that the unit cell loaded in zy-shear is twisted slightly
about the z-axis, in particular the top face is twisted. This twist indicates the deformation mode is
somehow coupled to another other deformation modes. The result could be a consequence of the
unit cell's absence of orthotropic symmetry. In this situation the shear moduli data should be
valid, but we expect that additional constants are needed to fully describe the elastic response.
A parametric analysis was performed to find the relationship between shear moduli and the unit
cell dimensions. A series of unit cells were generated with a MATLAB script, each of which had
a different value for L/LB. The unit cells were loaded in shear and used to compute shear moduli.
The shear moduli, normalized by Es and p*/ps, are plotted as a function of L/LB in Figure IV-10.
As before, geometry constraints require that L/LB
<'13.
The material has increasing normalized shear stiffness with increasing L/LB. For small L/LB the
zy- and zx- moduli are very small, while the xy-modulus is somewhat larger. All three moduli
incease with inceasing L/LB, up until L/LB
=1.2.
After that point, the zy- and zx-moduli decrease
rapidly, while the xy-shear modulus continues to increase slowly. The zy- and zx- shear moduli
are nearly identical for wide range of L/LB.
-75
-
Octet Truss Material: Shear Moduli
0.09
0.08
0.07
xy-shear
0.06
c0
zx-shear
0.05
C)
LL
zy-shear .....
0.04
0.03
-+ Gzyn
-i- Gzxn
-e-Gxyn
0.02
0.01
n.
-n
0.0
0.2
0.4
0.6
0.8
1.0
1.2
1.4
1.6
1.8
L/ Lb
Figure IV-10. Normalized shear moduli for periodic octet truss.
Geometry Effects
The effect of finite specimen size was examined by studying models in three-point bending. Since
three-point bending specimens are symmetric about the center, it is sufficient to study a halflength cantilever beam model. The models below are all cantilever beams. The effect of finite
specimens is also known as the "edge effect," and it refers to differences in behavior between
small and large specimens.
Wicks and Hutchinson examined truss core optimization under three-point bending (2000). Their
work neglected edge effects, essentially assuming the specimens were large enough that all
deformation is periodic. The current analysis examines the three-point bending configuration to
elucidate the significance of edge effects for small specimens.
We normalize the results to compare specimens of different sizes. The approach adopted here is
to compare the model results to traditional beam theory. The displacement at the tip of a simply
loaded cantilever beam is given in the equation below.
-76-
S-
and
I=
(IV-7)
12
3EI
Here 8 is the tip displacement, 1 is the beam length, E is the Young's modulus, I is the areamoment for the cross-section, b is the cross-section width, and h is the cross-section height. A
modified Young's modulus, E', can be defined to account for the relative density of the material:
E' = Vf E. We substitute the modified Young's modulus in place of the original and denote the
new force by P'. Solving for P' yields the following equation.
P = 5 33
(IV-8)
1
We can apply a displacement 8 to a model and compute the reaction force P. We can then find a
normalized force, P,, as follows.
P
Pn =_"P'
_P
P
(IV-9)
EV
5 3EVf I
The normalized force is non-dimensional and should be independent of 8, E, Vf, I, and 1. Any
variation in Pn among different model sizes can be attributed to edge effects.
The normalized force is plotted as a function of model size in Figure IV- 11. A series of models
were examined that had equal numbers of cells along the length and width. The models range
from 2 by 2 cells up to 8 by 8 cells. The results indicate an increase in normalized force with
increasing model size. The increase from the 2x2 to 3x3 model is 19%, while the increase from
the 7x7 to the 8x8 model is 1.7%. Here, edge effects appear significant for models smaller than
about 6x6.
The normalized force is plotted as a function of model length in Figure IV- 12. Here the models
are all two cells wide, but the length is increased from 2 to 10 cells. This study indicates that edge
effects are significant for models less than 4 cells long. The normalized force is plotted as a
function of model width in Figure IV-13. Here the models are all six cells long, but the width is
increased from 2 to 8 cells. This study indicates that edge effects are significant for models less
than 6 cells wide.
-77-
Octet Truss Material: Stiffness vs Model Size
0.5
0
...
...
........
0
0.4
00A
0.3
L..
0
U-
0.2
0.1 0.0
1
5
3
7
9
Model Size (# of unit cells in x, y-dirs)
Figure IV-11. Normalized force as a function of model size.
Octet Truss Material: Stiffness vs Length
0.40
LL
).3 -
10
N
).2 -
Model width = 2 cells
Inner Strut offset = 0.75 mm
0
E
.0
0
4
2
1
1
6
8
I
I
10
12
Model Length (cells in x-dir)
Figure IV-12. Normalized force as a function of model length.
Octet Truss Material: Stiffness vs Width
0
U4)
N
0
Z
0.5
0.4
0.3
0.2
0.1
0.0 0
Model length = 6 cells
Inner Strut offset = 0.75 mm
2
4
6
8
Model Width (cells in y-dir)
Figure IV-13. Normalized force as a function of model width.
-78
-
10
A final study, shown in Figure IV- 14, examines the effect of inner strut offset on normalized
force. The results show that normalized force decreases with increasing inner strut offset. All the
data points are from 5x5 cell models with L =
LB =10
mm. An inner strut offset of 1 mm causes a
35% decrease in normalized force compared to zero inner strut offset. Although Wicks and
Hutchinson neglected inner strut offset, this study suggests that it can have a significant impact on
bending stiffness.
Octet Truss Material: Stiffness vs Offset
0.7 0.6 ,
0
0.5 0.4 -
N
a 0.3 E
0.2
0.1
0.0
0.0
0.2
0.4
0.6
0.8
1.0
1.2
Inner Strut Offset (m)
Figure IV-14. Normalized force as a function of inner strut offset.
Buckle to Yield Transition
Failure mechanisms for 3D truss materials include member yield and member buckling. Members
loaded in tension always fail through a yield and fracture sequence. Members loaded in
compression fail through some combination of elastic buckling, plastic yield, plastic buckling,
and fracture. Images in Figure 111-34, Figure 111-35, and Figure 111-36 show various member
failures in Lattice Block tests.
We can use Euler buckling theory to develop some insight into expected failure modes. Consider
a cylindrical member with length L, cross-sectional area A, and Young's modulus E. The critical
forces for plastic yield and elastic buckling are given by the following equations.
Plastic Yield: F, = U- A
(IV-10)
-79-
Elastic Buckle: F-
n2fs
(IV- 11)
4e
For some combination of member dimensions and material parameters, the critical force for
plastic yield, Fy, will equal the critical force for elastic buckling, Fb. Setting Fy = Fb allows us to
develop the following equation.
UYS
ES
-
2;rA(IV-
41)
12)
For a set of member dimensions, A and L, we can compute the material property ratio ays / E,
such that the member would yield and buckle at the same load. For ays / E, smaller than this
critical value, the member will yield before buckling. Conversely, for larger ays / ES, the member
will buckle before yielding. Note that n 2 represents member-end constraints: n2= 1 for pinned
ends, and n2
4 for fixed ends.
The ratio ays E, for a variety of materials is computed in Table IV-3 (Data from Gere and
Timoshenko, 1990). Also, the ratio n2 7rA /4L 2 is computed in Table IV-4 for the JAMCORP
Lattice Block and two octet truss configurations.
Table IV-3. The ratio a*YS / E, for a variety of materials. (Data from Gere and Timoshenko, 1990)
Material
ays / Es
Aluminum: measured here
0.0032
Brass: red, hard
0.0059
Bronze, Manganese, Hard
0.0062
Cast iron, compression
0.0094
Nickel
0.0025
Nylon
0.0238
Rubber
15.2
Steel: stainless
0.0036
Titanium alloys
0.0086
-80-
Table IV-4. The ratio n2 Z4 / 4L 2 for Lattice Block and octet truss configurations.
nf 7tA / 4L 2
Material
diameter (mm)
A (mm 2)
L (mm 2 )
For n = 1
For n = 2
Lattice Block
3.18
7.92
38.1
0.0043
0.0171
3.18
7.92
30.2
0.0068
0.0272
1
0.79
10.0
0.0062
0.0247
2
3.14
10.0
0.0247
0.0987
Octet Truss
If
/ E > n2rA / 4L 2 we expect the member to buckle elastically. The long and short members
of the JAMCORP Lattice Block are included in Table IV-4. For these members and the measured
properties of aluminum, a, /E, < n2 zrA /4L 2, regardless of the value of n. This suggests that
plastic yielding should occur before elastic buckling.
The first octet truss entry in Table IV-4 should have interesting properties. Depending on n, the
value of n2 A /4L2 falls between 0.006 and 0.025. Depending on the material from which the
structure is manufactured, we should see different failure modes. If it were produced from the
same aluminum as the JAMCORP material, then ay, / E, < n2 A / 4L2, and we expect failure
through plastic yield. If it were produced from nylon, then ay / E > n2 A / 4L2, and we expect
failure through elastic buckling. The hypothetical experiment might be carried even farther: we
could manufacture the octet truss from materials with intermediate values of or /E, such as
bronze, cast iron, and titanium. Then a determination of the initial failure mode could be used to
estimate an effective n for the octet truss structure.
The second octet truss entry in Table IV-4 represents the material manufactured by N. Fleck.
Regardless of n, the value of n 2 zA / 4L 2 falls above that for ay, / E, for all of the materials in
Table IV-3 except rubber. This might have been anticipated: the members are short columns, with
a length only five times their diameter. Such a structure seems intuitively unlikely to buckle.
This discussion also offers a justification for modeling 3D truss structures with truss elements.
Typically member lengths are 8 to 12 times the member diameter. For this range, n2 7rA / 4L 2 falls
inside [0.0043, 0.096] for n = 1, and inside [0.0171, 0.0386] for n = 2. The members are
restrained at the ends, since they are connected to other members, so we expect the effective n to
-81 -
be larger than 1. Therefore n2.rA /4L 2 will typically be larger than 0y, / Es, so we expect members
to undergo plastic yielding before elastic buckling. Truss elements effectively capture plastic
yield, so truss models should accurately predict force/displacement curves through elastic
deformation and initial yielding. After plastic buckling occurs, however, the truss model can no
longer produce reliable results.
-82-
V.
Truss Core Material
Description
Attaching solid face sheets to a 3D-truss tile produces a high stiffness, lightweight sandwich
panel. We call this a truss core material, and a picture of a hypothetical material is shown in
Figure V-1.
Nathan Wicks and John Hutchinson compared the stiffness of the truss core material to that of
honeycomb-core sandwich panels (2000). The results, reproduced in Figure V-2, plot a
nondimensional weight as a function of a nondimensional stiffness. The relevant curves are
"Sandwich Plate Truss Core" and "Sandwich Plate Honeycomb Core: H, same as Sandwich Plate
with Truss Core." A sandwich plate with truss core is slightly heavier than a honeycomb plate
with the same thickness and stiffness. However the truss-core plate is close, and offers an
alternative to honeycomb-cores. The truss-core also has the advantage of an open structure that
permits fluid passage.
The traditional method for manufacturing sandwich panels involves producing the core and face
sheets separately, then bonding the structure together. For truss core materials, this involves a
lengthy process. Making the truss core requires three manufacturing processes: injection molding,
manual assembly, and investment casting. Attaching the solid face sheets adds another, distinct,
challenge. Although the best attachment procedure has not been determined, possibilities include
structural adhesive, diffusion bonding, soldering, or welding.
A more direct method might be considered for manufacturing truss core material. The core could
be constructed from heavy-gauge wire, then attached directly to the face sheets using a welding
process. This concept will be explored in the "Manufacturing" section below. Truss core material
produced in this manner will not have truss members on the faces. A picture of the hypothetical
material is shown in Figure V-3. Note that the top and bottom faces are solid, and the truss
members are present only in the core.
-83-
Figure V-1. Truss core material made from Lattice Block and face sheets.
0.016
U.J14
F
Truss Plate
Sandwich Plate
Truss Core
0.012
Sandwich Plate
Honeycomb Core:
Hc same as Sandwich Plate
with Truss Core
0.010
W/pl 0.008
0.006
Sandwich Plate
Honeycomb Core
Hc/1= 0.1
0.004
0.002
-
0.000
0
0.001
0.0005
0.0015
0.002
Figure V-2. Comparison of optimal weights of truss plates, sandwich plates with truss cores, and
sandwich plates with honeycomb cores. (reprinted from Wicks and Hutchinson, 2000)
Figure V-3. Truss core made from wire core and face sheets.
-84-
Manufacturing
A method for manufacturing truss core material is described schematically in Figure V-4. The
core is constructed from metal wire, bent into an alternating, zig-zag pattern. The core is woven
together with bent wire running in two directions. The first set of wires runs along the length of
the material: it is bent and added to the structure incrementally as production moves along. The
second set of bent-wire runs perpendicular to the production direction: each time the material is
advanced a step, one new cross-wire must be inserted.
Roll of
sheet metal
Electrodes
(for spot-welding)
(Finished Material)
Truss core
/4
Solid face
sheets
Bent wire rod
Process direction
Figure V-4. A schematic illustration for producing truss core material.
The face sheets are made from sheet metal, which comes off two large rolls. The sheet metal is
bent up and away from the wire during the assembly processes. The core and face sheets are
attached with spot welding. A spot weld is located at each contact point between the bent-wire
and face sheets. The wire-contacts are offset from each other so that each weld incorporates only
one wire. Also, one of the spot-welding electrodes has to have an indentation to accommodate the
bent, circular wire.
Several prototypes were manufactured to test this process. The first prototype, shown in Figure
V-5, demonstrates that circular rod can be bent and spot-welded to a flat metal sheet. The second
prototype, shown in Figure V-6, demonstrates that two face sheets can be attached to a truss core.
The face sheets appear wavy because large bends were necessary to accommodate for the
electrodes. The third prototype, shown in Figure V-7, Figure V-8, and Figure V-9, was made with
a smaller spot welder, using less severe face-sheet bends, and is more flat. All the prototypes
were manufactured manually. The wire was bent using a hammer and a vice, one bend at a time.
The structure was laid up by hand and aligned by sight. These prototypes are considered a
successful demonstration of feasibility.
-85-
Figure V-5. The first truss core prototype.
Figure V-6. The second truss core prototype.
Figure V-7. The third truss core prototype.
-86-
Figure V-8. The third truss core prototype, side view.
Figure V-9. Third truss core prototype: Note weld offsets.
Figure V-10. Spot welding electrodes (two pairs).
-87-
In order to produce reasonable quantities of the truss core material, the process must be improved
somewhat. The first consideration is making bent wire for the truss core. Bending wire with a
vice and hammer is tedious and error prone. A major improvement would be to bend the wire
with a machine. In a true production environment, the wire could be bent continuously during the
manufacturing process. However the current goal is to produce only a half-dozen specimens, so
the bent wire will be produced with a small, dedicate machine.
The wire bending machine is shown in Figure V-11. It uses two specially designed wheels shown
in Figure V-12 to bend the wire, alternating between upward- and downward-bends. Additional
components include a handle, gears to increase mechanical advantage to 4.5:1, and bearings. The
first prototype had gears driving the top wire-bending-wheel only. It was hoped that the top wheel
would drive the bottom wheel and feed wire. The machine could produce one downward-bend,
but was unable to make upward-bends and feed the wire. By removing the wire and turning it
over, it was possible to produce the sample in Figure V-13. Although the machine was designed
for 1/8" diameter wire, it produced tighter bends using 3/16" wire.
The wire-bending machine was modified to include gearing for the bottom wheel and to better
accommodate 1/8" diameter wire. The changes required moving the wheels closer together,
necessitating a careful analysis of the wheel geometry. The wheels were modified slightly by
adding a chamfer to make the three faces along each tooth, rather than two. Bent-wire produced
with the second prototype is shown in Figure V-14. The changes caused the machine to feed wire
and produce regular, well-aligned bends. However the bend-shape turned out to be different from
that in Figure V-13. The change can be attributed to the chamfer on the bending-wheels: the
wheel to wire contact point moved, which adjusted the bend pattern.
Future work will focus on manufacturing and testing truss core specimens. The bent wire will be
a manually laid-up and spot-welded to sheet metal, forming a truss core beam. The beams will be
tested in compressing and bending to determine their mechanical properties. If the mechanical
properties prove to be close to those expected for an ideal truss core material, it may be
worthwhile to further develop this manufacturing process so it could be used in a production
environment.
-88-
Figure V-11. Photo of wire-bending machine.
5-
5
0
4 --
24-2
-
-2-
-2
0
1
-2
2
-1
0
1
Figure V-12. Set of wire bending wheels before and after adding chamfer.
-89-
2
40 111
1illlilllllllllllllllllllllilllllllllllllllllllllilljlllllI
%%1 00 111,illiiiillilljllllllllllllllllllIIIIIIIIIIIIIIIIIIIIIillllllllI
Figure V-13. Bent wire produced with the wire bending machine, prototype one.
Figure V-14. Bent wire produced with the wire bending machine, prototype two.
-90-
VI. Summary
Three dimensional truss materials are lightweight, high-stiffness materials that can be used in the
core of sandwich panels. Their mechanical properties vary linearly with relative density, which is
the theoretical relationship for closed-cell metal foams. However truss materials actually achieve
this relationship, because of their regular structure, whereas metal foams fall short of the
theoretical prediction.
The mechanical properties of truss materials were characterized for the case of an infinite array of
material, using a periodic unit cell, and for the case of finite structures. The software package
MATLAB was used for linear elastic analysis and to generate structures of arbitrary size. The
software package ABAQUS was used for non-linear analysis, including prediction of yield- and
failure-stress. Results from the analyses included mechanical property predictions for specific
structures and parametric studies elucidating on the effect of a specific variable on the properties.
Lattice Block is an orthotropic truss material. It was shown to be stiffer and stronger than
Alulight, a metal foam of similar relative density. The specimens of Lattice Block which were
actually tested had Young's moduli E.. = 1.15 GPa, Eyy = 4.22 GPa, and Ezz = 1.26 GPa, and
peak stresses cy* = 6.50 MPa, cy* = 18.31 MPa, and az* = 9.01 MPa. The studies here
characterized the normal moduli and strength, the shear moduli and strength, the magnitude of
edge effects, and the defect sensitivity of Lattice Block. Comparison between model results and
experimental results indicates that truss models accurately predict elastic response and the yield
point. The truss models accurately predict failure behavior for tensile, but not buckling, failure
modes.
The octet truss material is another three-dimensional truss material. It was also examined using
models of a periodic unit cell and finite structures. Investigations focused on the Young's moduli,
the shear moduli, and the significance of edge effects. The x-, y-, and z-direction moduli of octet
truss material fall closer together than for Lattice Block, meaning the material behaves in more
isotropic manner. Using the Euler buckling equation, the relationship between the active failure
mode and the member geometry and solid properties was demonstrated.
Truss core material, a sandwich structure with a truss core and solid face sheets, is an ideal
application for three-dimensional truss materials. This structure is almost as light as a
honeycomb-core sandwich panel and has the additional benefit of an open space for fluid
passage. Proposed here is a novel manufacturing technique for truss core material, incorporating
-- 91 -
sheet metal, metal wire, and spot welding. Three prototypes were produced to validate the
feasibility of this approach. Investigation into improving the process has already begun, and
certainly there is an opportunity for refinement and speed improvements.
Several conclusions can be drawn from this work. We have demonstrated that truss-element
modeling captures the elastic and yield behavior of three-dimensional truss materials. However
the failure mode can be either tensile fracture or compressive plastic buckling, the latter of which
is not well described with truss elements. It was shown that truss materials obey the expected
linear relationship between mechanical properties and relative density. Correctly modeling
geometric details such as the inner strut offset was shown to significantly improve the accuracy of
model results. Finally, modeling complete (finite) structures allows us to understand subtle
material characteristics such as edge effects.
Future work might focus on heavily on the truss core material. Such work should begin by
developing a manufacturing process such as the one proposed here. If such a process were
worked out fairly well, it would then be important to characterize the mechanical properties of the
truss core material. Interesting properties include the elastic and failure response in compression,
shear, and bending. Also investigation of the defect sensitivity, especially in regard to
manufacturing-induced defects, would probably be worthwhile. Finally, it might be useful to find
a promising application for the truss core material and do an engineering case study. Possible
applications include an aircraft deck, a car door panel, and a skateboard or snowboard.
-92
-
VII. References
ABAQUS Manual Version 5.8. Hibbitt, Karlsson and Sorenson, Inc. Pawtucket, RI.
Aluminum and Aluminum Alloys. J. R. Davis Ed. ASM Specialty Handbook. Menlo Park: ASM
International, 1996.
Andrews, E., Sanders, W. and Gibson, L.J. (1999) Compressive and Tensile Behaviour of
Aluminum Foams. Mat. Sci. and Eng. A270, 113-124.
ASTM Standard C273-94. Standard Test Method for Shear Properties of Sandwich Core
Materials. American Society for Testing and Materials, 1994.
Bart-Smith, H., Bastawros, A.-F., Mumm, D.R., Evans, A.G., Sypeck, D.J. and Wadley, H.N.G
(1999) Compressive deformation and yielding mechanisms in cellular Al alloys determined using
X-ray tomography and surface strain mapping.
Gere, J. M. and S. Timoshenko. Mechanics of Materials.Boston: PWS-Kent Publishing Co.,
1990.
Gibson L. J. and Ashby M. F. CellularSolids: Structure and Properties,2 "d Ed. Cambridge, UK:
Cambridge University Press, 1997.
MATLAB Manual Version 5. The MathWorks, Inc., Natick, MA.
Nye, J. F. Physical Propertiesof Crystals: Their Representationby Tensors and Matrices.New
York: Oxford University Press, 1960.
POV-Ray rendering engine for Windows, Version 3. 1a. Freeware, available at
http://www.povray.org.
Simone, A E. Gibson, L J. Aluminum Foams Producedby Liquid-State Processes.Acta
Materialia. v 46 n 9 May 22 1998. p 3109-3123
Weaver, W. Jr. and J. Gere. Matrix Analysis of Framed Structures. 3rd Ed. New York: Van
Nostrand Reinhold, 1990.
Wicks, N. and Hutchinson, J. W. Optimal Truss Plates. 2000, unpublished paper.
-93
-
VIII.
Appendix
A. MATLAB script to create the Lattice Block unit cell (unit cell.m)
% unit cell.m
% Create Lattice Block periodic unit cell
% Environment parameter defaults
if -exist('t','var')
t = 0.125;
if -exist('a','var')
a = 1.5;
if -exist('b','var')
b = 1.5;
if -exist('c','var')
c = 0.925;
end
end % length in x-direction
end % length cell in y-direction
end % height in z-direction
% Cross section area
Ax = pi*t^2/4;
% Joint Information
% Joint I x-pos y-pos z-pos
Joints =[
1,
0
0
2,
.5*a
0
3,
a
0
4,
0
.5*b
5,
a
.5*b
6,
0
b
7,
.5*a
b
8,
a
b
9,
0
0
10,
.5*a
0
11,
a
0
12,
.5*a
.5*b
13,
0
b
14,
.5*a
b
15,
a
b
nj = size(Joints,1);
% Member j-joint
Members =
1,
2
2,
2
3,
5
4,
4
5,
4
0;
0;
0;
0;
0;
0;
0;
0;
c;
c;
c;
c;
c;
c;
c;];
k -joint
4
5
7
7
6
6,
1
4
7,
2
7
8,
5
8
9,
3
5
10,
9
12
11,
10
12
12,
11
12
13,
12
13
14,
12
14
15,
12
15
16,
2
12
17,
4
12
18,
5
12
19,
7
12
20,
2
9
21,
2
11
22,
5
11
23,
5
15
24,
7
15
25,
7
13
26,
4
13
27,
4
9
28,
9
13
29,
11
15
m = size(Members,1);
area
Ax;
Ax;
Ax;
Ax;
.5*Ax;
.5*Ax;
Ax;
% Lower surface
.5*Ax;
.5*Ax;
Ax;
Ax;
Ax;
Ax;
Ax;
Ax;
Ax;
Ax;
Ax;
Ax;
.5*Ax;
.5*Ax;
.5*Ax;
.5*Ax;
.5*Ax;
.5*Ax;
.5*Ax;
.5*Ax;
.5*Ax;
.5*Ax;
% Upper surface
% Vertically diagonal
% Upper surface, contd
-94
-
B. MATLAB script to generate finite Lattice Block structures (frame.m)
% *
*E.
*
*
Environment parameters
-- Unit cell dimensions: a, b, c, t
%*
%*
%*
Output variables
--**
% ***
*
Joint information matrix: Joints {#, x, y, z}
Member information matrix: Members {#, j, k, Ax}
**
* *****************
*******
***
% Environment parameter defaults
if -exist('t','var')
t
if -exist('a','var')
a
if -exist('b','var')
b
if -exist('c','var')
c
if -exist('d','var')
d
if -exist('cellx','var')
if -exist('celly','var')
% Generate structure
% Unit cell: Joints
% Joints that appear in each
% Joint# x
y
z
Jec = [
1,
0
0;
%
a
2,
0
b
0;
0
0
3,
c;
%
a
b
c;
4,
a
0
d;
5,
%
6,
0
b
d;
0
0
c-d;
7,
%
a
8,
b
c-d; 1;
% Joints on back edge (.J
be)
Jbe =
0
2*b
1,
0;
%
a
2,
2*b
0;
0
2*b
c;
3,
%
a
2*b
c;
4,
a
2*b
5,
%
d;
6,
0
2*b c-d; ];
% Joints on right edge Jre)
Jre
****
*
*
****************
0.125;
0.75;
0.75;
0.925;
0.10;
end
end
end
end
end
cellx = 3;
celly = 2;
end
end
%
%
%
%
half-length in x-direction
half-length cell in y-direction
height in z-direction
vertical offset for inner struts
% # of cells along x-dir
% # of cells along y-dir
cell (Jec)
bottom
top
bottom, inner strut
top, inner strut
bottom
top
bottom, inner strut
% top, inner strut
=
1,
2,
3,
4,
% Joints
Jfe =
1,
2,
% Joints
Jbc =
1,
2,
3,
% Joints
Jfc =
1,
2*a
b
0;
%
2*a
0
c;
%
2*a
b
d;
%
2*a
0
c-d; ]; %
on front edge (Jfe)
bottom
top
bottom, inner strut
top, inner strut
0
0;
% bottom
0
a
0
c;]; % top
on back-right corner (Jbc)
2*a 2*b
% bottom
0;
2*a 2*b
c;
% top
2*a 2*b c-d; ]; % top, inner strut
on front-right corner (Jfc)
2*a
0
0;];
% bottom
% Create joints
jointsrepxy = cellx*celly*size(Jec,l);
jointsrepx = cellx*
(size(Jbe,1) + size(Jfe,1));
jointsrepy =
celly*size(Jre,l);
joints-norep = size(Jbc,l) + size(Jfc,l);
nj = jointsrepxy + jointsrepx + joints_repy + joints-norep;
Joints = zeros(nj,4);
-95
-
j = 1;
for curx = l:cellx
for cury = 1:celly
k = j
% each cell
+ (size(Jec,l)-l);
Joints(j:k,l) = (j:k)'; % Number and translate
Joints(j:k,2) = Jec(:,2) + (curx-l)*(2*a); % x-coord
Joints(j:k,3) = Jec(:,3) + (cury-l)*(2*b); % y-coord
Joints(j:k,4) = Jec(:,4);
% z-coord
j = j + size(Jec,l);
end
end
for curx = 1:cellx
% back edge
cury = celly;
k = j + (size(Jbe,l)-l);
Joints(j:k,l) = (j:k)';
% Number and translate
Joints(j:k,2) = Jbe(:,2) + (curx-l)*(2*a); % x
Joints(j:k,3) = Jbe(:,3) + (cury-l)*(2*b); % y
Joints(j:k,4) = Jbe(:,4);
% z
j = j + size(Jbe,l);
end
for cury = 1:celly
% right edge
curx = cellx;
k = j + (size(Jre,l)-l);
Joints(j:k,l) = (j:k)';
% Number and translate
Joints(j:k,2) = Jre(:,2) + (curx-l)*(2*a); % x
Joints(j:k,3) = Jre(:,3) + (cury-l)*(2*b); % y
Joints(j:k,4) = Jre(:,4);
% z
j = j + size(Jre,1);
end
for curx = 1:cellx
% front edge
cury = 1;
k = j + (size(Jfe,l)-l);
Joints(j:k,l) = (j:k)';
% Number and translate
Joints(j:k,2) = Jfe(:,2) + (curx-l)*(2*a); % x
Joints(j:k,3) = Jfe(:,3) + (cury-l)*(2*b); % y
Joints(j:k,4) = Jfe(:,4);
% z
j = j + size(Jfe,l);
end
for i=1;
% front-right corner
curx = cellx;
cury = 1;
k = j + (size(Jfc,l)-l);
Joints(j:k,l) = (j:k)';
% Number and translate
Joints(j:k,2) = Jfc(:,2) + (curx-l)*(2*a); % x
Joints(j:k,3) = Jfc(:,3) + (cury-l)*(2*b); % y
Joints(j:k,4) = Jfc(:,4);
% z
j = j + size(Jfc,l);
end
for i=1;
% back-right corner
curx = cellx;
cury = celly;
k = j + (size(Jbc,l)-l);
Joints(j:k,l) = (j:k)';
Joints(j:k,2) = Jbc(:,2)
% Number and translate
+ (curx-l)*(2*a); % x
Joints(j:k,3) = Jbc(:,3) + (cury-l)*(2*b); % y
Joints(j:k,4) = Jbc(:,4);
% z
j = j + size(Jbc);
end
% Unit Cell: Members
% Members that appear in each unit cell (Mec)
% Member | x1
yl
zl
x2
y2
z2
Mec =
1,
2,
3,
4,
5,
6,
7,
8,
[
0
0
0
a
a
a
0
0
b
b
b
0
0
2*b
0
0
0
0
0
0
0
0
c
c
0
a
a
a
2*a
2*a
0
a
3*b
0
2*b
2*b
b
b
2*b
b
0;
0;
0;
0;
0;
0;
c;
c;
% bottom
% top
-96-
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20
% Members
Mbr =
1,
2,
3,
4,
5,
6,
% 7,
% 8,
9,
10,
11,
12,
13,
14,
% 15,
% 16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
% Members
Mfe =
1,
%
2,
%
3,
4,
%
5,
%
6,
;
% Members
% Members
Mre = [
1,
2,
3,
4,
% Members
Mrf = [
1,
% Members
Mrb =
0
2*b
c
a
b
c
a
b
c
a
b
c
0
0
c-d
0
b
d
0
0
c-d
0
b
d
a
0
d
a
b
c-d
a
b
c-d
a
0
d
in back row (Mbr)
O
O
O
b
b
b
a
0
a
0
a
2*b
0
2*b
a
2*b
0
0
2*b
a
b
a
b
a
b
0
2*b
a
2*b
0
b
0
b
0
b
0
a
b
a
2*b
at
2*b
0
at front
0
0
a
a
0
a
0
0
0
0
0
0
0
2*b
0
2*b
2*b
b
b
2*b
2*b
2*b
b
b
2*b
0
2*b
2*b
2*b
b
2*b
0
b
2*b
b
b
2*b
2*b
0
0; % bottom
0;
0;
0;
0;
0;
0;
0;
c; % top
c;
c;
c;
c;
c;
c;
c;
d; % Semi-vertical
c-d;
d;
c-d;
d;
c-d;
d;
d;
c-d;
c-d;
0
a
a
a
2*a
2*a
a
2*a
0
c
c
a
c
a
a
c
c
2*a
c
2*a
c
a
c
2*a
c-d
0
d
0
c-d
a
d
a
c-d
a
a
d
c-d
2*a
c-d
a
d
2*a
d
2*a
eedge (Mfe)
0
0
0
0
c
0
0
d; % Semi-vertical
c-d;
d;
c-d;
c-d;
d;
d;
c-d;];
0
0
0
0
0
a
b
a
3*b
2*a
0
2*a
2*b
0
b
0
2*b
a
0
a
b
a
b
a
2*b
2*a
b
2*a
0
c
c
a
2*a
a
a
2*a
b
0
0
b
0
0
c;
c;
c;
c;
0;
% bottom
0;
0;
c; % top
c;
c;
at left edge: Nothing additional
at right edge:
2*a
b
0
2*a 3*b
0;
2*a
0
c
2*a 2*b
c;
2*a
0
c-d
2*a
b
d;
2*a
b
d
2*a 2*b
c-d;
at right-front corner (Mrf)
2*a
0
0
2*a
b
at right-back corner (Mrb)
% bottom
% top
% Semi-vertical
1;
0;]; % bottom
[
1,
2*a
b
0
2*a 2*b
0;
% bottom
2,
2*a
0
c
2*a 2*b
c;
% top
3,
2*a
0
c-d
2*a
b
d;
% semi-vertical
4,
2*a
b
d
2*a 2*b c-d; ];
% Create members
members-rep-x = cellx*(size(Mfe,l) + size(Mbr,l));
members-repy = (celly-l)*(size(Mre,l));
members-repxy = cellx*(celly-l)*(size(Mec,l));
members-no-rep = size(Mrf,l) + size(Mrb,l);
nm = membersrepx+members-rep-y+membersrep xy+members-norep;
-97
-
Members
m
=
=z
eros(nm,4);
0;
for curx = L:cellx
% each cell, except
if (cell y>1)
for c ury = 1:(celly-1)
fo i = 1:size(Mec,l)
ix = Mec(i,2) + (curx-l)*(2*a);
jy = Mec(i,3) + (cury-1)*(2*b);
jz = Mec(i,4);
kx = Mec(i,5) +
ky = Mec(i,6) +
kz = Mec(i,7);
Members(i+m,l) =
Members(i+m,2) =
Members(i+m,3) =
back row
% j-joint, x- position
% j-joint, y- position
% j-joint, z-position
(curx-l)*(2*a);, % k-joint, x- position
(cury-1)*(2*b); % k-joint, y- position
% k-joint, z- position
i+m;
find-joint(Joints,jx,jy,jz);
find-joint(Joints,kx,ky,kz);
end
m = m + size(Mec,l);
end
end
end
for curx = l:cellx
% back row
cury = celly;
for i =1:size(Mbr,l)
ix = Mbr(i,2) + (curx-l)*(2*a); % j-joint, x- position
jy = Mbr(i,3) + (cury-l)*(2*b); % j-joint, y- position
jz = Mbr(i,4);
% j-joint, z-position
kx = Mbr(i,5) + (curx-l)*(2*a); % k-joint, x- position
ky = Mbr(i,6) + (cury-l)*(2*b); % k-joint, y- position
kz = Mbr(i,7);
% k-joint, z-position
Members(i+m,l) = i+m;
Members(i+m,2) = find-joint(Joints,jx,jy,jz);
Members(i+m,3) = find-joint(Joints,kx,ky,kz);
end
m = m+size(Mbr,l);
end
for curx = 1:cellx
% front edge
cury = 1;
for i = 1:size(Mfe,l)
jx = Mfe(i,2) + (curx-l)*(2*a); j-joint, X- position
jy = Mfe(i,3) + (cury-l)*(2*b);
j-joint, y- position
jz = Mfe(i,4);
j-joint, Z- position
kx = Mfe(i,5) + (curx-l)*(2*a);
k-joint, x- position
ky = Mfe(i,6) + (cury-l)*(2*b);
k-joint, y- position
kz = Mfe(i,7);
k-joint, Z- position
Members(i+m,l) = m+i;
Members(i+m,2) = findjoint(Joi nts,jx,jy,jz);
Members(i+m,3) = find-joint(Joi nts,kx,ky,kz);
end
m = m+size(Mfe,l);
end
% left edge: no additional members
if (celly>1)
for cury = 1:(celly-1)
% right edge
curx = cellx;
for i = 1:size(Mre,l)
jx = Mre(i,2) + (curx-l)*(2*a); % j-joint, x-position
jy = Mre(i,3) + (cury-l)*(2*b); % j-joint, y-position
jz = Mre(i,4);
% j-joint, z-position
kx = Mre(i,5) + (curx-l)*(2*a); % k-joint, x-position
ky = Mre(i,6) + (cury-1)*(2*b); % k-joint, y-position
kz = Mre(i,7);
% k-joint, z-position
Members(i+m,l) = m+i;
Members(i+m,2) = find joint(Joints,jx,jy,jz);
Members(i+m,3) = findjoint(Joints,kx,ky,kz);
end
m = m+size(Mre,l);
end
end
curx = cellx;
% Corners: right-front
cury = 1;
for i = 1:size(Mrf,l)
-98-
ix = Mrf(i,2) +
jy = Mrf(i,3) +
jz = Mrf(i,4);
kx = Mrf(i,5) +
ky = Mrf(i,6) +
kz = Mrf(i,7);
Members(i+m,1) =
Members(i+m,2) =
Members(i+m,3) =
end
(curx-l)*(2*a); % j-joint, x-position
(cury-l)*(2*b); % j-joint, y-position
% j-joint, z-position
(curx-l)*(2*a); % k-joint, x-position
(cury-l)*(2*b); % k-joint, y-position
% k-joint, z-position
m+i;
find-joint(Joints,jx,jy,jz);
find-joint(Joints,kx,ky,kz);
m = m+size(Mrf,1);
curx = cellx; cury = celly; % Corners: right-back
for i = 1:size(Mrb,1)
ix = Mrb(i,2) + (curx-1)*(2*a); % j-joint, x-position
jy = Mrb(i,3) + (cury-1)*(2*b); % j-joint, y-position
jz = Mrb(i,4);
% j-joint, z-position
kx = Mrb(i,5) + (curx-1)*(2*a); % k-joint, x-position
ky = Mrb(i,6) + (cury-l)*(2*b); % k-joint, y-position
kz = Mrb(i,7);
% k-joint, z-position
Members(i+m,1) = m+i;
Members(i+m,2) = findjoint(Joints,jx,jy,jz);
Members(i+m,3) = find-joint(Joints,kx,ky,kz);
end
m = m+size(Mrb,1);
% Check if members are the same
for i=l:m
for j = i:m
if (Members(i,2)==Members(j,2))&(Members(i,3)==Members(j,3) )&(i-=j)
fprintf(1,'Members %d and %d are the same\n',i,j);
elseif (Members(i,2)==Members(j,3))&(Members(i,3)==Members(j,2) )&(i-=j)
fprintf(1,'Members %d and %d are the same\n',i,j);
end
end
end
% Add member areas
Ax = pi*t^2/4;
Members(:,4) = Ax;
% Change variable names
nj = size(Joints,l); m = size(Members,l);
JI = zeros(nj,7);
MI = Members;
JI(:,1:4) = Joints;
-99-
C. MATLAB truss solver (solvetruss_link.m)
%
SOLVETRUSSLINK.M
*
% * Solve linear elastic truss problem
% * with improved support for linked joints
a
*
*
*
*
Environment parameters
*
----
Young's Modulus: E
Joint information matrix: JI {#, x, y, z, xc, yc, zc}
Member information matrix: MI {#, j, k, Ax}
--
Restrained joint displacements: RJD {#, xd, yd, zd}
Linked joint information matrix: LJI {#, #px, #py, #pz}
Actions applied at joints: AAJ {#, ax, ay, az}
---
Output variables
-Member information for stiffness: MIS {#,
-Global stiffness matrix: Sj {3nj x 3nj}
-Displacements at each joint: Dj
---
L, Cx, Cy, Cz}
Actions at each joint: Aj
Member end actions: Am4
% Environment parameters: check to make sure they exist
if -exist('JI','var')
disp('ERROR: "JI" not defined'); end
if -exist('MI','var') disp('ERROR: "MI" not defined'); end
if -exist('RJD','var') disp('ERROR: "RJD" not defined'); end
if -exist('LJI','var') disp('ERROR: "LJI" not defined'); end
if -exist('AAJ','var') disp('ERROR:
"AAJ" not defined');
end
nj = size(JI,1);
m = size(MI,l);
% Setup and solve the truss problem
% Member information for stiffness: MIS
% col. 1) Member Number
% col. 2) Length
% col. 3) Direction cosine Cx
% col. 4) Direction cosine Cy
% col. 5) Direction cosine Cz
MIS = zeros(m,5);
for i = 1:m
jx = JI(MI(i,2),2);
kx = JI(MI(i,3),2);
% joint
jy = JI(MI(i,2),3);
ky = JI(MI(i,3),3);
jz = JI(MI(i,2),4);
kz = JI(MI(i,3),4);
dx = kx-jx;
dy = ky-jy;
dz = kz-jz;
L = sqrt(dx^ 2 + dyA2 + dzA2);
Cx = dx/L;
Cy = dy/L;
Cz = dz/L;
MIS(i,1) = i;
% Col.
MIS(i,2) = L;
% Col.
MIS(i,3) = Cx; MIS(i,4) = Cy; MIS(i,5) = Cz; % Col.
end
% Stiffness matrix Sj
Sj = zeros(3*nj);
for i = 1:m
A = MI(i,4);
dat a
1
2
3-5
% Member prop erties
L = MIS(i,2);
Cx=MIS(i,3); Cy=MIS(i,4); Cz=MIS(i,5);
Smjj = (E*A/L)*[
Cz*Cx;
Cy*Cx
CxA2
Cx*Cy
CyA2
Cx*Cz
Cy*Cz
Smjk = -1*Smjj;
Cz*Cy;
Cz^2;
% Member stif fness
1;
Smkj = -1*Smjj;
Smkk = Smjj;
-- 100-
j
MI(i, 2);
j = 3*j-2;
k1
j2
3*j-1;
k2
j3
3*j;
k3
Sj (jl:j3,jl:j3) =
Sj(j 1:j3, kl:k3) =
Sj(kl:k3,jl:j3) =
Sj(kl:k3,kl:k3) =
% Joint numbers
k = MI(i,3);
= 3*k-2;
= 3*k-1;
= 3*k;
Sj (jl:j3,jl:j3)
Sj(jl:j3,kl:k3)
Sj(kl:k3,jl:j3)
Sj(kl:k3,kl:k3)
+
+
+
+
Smjj; % Joint stiffness
Smj k;
Smkj;
Smkk;
end
% Joint information rearrangement: JIR
% col. 1) Joint Number
% col. 2) Indexes for all possible displacements
% col. 3) Joint Restraint List
% col. 4) Cumulative restraint list
% col. 5) Cumulative linked list
% col. 6) Revised displacement indexes
JIR = zeros(3*nj,6);
for j = l:nj
j1 = 3*j-2;
j2 = 3*j-1;
JIR(jl,1) = j;
JIR(j2,1) = j;
JIR(j3,1) = j;
JIR(jl,2) = j1;
j3 = 3*j;
% Col.1 - joint numb er
% Col.2 - displacement index
JIR(j2,2) = j2;
JIR(j3,2) = j3;
JIR(jl,3) = JI(j,5); % Col.3 - free/rest/link
JIR(j2,3) = JI(j,6); %
JIR(j3,3) = JI(j,7); %
for ji= [jl,j2,j3]
frl = JIR(ji,3);
if (ji==l)
if
% Cumulative lists
% first line
% jl is restrained
% j1 is linked
(frl==l) JIR(ji,4)=1;
elseif (frl==-l) JIR(ji,5)=l;
end
else
if
x
y
z
(frl==l) JIR(ji,4)=JIR(ji-1,4)+1;
% other lines
% ji is restrained
else JIR(ji,4)=JIR(ji-1,4);
end
if (frl==-l) JIR(ji,5)=JIR(ji-1,5)+1; % ji is linked
else JIR(ji,5) = JIR(ji-1,5);
end
end
end
end
nres = JIR(3*nj,4);
nlnk = JIR(3*nj,5);
ndof = 3*nj - (nres+nlnk);
% New displacement indices
for i = 1:3*nj
oldindex=JIR(i,2); Cr=JIR(i,4); Cl=JIR(i,5);
newindex=oldindex-(Cr+Cl);
if (JIR(i,3)==O)
elseif(JIR(i,3)==l) newindex=Cr+ndof;
elseif(JIR(i,3)==-l) newindex=Cl+ndof+nres;
end
JIR(i,6) = new-index;
end
% Rearrange stiffness matrix
Sjratemp = zeros(3*nj);
Sjra = zeros(3*nj);
for i=1:3*nj
% rows
oldindex = i;
newindex = JIR(oldjindex,6);
Sjratemp(newjindex,:) = Sj(oldjindex,:);
end
for i=1:3*nj
% columns
oldindex = i;
new_index = JIR(old-index,6);
Sjra (:,new-index) = Sjra-temp(: ,old-index);
end
-101-
% free
% restrained
% linked
% Partition stiffness matrix
fmin = 1;
fmax = ndof;
rmin = ndof+i;
rmax = ndof+nres;
lmin = ndof+nres+i; imax = 3*nj;
Sff = Sjra(fmin:fmax,fmin:fmax);
Sfr = Sjra(fmin:fmax,rmin:rmax);
Sf1 = Sjra(fmin:fmax,imin:lmax);
Srf = Sjra(rmin:rmax,fmin:fmax);
Srr = Sjra(rmin:rmax,rmin:rmax);
Srl = Sjra(rmin:rmax,imin:lmax);
Slf = Sjra(lmin:lmax,fmin:fmax);
Slr = Sjra(lmin:lmax,rmin:rmax);
Sii = Sjra(lmin:lmax,imin:lmax);
% Link Matrix: LM
LM = zeros(nlnk,3*nj);
for j=:nj
ji = 3*j-2;
j2 = 3*j-1;
j3 = 3*j;
if (JIR(jl,3)==-i)
% x-dir
lrow = JIR(ji,5);
parentjoint = LJI(j,2);
parent_.disp-old = parent_joint*3-2;
parentdisp-new = JIR(parent_disp_old, 6);
lcol = parent-dispnew;
LM(lrow,lcol) = 1;
end
if (JIR(j2,3)==-i)
% y-dir
lrow = JIR(j2,5);
parent_joint = LJI(j,3);
parent_.disp-old = parentjoint*3-1;
parentdispnew = JIR(parentdisp_old,6);
lcol = parent.disp-new;
LM(lrow,lcol) = 1;
end
if
(JIR(j3,3)==-i)
% z-dir
= JIR(j3,5);
parentjoint = LJI(j,4);
lrow
parent-disp_old = parentjoint*3;
parent-dispnew = JIR(parentdisp_old,6);
lcol = parent_dispnew;
LM(lrow,lcol) = 1;
end
end
Lf = LM(:,fmin:fmax);
Lr = LM(:,rmin:rmax);
Ll = LM(:,lmin:lmax);
% Actions applied at joints
Aj = zeros(3*nj,i);
for j=l:nj
ji = 3*j-2;
j2 = 3*j-1;
j3 = 3*j;
Aj(jl) = AAJ(j,2);
Aj(j2) = AAJ(j,3);
Aj(j3)
= AAJ(j,4);
end
% Displacements at restrained joints
Dr = zeros(nres,i);
for j=:nj
ji = 3*j-2; j2 = 3*j-1;
j3 = 3*j;
if (JIR(ji,3)==i)
% x-dir
j1inew = JIR(jl,6);
Dr(jlnew-ndof) = RJD(j,2);
end
if
(JIR(j2,3)==)
% y-dir
j2_new = JIR(j2,6);
Dr(j2_new-ndof) = RJD(j,3);
-102-
end
if (JIR(j3,3)==1)
j3_new = JIR(j3,6);
Dr(j3_new-ndof) = RJD(j,4);
end
% z-dir
end
% Combined load vector
Ac = Aj;
% Rearrange Ac
Acra = zeros(3*nj,1);
for i=1:3*nj
old_index = i;
new_index = JIR(old-index,6);
Acra(new_index) = Ac(old_index);
end
% Loads (combined) associated with displacements
Afc = Acra(fmin:fmax);
Arc = Acra(rmin:rmax);
Alc = Acra(lmin:lmax);
%
%
%
%
%
%
%
Solve for displacements
if (rank(Sff+Sfl*Lf)<ndof)
disp('Singular stiffness matrix, displacements set to zero');
Df = zeros(ndof,l);
else
Df = inv(Sff+Sfl*Lf)*(Afc-Sfr*Dr-Sfl*Lr*Dr);
end
% Solve for displacements
A_soln = Sff + Lf'*Slf + Sfl*Lf + Lf'*Sll*Lf;
b_soln = Afc + Lf'*Alc - (Sfr + Lf'*Slr + Sfl*Lr + Lf'*Sll*Lr)*Dr;
x_soln = inv(Asoln)*bsoln;
Df = x-soln;
Dl =
[Lf Lr]*[Df;
Dr];
% Joint displacements using old joint numbers
Dj = zeros(3*nj,l);
for i=1:3*nj
if (JIR(i,3)==1)
Dj(i) = Dr(JIR(i,4)); end
if (JIR(i,3)==0)
Dj(i) = Df(JIR(i,6)); end
if (JIR(i,3)==-1) Dj(i) = Dl(JIR(i,5)); end
end
% restrained
% free
% linked
% Reactions added to Aj
Af = -1*Afc + Sff*Df + Sfr*Dr + Sfl*Dl;
Ar = -1*Arc + Srf*Df + Srr*Dr + Srl*Dl;
Al =
Slf*Df + Slr*Dr + Sll*Dl;
for i=1:3*nj
oldindex = i;
if (JIR(i,3)==1)
restindex = JIR(i,4);
Aj(oldjindex) = Ar(rest-index);
elseif (JIR(i,3)==O)
freeindex = JIR(i,6);
Aj(oldjindex) = Af(free index);
elseif (JIR(i,3)==-1)
% map reactions at linked nodes back to parents
linkindex = JIR(i,5);
jointnum = ceil(i/3);
jointdir = i - (joint_num-l)*3;
parent-num = LJI(jointnum,joint_dir+l);
parentindex = 3*(parentnum-1) + jointIdir;
Aj(parent_index) = Aj(parent-index)+Al(linkjindex);
end
end
% Member end actions
-103-
% Tensile force on members: Am4
Am4 = zeros(m, 1);
for i=1:m
A = MI(i,4);
L = MIS(i,2);
Cx=MIS(i,3); Cy=MIS(i,4); Cz=MIS(i,5);
j
MI(i,2);
k = MI(i,3);
1= 3*j-2;
k1 = 3*k-2;
j2
3*j-1;
k2 = 3*k-1;
j3
3*j;
k3 = 3*k;
dx = Dj(jl) - Dj(kl);
dy = Dj(j2)
% Member properties
% Joint numbers
% displacements
- Dj(k2);
dz = Dj(j3) - Dj(k3);
Am4(i) = -1*(E*A/L)*(dx*Cx + dy*Cy + dz*Cz);
End
-104-
D. ABAQUS input file for a three cell by two cell Lattice Block structure
*HEADING
cellx=3, celly=2, d=0.100000
*PREPRINT, ECHO=NO, MODEL=NO, HISTORY=NO
**
**Nodal coordinates
*NODE
001,
002,
003,
004,
005,
006,
007,
008,
009,
010,
011,
012,
013,
014,
015,
016,
017,
018,
019,
020,
021,
022,
023,
0.75,
0,
0,
0.75,
0.75,
0,
0,
0.75,
0.75,
0,
0,
0.75,
0.75,
0,
0,
0.75,
2.25,
1.5,
1.5,
2.25,
2.25,
1.5,
1.5,
024,
2.25,
025,
2.25,
026,
1.5,
027,
028,
029,
030,
031,
032,
033,
034,
035,
036,
037,
038,
039,
040,
1.5,
2.25,
2.25,
1.5,
1.5,
2.25,
3.75,
3,
3,
3.75,
3.75,
3,
3,
3.75,
041,
3.75,
042,
043,
044,
045,
046,
047,
048,
049,
050,
051,
052,
053,
054,
055,
056,
057,
058,
059,
060,
3,
3,
3.75,
3.75,
3,
3,
3.75,
0,
0.75,
0,
0.75,
0.75,
0,
1.5,
2.25,
1.5,
2.25,
2.25,
1.5,
0,
0.75,
0,
0.75,
0,
0.75,
0,
0.75,
1.5,
2.25,
1.5,
2.25,
1.5,
2.25,
1.5,
2.25,
0,
0.75,
0,
0.75,
0,
0.75,
0,
0.75,
1.5,
2.25,
1.5,
2.25,
1.5,
2.25,
1.5,
2.25,
0,
0.75,
0,
0.75,
0,
0.75,
0,
0.75,
1.5,
2.25,
1.5,
2.25,
1.5,
2.25,
1.5,
2.25,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
0
0
0.925
0.925
0.1
0.1
0.825
0.825
0
0
0.925
0.925
0.1
0.1
0.825
0.825
0
0
0.925
0.925
0.1
0.1
0.825
0.825
0
0
0.925
0.925
0.1
0.1
0.825
0.825
0
0
0.925
0.925
0.1
0.1
0.825
0.825
0
0
0.925
0.925
0.1
0.1
0.825
0.825
0
0
0.925
0.925
0.1
0.825
0
0
0.925
0.925
0.1
0.825
-105-
061,
062,
063,
064,
065,
066,
067,
068,
069,
070,
071,
072,
073,
074,
075,
076,
077,
078,
079,
080,
081,
082,
083,
084,
**
3,
3.75,
3,
3.75,
3.75,
3,
4.5,
4.5,
4.5,
4.5,
4.5,
4.5,
4.5,
4.5,
0,
0.75,
1.5,
2.25,
3,
3.75,
4.5,
4.5,
4.5,
4.5,
3,
3,
3,
3,
3,
3,
0.75,
0,
0.75,
0,
2.25,
1.5,
2.25,
1.5,
0,
0,
0,
0,
0,
0,
0,
3,
3,
3,
0
0
0.925
0.925
0.1
0.825
0
0.925
0.1
0.825
0
0.925
0.1
0.825
0
0.925
0
0.925
0
0.925
0
0
0.925
0.825
Element definitions
**
*ELEMENT, ELSET=EL, TYPE=T3D2
001,
2,
10
002,
2,
1
003,
2,
9
004,
1,
9
005,
1,
18
006,
9,
18
007,
3,
11
008,
3,
4
009,
11,
4
010,
4,
12
011,
4,
19
4,
27
012,
013,
7,
6
014,
6,
15
015,
7,
5
016,
6,
8
017,
5,
8
018,
8,
13
019,
8,
22
020,
5,
23
021,
18,
26
022,
18,
17
023,
18,
25
024,
17,
25
025,
17,
34
026,
25,
34
027,
19,
27
028,
19,
20
029,
27,
20
030,
20,
28
031,
20,
35
032,
20,
43
033,
23,
22
034,
22,
31
035,
23,
21
036,
22,
24
037,
21,
24
038,
24,
29
039,
24,
38
040,
21,
39
041,
34,
42
042,
34,
33
043,
34,
41
-106-
044,
045,
046,
047,
048,
049,
050,
051,
052,
053,
054,
055,
056,
057,
058,
059,
060,
061,
062,
063,
064,
065,
066,
067,
068,
069,
070,
071,
072,
073,
074,
075,
076,
077,
078,
079,
080,
081,
082,
083,
084,
085,
086,
087,
088,
089,
090,
091,
092,
093,
094,
095,
096,
097,
098,
099,
100,
101,
102,
103,
104,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
33,
33,
41,
35,
35,
43,
36,
36,
36,
39,
38,
39,
38,
37,
40,
40,
37,
10,
10,
10,
9,
9,
50,
11,
11,
51,
12,
12,
12,
15,
14,
15,
14,
16,
13,
16,
54,
53,
26,
26,
26,
25,
25,
56,
27,
27,
57,
28,
28,
28,
31,
30,
31,
30,
32,
29,
32,
60,
59,
29,
42,
42,
42,
41,
41,
62,
43,
43,
63,
44,
44,
41
67
67
43
36
36
44
68
72
38
47
37
40
40
45
69
70
49
9
50
50
26
26
51
12
12
52
27
57
14
54
13
16
53
16
30
53
60
55
25
56
56
42
42
57
28
28
58
43
63
30
60
29
32
59
32
46
59
66
47
61
41
62
62
71
71
63
44
44
64
72
-107-
115,
116,
117,
118,
119,
120,
121,
122,
123,
124,
125,
126,
127,
128,
129,
130,
131,
132,
133,
134,
135,
136,
137,
138,
139,
140,
**
44,
47,
46,
47,
46,
48,
45,
48,
66,
65,
45,
75,
76,
77,
78,
79,
80,
67,
68,
70,
69,
81,
71,
72,
74,
73,
83
46
66
45
48
65
48
73
65
84
74
2
4
18
20
34
36
71
72
69
74
67
82
83
73
84
*Define cross
section
*SOLID SECTION, MATERIAL=ALUM, ELSET=EL
0.0122718,
*MATERIAL, NAME=ALUM
*ELASTIC
le+007, 0.3
*PLASTIC, HARDENING=ISOTROPIC
26000,
0
26054, 0.0001
28971, 0.0005
31157, 0.0012
32766, 0.0021
34041, 0.0032
34797, 0.0044
35395, 0.0059
35973, 0.0073
36341, 0.0089
1000,
0.009
100, 0.0091
10, 0.0092
1, 0.0093
*NSET, NSET=TOP
004, 011, 012, 019, 020, 027,
064, 068, 072, 076, 078, 080,
*NSET, NSET=BOT
002, 009, 010, 017, 018, 025,
062, 067, 071, 075, 077, 079,
*NSET, NSET=MSTR
003, 001
*NSET, NSET=TOPMS
003
*MPC
PIN, 005, 001
PIN, 006, 002
PIN, 007, 003
PIN, 008, 004
PIN, 013, 009
PIN, 014, 010
PIN, 015, 011
PIN, 016, 012
PIN, 021, 017
PIN, 022, 018
PIN, 023, 019
028, 035, 036, 043, 044, 051, 052, 057, 058, 063
083
026, 033, 034, 041, 042, 049, 050, 055, 056, 061
081, 082
-108-
PIN, 024, 020
PIN, 029, 025
PIN, 030, 026
PIN, 031, 027
PIN, 032, 028
PIN, 037, 033
PIN, 038, 034
PIN, 039, 035
PIN, 040, 036
PIN, 045, 041
PIN, 046, 042
PIN, 047, 043
PIN, 048, 044
PIN, 053, 050
PIN, 054, 051
PIN, 059, 056
PIN, 060, 057
PIN, 065, 062
PIN, 066, 063
PIN, 069, 067
PIN, 070, 068
PIN, 073, 071
PIN, 074, 072
PIN, 084, 083
*EQUATION
2
TOP, 3, 1.0, 003,
2
BOT, 3, 1.0, 001,
2
049, 1, 1.0, 050,
2
052, 1, 1.0, 012,
2
055, 1, 1.0, 050,
2
058, 1, 1.0, 028,
2
061, 1, 1.0, 056,
2
064, 1, 1.0, 044,
2
075, 1, 1.0, 001,
2
076, 1, 1.0, 004,
2
077, 1, 1.0, 001,
2
078, 1, 1.0, 020,
2
079, 1, 1.0, 017,
2
080, 1, 1.0, 036,
2
081, 1, 1.0, 033,
2
082, 1, 1.0, 062,
**
3, -1.0
3, -1.0
1, -1.0
1, -1.0
1, -1.0
1, -1.0
1, -1.0
1, -1.0
1, -1.0
1, -1.0
1, -1.0
1, -1.0
1, -1.0
1, -1.0
1, -1.0
1, -1.0
Loading step
**
*STEP, NLGEOM = YES, INC=50
*STATIC, STABILIZE
0.01, 1, le-6, 0.01
*BOUNDARY
001, 1,3, 0
002, 1,,
0
003, 3,, -0.1
*NODE FILE, NSET=MSTR
U, RF
*EL PRINT, FREQUENCY=0
*NODE PRINT, FREQUENCY=0
-109-
*EL FILE, FREQUENCY=Q
**RESTART, WRITE
*END STEP
-110-
E. MATLAB script to convert MATLAB models to ABAQUS input files
(abaqus.m)
% abaqus.m
% Translate model to abaqus input file
%
-Filename and description: ab job
%--
%
Model description:
JI, MI, LJI, RJD
Output: file <ab-job>.inp
if -exist('mat-fname','var') mat-fname='matprop.txt'; end
if -exist('ab-job','var')
ab_job = 'default'; end
filename = [output-path '\' abjob '.inp'];
% Open output file
fp = fopen(filename,'w');
fprintf(fp,'*HEADING\n');
% Header
fprintf(fp,'cellx=%d, celly=%d, d=%f\n',cellx,celly,d);
fprintf(fp,'**\n*PREPRINT, ECHO=NO, MODEL=NO, HISTORY=NO\n**\n');
fprintf(fp,'**Nodal coordinates\n**\n*NODE\n');
fprintf(fp,'%03d,
% 8.4g, % 8.4g, % 8.4g\n',JI(:,1:4)');
fprintf(fp,'**\n** Element definitions\n**\n');
Elements
fprintf(fp,'*ELEMENT, ELSET=EL, TYPE=T3D2\n');
fprintf(fp,'%03d,
%3d, %3d\n',MI(:,1:3)');
fprintf(fp,'**\n** Define cross section\n**\n');
fprintf(fp,'*SOLID SECTION, MATERIAL=ALUM, ELSET=EL\n');
fprintf(fp,'%g,\n',Ax);
fprintf(fp,'*MATERIAL, NAME=ALUM\n');
% Material properties
fpm = fopen(matjfname,'r');
for i=1:2 fgetl(fpm); end
elas = fscanf(fpm,'E = %f, v = %f\n',2);
fprintf(fp,'*ELASTIC\n%g, %g\n',elas);
fgetl(fpm);
plas = fscanf(fpm,'%f',[2, inf]);
fprintf(fp,'*PLASTIC, HARDENING=ISOTROPIC\n');
fprintf(fp,'%6g, %6g\n',plas);
fclose(fpm);
% Nodes
%
fprintf(fp,'*NSET, NSET=TOP\n');
% Node Sets for Constraints
i = 0;
% Top face
for j = 1:size(JI,l)
if (JI(j,4) == c)
switch i
case 0,
top-master = j; i = i+1;
case 1,
fprintf(fp,'%03d',j); i = i+l;
case 16,
fprintf(fp,', %03d\n',j); i = 1;
otherwise, fprintf(fp,', %03d',j); i = i+1;
end
end
end
fprintf(fp,'\n');
fprintf(fp,'*NSET, NSET=BOT\n');
% Node Sets for Constraints
i = 0;
% Bottom face
for j = 1:size(JI,l)
if (JI(j,4) == 0)
switch i
case 0,
bot-master = j; i = i+1;
case 1,
fprintf(fp,'%03d',j); i = i+1;
case 16,
fprintf(fp,', %03d\n',j); i = 1;
otherwise, fprintf(fp,', %03d',j); i = i+l;
-111-
end
end
end
fprintf(fp,'\n');
fprintf(fp,'*NSET, NSET=MSTR\n');
fprintf(fp,'%03d, %03d\n',top-master,botmaster);
fprintf(fp,'*NSET, NSET=TOPMS\n');
fprintf(fp,' %03d\n',topmaster);
fprintf(fp,'*MPC\n');
% Inner strut nodes
for j = 1:size(JI,1)
if (JI(j,5:7) == [-1 -1 -1])
fprintf(fp,'PIN, %03d, %03d\n',j,LJI(j,2));
end
end
fprintf(fp,'*EQUATION \n');
% Constrain these in z-dir
fprintf(fp,'2\nTOP, 3, 1.0, %03d, 3, -1.0\n',topmaster);
fprintf(fp,'2\nBOT, 3, 1.0, %03d, 3, -1.0\n',botmaster);
for j = 1:size(JI,1)
% Other linked nodes
for i = 1:2
ci =
c2 =
(JI(j,i+4) == -1);
(sum(JI(j,5:7)) -=
-3);
if ( ci & c2 )
fprintf(fp,'2\n%03d, %d, 1.0, %03d, %d, -1.0\n',
j, i, LJI(j,i+1), i);
end
end
end
fprintf(fp,'**\n** Loading step\n**\n');
% Loading
fprintf(fp,'*STEP, NLGEOM = YES, INC=50\n');
fprintf(fp,'*STATIC, STABILIZE\n');
fprintf(fp,'
0.01, 1, le-6, 0.01\n');
fprintf(fp, '*BOUNDARY\n');
fprintf(fp,'%03d, 1,3, 0\n',botmaster);
fprintf(fp,'%03d, 1,,
0\n',find-joint(JI,0,b,0));
fprintf(fp,'%03d, 3,, %g\n',topmaster,U);
fprintf(fp,'*NODE FILE, NSET=MSTR\n U, RF\n');
fprintf(fp,'*EL PRINT, FREQUENCY=0\n');
fprintf(fp,'*NODE PRINT, FREQUENCY=0\n');
fprintf(fp,'*EL FILE, FREQUENCY=0\n');
fprintf(fp,'**RESTART, WRITE\n');
fprintf(fp,'*END STEP\n');
fclose(fp);
-112-
F. Parameterized ABAQUS input file for use with ABAQUS/Design
*HEADING
Unit cell, periodic, with inner strut offset
*PREPRINT, ECHO=NO, CONTACT=NO, MODEL=NO, HISTORY=NO
*PARAMETER
a
b
c
d
t
u
= 1.5
= 1.5
= 0.925
= 0.093
= 0.125
= -0.3
#
#
#
#
#
#
x-dir dimension
y-dir dimension
z-dir dimension
inner strut offset
Member thickness
Applied displacement
ah = a/2
bh = b/2
cl = c - d
area = 3.14159*t*t/4
areah = area/2;
*NODE
01,
0,
0,
02,
<ah>,
0,
03,
<a>,
0,
04,
0, <bh>,
05,
<a>, <bh>,
06,
0, <b>,
07, <ah>, <b>,
08,
<a>, <b>,
09, <ah>,
0,
10,
0, <bh>,
0
0
0
0
0
0
0
0
<d>
<d>
11,
12,
<d>
<d>
13,
14,
<ah>, <b>,
<a>, <bh>,
0,
0, <cl>
<ah>, <bh>, <cl>
15,
16,
<a>,
0,
0, <cl>
<b>, <cl>
17,
<a>,
<b>, <cl>
18,
19,
20,
0,
<ah>,
<a>,
0,
0,
0,
<c>
<c>
<c>
21,
<ah>, <bh>,
<c>
22,
0,
<b>,
<c>
23,
<ah>,
<b>,
<c>
24,
<a>, <b>,
<c>
*ELEMENT, TYPE=T3D2, ELSET=SIDE
01,
02,
03,
04,
05,
06,
07,
08,
01,
04,
03,
05,
10,
09,
09,
12,
04
06
05
08
13
13
15
15
09,
10,
12,
11,
17
17
11,
12,
13,
14,
11,
10,
18,
20,
16
16
22
24
*ELEMENT, TYPE=T3D2, ELSET=INNER
15,
16,
17,
18,
19,
20,
21,
22,
02,
04,
02,
02,
05,
10,
09,
12,
04
07
07
05
07
14
14
14
23,
24,
11,
18,
14
21
25,
26,
19,
20,
21
21
--113--
27,
28,
29,
21,
21,
21,
22
23
24
*SOLID SECTION, ELSET=SIDE, MATERIAL=ALUM
<areah>
*SOLID SECTION, ELSET=INNER, MATERIAL=ALUM
<area>
Define contact
**
**
*CONTACT NODE SET, NAME=C_0
04, 18, 22
*CONTACT NODE SET, NAME=C_1
5, 20, 24
** Define rigid surfaces for contact loading
*PARAMETER
= 0
x0
x1
yO
yl
zO
=
=
=
=
a
-.2*b
1.2*b
-.2*c
z1 = 1.2*c
*NODE
100, <xO>,
101, <xl>,
<yO>, <zO>
<yO>, <zO>
102,
103,
<xl>,
<x0>,
<yl>, <zO>
<yl>, <zO>
104,
105,
<xO>,
<xl>,
<yO>, <zi>
<yO>, <zi>
106,
<xl>, <yl>, <zi>
107,
<xO>, <yl>, <zi>
*NSET, NSET=PLT_0
100
*NSET, NSET=PLT_1
106
*ELEMENT, ELSET=PLT_0, TYPE=R3D4
200, 100, 103, 107, 104
*RIGID BODY, ELSET=PLT_0, REFNODE=100
*ELEMENT, ELSET=PLT_1, TYPE=R3D4
201, 101, 102, 106, 105
*RIGID BODY, ELSET=PLT_1, REFNODE=106
*SURFACE DEFINITION, NAME=PLT_0_S
PLT_0, SPOS
*SURFACE DEFINITION, NAME=PLT_1_S
PLT_1, SNEG
*SURFACE INTERACTION, NAME=HARD_CON
1.0
*CONTACT PAIR, INTERACTION=HARD_CON
C_0,
PLT_0_S
*CONTACT PAIR, INTERACTION=HARDCON
C_1, PLT_1_S
**
Material property: Aluminum
*MATERIAL,
*ELASTIC
NAME=ALUM
10E6, 0.3
*PLASTIC, HARDENING=ISOTROPIC
26000, 0
28971, 0.0005
31157, 0.0012
32766, 0.0021
34041, 0.0032
34797, 0.0044
35395, 0.0059
35973, 0.0073
36341, 0.0089
36000, 0.0092
35000, 0.0095
32000, 0.0099
1000, 0.0133
-- 114-
10, 0.0136
1, 0.0138
1, 0.0139
*MPC
PIN, 09, 02
PIN,
12,
05
PIN,
PIN,
11,
10,
07
04
PIN,
PIN,
PIN,
PIN,
14,
13,
15,
17,
19
18
20
24
PIN, 16,
22
*EQUATION
2
01,
2
01,
2
01,
2
03,
2
03,
2
03,
2
06,
2
06,
2
06,
2
08,
1, 1.0,
04, 1, -1.0
2, 1.0,
02, 2, -1.0
3, 1.0,
04, 3, -1.0
1, 1.0,
05, 1, -1.0
2, 1.0,
02, 2, -1.0
3, 1.0,
05, 3, -1.0
1, 1.0,
04, 1, -1.0
2, 1.0,
07, 2, -1.0
3, 1.0,
04, 3, -1.0
1, 1.0,
05, 1, -1.0
08, 2, 1.0,
2
08, 3, 1.0,
2
07, 2, -1.0
19,
21, 1, -1.0
**
node 01
**
node 03
**
node 06
**
node 08
**
node 19
**
.lode 23
2
05, 3, -1.0
1, 1.0,
2
19, 2, 1.0,
2
19, 3, 1.0,
18, 2, -1.0
21, 3, -1.0
2
23, 1, 1.0,
2
23, 2, 1.0,
2
23, 3, 1.0,
21, 1, -1.0
22, 2, -1.0
21, 3, -1.0
**
**
Loading
**
*STEP, NLGEOM=YES, INC=50
*STATIC, STABILIZE
0.01, 1, 1E-6, .01
*BOUNDARY
21,
3,,
0
PLT_0, 1, 6, 0
PLT_1,
1,,
<u>
PLT_1, 2, 6, 0
*NODE PRINT, FREQUENCY=0
*EL PRINT, FREQUENCY=0
*NODE FILE
U, RF
*PRINT, FREQUENCY=0, CONTACT=NO
**RESTART, WRITE
*END STEP
--115 -
G. Sample ABAQUS/Post input script
results, file=def_1
read curve, var=u3, name=disp, node=3
read curve, var=rf3, name=forc, node=3
define curve, operation=combine, name=f_d
disp, -1
forc, -1
set, xy print file=def_l.txt
print curve
f-d
results, file=def_2
read curve, var=u3, name=disp, node=3
read curve, var=rf3, name=forc, node=3
define curve, operation=combine, name=f_d
overwrite
disp, -1
forc, -1
set, xy print file=def_2.txt
print curve
f-d
results, file=def_3
read curve, var=u3, name=disp, node=3
read curve, var=rf3, name=forc, node=3
define curve, operation=combine, name=f_d
overwrite
disp, -1
forc, -1
set, xy print file=def_3.txt
print curve
f-d
results, file=def_4
read curve, var=u3, name=disp, node=3
read curve, var=rf3, name=forc, node=3
define curve, operation=combine, name=f_d
overwrite
disp, -1
forc, -1
set, xy print file=def_4.txt
print curve
f-d
end
-- 116--
H. MATLAB script to generate ABAQUS/Post input script (post-script.m)
% postscript.m
% Write script to run ABAQUS/post
fp =
fopen([output-path '\'
'post.sct'],'w');
for numremove = minremove:minremove+steps
ab-job = ['def_' num2str(num-remove)];
fprintf(fp,'results, file=%s\n',ab job);
fprintf(fp,'read curve, var=u3, name=disp, node=3\n\n');
fprintf(fp,'read curve, var=rf3, name=forc, node=3\n\n');
fprintf(fp,'define curve, operation=combine, name=f-d\n');
if
(numrremove -= min-remove)
fprintf(fp,'\n');
end
fprintf(fp,'disp, -1\nforc, -1\n');
fprintf(fp, 'set,
xy print file=%s.txt\n',ab-job);
fprintf(fp,'print curve\nfd\n\n');
end
fclose(fp);
-117-
I. Sample Unix script to run ABAQUS/Standard
# rundefect - 20 abaqus simulations
abaqus
echo '
abaqus
echo '
abaqus
echo '
abaqus
echo '
abaqus
echo '
abaqus
echo '
abaqus
echo '
abaqus
echo '
abaqus
echo '
abaqus
echo '
abaqus
echo '
abaqus
echo '
abaqus
echo '
abaqus
echo '
abaqus
echo '
abaqus
echo '
abaqus
echo '
abaqus
echo '
abaqus
echo '
abaqus
job=def_1 interactive
'
job=def_2 interactive
'
job=def_3 interactive
'
job=def_4 interactive
'
job=def_5 interactive
'
job=def_6 interactive
'
job=def_7 interactive
'
job=def_8 interactive
'
job=def_9 interactive
'
job=def_10 interactive
'
job=def_11 interactive
'
job=def_12
'
job=def_13
'
job=def_14
'
job=def_15
'
job=def_16
'
job=def_17
'
job=def_18
'
job=def_19
'
job=def_20
interactive
interactive
interactive
interactive
interactive
interactive
interactive
interactive
interactive
-118-
J. MATLAB script to automatically generate a POV-Ray scene file (raytrace.m)
*************
% *************RAYTRACE.M
%*
Scene file language for processing with POV-Ray
*
filename = 'unit cell.pov';
fpt = fopen(filename,'w');
% ray trace output
header = [
'#include "colors.inc"'
'#include "textures.inc"'
'camera { location'
'
% header
<1e-3,4e-3,-5e-3>'
'
lookat <1.2e-3, .3e-3,-.5e-3>'
'
angle 301'
'background (White)'
'lightsource {'
'
<1e-3,10e-3,-10e-3>'
color White'
shadowless }'
'lightsource {
'
<1e-3,10e-3,-10e-3>'
'
color White'
'
shadowless }' 1;
for i = 1:length(header)
fprintf(fpt,'%s\n',char(header(i)));
end
for i=l:size(MEMBERS,l)
ix = NODES(MEMBERS(i,2),2);
jy = NODES(MEMBERS(i,2),3);
iz = NODES(MEMBERS(i,2),4);
kx = NODES(MEMBERS(i,3),2);
ky = NODES(MEMBERS(i,3),3);
kz = NODES(MEMBERS(i,3),4);
if (abs(MEMBERS(i,4)-Ax) < le-5*Ax)
% draw structure
color = 'Grey';
else
color = 'Blue';
end
fprintf(fpt,'\ncylinder{\n');
fprintf(fpt,'
<%.4f, %.4f, %.4f>,\n',jx,jz,-l*jy);
fprintf(fpt,'
<%.4f, %.4f, %.4f>,\n',kx,kz,-1*ky);
//
fprintf(fpt,'
%f
fprintf(fpt,'
pigment {color %s}
Radius\n',diam);
}\n',color);
end
fclose(fpt);
-119-
K. POV-Ray scene file that describes the Lattice Block unit cell (unit cell.pov)
#include "colors.inc"
#include "textures.inc"
camera { location <1.7,2.8,-5.0>
look-at <0.75,0.32,-0.75>
angle 30
background {White}
light-source {
<1,10,-10>
color White
shadowless
}
light-source {
<1,10,-10>
color White
shadowless
cylinder[
<0.7500,0.0000,0.0000>,
<0.0000,0.0000,-0.7500>,
0.062500 // Radius
pigment {color Grey)
cylinder{
<0.7500,0.0000,0.0000>,
<1.5000,0.0000,-0.7500>,
0.062500
// Radius
pigment {color Grey)
cylinder{
<1.5000,0.0000,-0.7500>,
<0.7500,0.0000,-1.5000>,
0.062500
// Radius
pigment {color Grey)
cylinder{
<0.0000,0.0000,-0.7500>,
<0.7500,0.0000,-1.5000>,
0.062500 // Radius
pigment {color Grey)
}
cylinder{
<0.0000,0.0000,-0.7500>,
<0.0000,0.0000,-1.5000>,
0.062500 // Radius
pigment {color Grey)
cylinder{
<0.0000,0.0000,0.0000>,
<0.0000,0.0000,-0.7500>,
0.062500 // Radius
pigment {color Grey)
}
cylinder{
<0.7500,0.0000,0.0000>,
<0.7500,0.0000,-1.5000>,
0.062500
// Radius
pigment {color Grey)
}
cylinder{
<1.5000,0.0000,-0.7500>,
<1.5000,0.0000,-1.5000>,
0.062500
// Radius
pigment {color Grey)
}
cylinder{
<1.5000,0.0000,0.0000>,
<1.5000,0.0000,-0.7500>,
-120-
0.062500 // Radius
pigment {color Grey)
}
cylinder{
<0.0000,0.9250,0.0000>,
<0.7500,0.9250,-0.7500>,
0.062500
// Radius
pigment {color Grey)
}
cylinder{
<0.7500,0.9250,0.0000>,
<0.7500,0.9250,-0.7500>,
0.062500
// Radius
pigment {color Grey)
cylinder{
<1.5000,0.9250,0.0000>,
<0.7500,0.9250,-0.7500>,
0.062500 // Radius
pigment {color Grey)
cylinder{
<0.7500,0.9250,-0.7500>,
<0.0000,0.9250,-1.5000>,
0.062500 // Radius
pigment {color Grey)
}
cylinder{
<0.7500,0.9250,-0.7500>,
<0.7500,0.9250,-1.5000>,
0.062500 // Radius
pigment {color Grey)
}
cylinder{
<0.7500,0.9250,-0.7500>,
<1.5000,0.9250,-1.5000>,
0.062500
// Radius
pigment {color Grey)
}
cylinder(
<0.7500,0.0000,0.0000>,
<0.7500,0.9250,-0.7500>,
0.062500 // Radius
pigment {color Grey)
}
cylinder{
<0.0000,0.0000,-0.7500>,
<0.7500,0.9250,-0.7500>,
0.062500 // Radius
pigment {color Grey)
cylinder{
<1.5000,0.0000,-0.7500>,
<0.7500,0.9250,-0.7500>,
0.062500 // Radius
pigment {color Grey)
}
cylinder{
<0.7500,0.0000,-1.5000>,
<0.7500,0.9250,-0.7500>,
0.062500
// Radius
pigment {color Grey)
}
cylinder{
<0.7500,0.0000,0.0000>,
<0.0000,0.9250,0.0000>,
0.062500
// Radius
pigment {color Grey)
}
cylinder{
<0.7500,0.0000,0.0000>,
--
121
-
<1.5000,0.9250,0.0000>,
0.062500 // Radius
pigment {color Grey)
}
cylinder{
<1.5000,0.0000,-0.7500>,
<1.5000,0.9250,0.0000>,
0.062500 // Radius
pigment {color Grey)
cylinder{
<1.5000,0.0000,-0.7500>,
<1.5000,0.9250,-1.5000>,
0.062500 // Radius
pigment {color Grey)
}
cylinder{
<0.7500,0.0000,-1.5000>,
<1.5000,0.9250,-1.5000>,
0.062500 // Radius
pigment {color Grey}
cylinder{
<0.7500,0.0000,-1.5000>,
<0.0000,0.9250,-1.5000>,
0.062500
// Radius
pigment {color Grey)
}
cylinder{
<0.0000,0.0000,-0.7500>,
<0.0000,0.9250,-1.5000>,
0.062500 // Radius
pigment {color Grey)
}
cylinder{
<0.0000,0.0000,-0.7500>,
<0.0000,0.9250,0.0000>,
0.062500 // Radius
pigment {color Grey)
}
cylinder{
<0.0000,0.9250,0.0000>,
<0.0000,0.9250,-1.5000>,
0.062500 // Radius
pigment {color Grey)
}
cylinder{
<1.5000,0.9250,0.0000>,
<1.5000,0.9250,-1.5000>,
0.062500 // Radius
pigment {color Grey)
-122-
L. MATLAB script to generate periodic unit cell model in z-x shear (shear5.m)
% *SHEAR5.M
% Dimensions of base, height
if -exist('b') b = 1.5; end
if -exist('h') h = 0.925; end
if -exist('t')
t = 0.125; end
% Member thickness
% Cross section area
Ax = pi*(t^2)/4;
% Restraints
Rx = 1; Ry = 1; Rz = 1;
% Joint Information
%
Joint
JI =[
1,
2,
3,
4,
5,
I x-pos
y-pos z-pos
x-rest y-rest z-rest
0
.5*b
b
0
b
0
0
0
.5*b
.5*b
0
0
0
0
0
-1
1
-1
1
1
-1
0
-1
0
0
-1; %Lnk
1;
-1; %Lnk
1;
1;
-1;
6,
0
b
0
-1
-1
7,
.5*b
b
0
1
0
%Lnk
1;
8,
b
b
0
-1
-1
9,
0
0
h
1
0
10,
.5*b
0
h
-1
-1
-1;
11,
12,
13,
14,
15,
b
.5*b
0
.5*b
b
0
.5*b
b
b
b
h
h
h
h
h
1
1
1
-1
1
0
1
0
-1
0
1;
1;
1;
-1; %Lnk
1;];
-1;
%Lnk
1;
%Lnk
nj = size(JI,1);
% Restrained Joint Displacements
%
Joint
x-dir
y-dir
z-dir
RJD =
[
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
0
-1*U/2
0
-1*U/2
-1*U/2
0
-1*U/2
0
U/2
0
U/2
U/2
U/2
0
U/2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
% Member Information
% Member j-joint k-joint
MI =
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;];
area
[
1,
2
4
Ax;
2,
3,
4,
2
5
4
5
7
7
Ax;
Ax;
Ax;
5,
4
6
.5*Ax;
6,
7,
1
2
4
7
.5*Ax;
Ax;
8,
9,
10,
11,
5
3
9
10
8
5
12
12
.5*Ax;
.5*Ax;
Ax;
Ax;
12,
13,
11
12
12
13
Ax;
Ax;
% Lower surface
% Upper surface
-123-
14,
12
15,
12
16,
2
17,
4
18,
5
19,
7
20,
2
21,
2
22,
5
23,
5
24,
7
25,
7
26,
4
27,
4
28,
9
29,
11
m = size(MI,l);
14
15
12
12
12
12
9
11
11
15
15
13
13
9
13
15
Ax;
Ax;
Ax;
Ax;
Ax;
Ax;
.5*Ax;
% Vertically diagonal
.5*Ax;
.5*Ax;
.5*Ax;
.5*Ax;
.5*Ax;
. 5*Ax;
.5*Ax;
.5*
*Ax;
% Upper surface, contd
.5*Ax;
% Linke d Joint Information: LJI
Depends on joint number:
% Joint
x
y
z
LJI =
4
0
5
0
0
4
0
5
0
12
0
0
0
12
0
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
4
0
5
0
0
4
0
5
0
12
0
0
0
12
0
4;
0;
5;
0;
0;
4;
0;
5;
0;
12;
0;
0;
0;
12;
0;
% Actions applied at joints
% Joint x-dir y-dir z-dir
AAJ =
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
[
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;];
-124-
M. MATLAB script to interpret force / displacement data (interp.m).
% interp.m
% Open and process results files for defect sensitivity
% Data from ABAQUS/Post output (text files)
folder = input('Folder: ','s');
yieldtol = 0.2e-2;
% Tolerance for yield stress
a = 0.75;
% half-length in x-direction, in
b = 0.75;
% half-length cell in y-direction, in
c = 0.925;
% height in z-direction, in
d = 0.10;
% vertical offset for inner struts, in
cellx = 6;
% # of cells along x-dir
celly = 6;
% # of cells along y-dir
disp('Note: model parameters are specified in interp.m');
base-path = 'd:\research\lattice block\defect sensitivity';
fout = fopen([base-path '\'
folder '\'
'results.txt'],'a');
fprintf(fout,'num\tE (psi)\tey\tSy (psi)\tS-max(psi)\r\n');
i = 1;
filename = [basepath '\' folder '\def_' num2str(i) '.txt'];
fin = fopen(filename,'r');
while (fin -= -1)
for j=1:9 fgetl(fin); end
data = fscanf(fin,'%f', [2,inf]);
fclose(fin);
D = data(l,:);
Strain = D / c;
F = data(2,:);
Stress = F / (2*a*cellx* 2*b*celly);
E = Stress(l)/Strain(l);
S_max = max(Stress);
k = 1;
while ( Stress(k) > E*(Strain(k) - yield-tol) ),
k = k+l;
slopel = E;
interceptl = 0 - slopel*yield_tol;
slope2 = (Stress(k)-Stress(k-1)) / (Strain(k)-Strain(k-1));
intercept2 = Stress(k) - slope2*Strain(k);
A = [slopel -1; slope2 -1];
B = [-1*interceptl;
-1*intercept2 ];
end
C = inv(A)*B;
ey = C(M);
Sy = C(2);
fprintf(fout,'%03d \t %g \t %g \t %g \t %g\r\n',i,E,ey,Sy,S_max);
if (i==l)
plot(Strain,Stress,'k-o'); hold on;
plot([0, 1.2*ey],[0 1.2*E*ey],'b-');
plot([yield~tol ey],[0 Sy],'rx-');
end
i = i+l;
filename = [basepath '\'
folder '\def_' num2str(i) '.txt'];
fin = fopen(filename,'r');
end
fclose(fout);
-125-
N. MATLAB script to define the octet truss periodic unit cell (frame.m)
% frameoffset.m
% Norman Fleck's Material - Unit cell model with inner strut offset
% Tetrahedron-base, 1 layer thick
if
if
if
if
-exist('L','var')
L = 10e-3;
-exist('Lb','var') Lb = 10e-3;
end
-exist('diam','var')
diam = le-3;
-exist('ofst','var')
ofst = 0.5e-3; end
H = sqrt(Lb^2 - L^2/3)
delx = sqrt(3)*L/3;
+ 2*ofst;
nd
% Face member
% Brace member
% Diameter of member
% Inner strut offset
% Height of unit cell
x-dir offset between faces
Member area
Ax = pi*(diamA2)/4;
x
% node#
a = sqrt(3)/2*L;
b = L/2;
nd
y
z
0
0
0
b
b
2*b
2*b
2*b
0
0
0
b
b
2*b
2*b
2*b
0
b
b
2*b
0
b
b
2*b
0;
0;
0;
0;
0;
0;
0;
0;
% Lower face
H;
H;
H;
H;
H;
H;
H;
H;
% Upper face
NODES =
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
% Mem#
0
a
2*a
0
2*a
0
a
2*a
delx
a+delx
2*a+delx
delx
2*a+delx
delx
a+delx
2*a+delx
a
0
2*a
a
a+delx
delx
2*a+delx
a+delx
jl
j2
ofst;
ofst;
ofst;
ofst;
H-ofst;
H-ofst;
H-ofst;
H-ofst;
% Offset lower face
% Offset upper face
area
MEMBERS
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
1
2
4
4
2
5
2
3
5
9
10
12
12
10
13
10
11
13
18
17
20
17
20
4
4
6
7
7
7
5
5
8
12
12
14
15
15
15
13
13
16
22
22
22
21
24
% Lower face
0.5*Ax;
Ax;
0.5*Ax;
Ax;
Ax;
Ax;
Ax;
0.5*Ax;
0.5*Ax;
0.5*Ax;
% Upper face
Ax;
0.
5*Ax;
Ax;
Ax;
Ax;
Ax;
0.5*Ax;
0.5*Ax;
0.5*Ax;
Ax;
% Brace members
Ax;
0.5*Ax;
0.5*Ax;
-126-
24,
25,
26,
19
19
19
21
24
23
Ax;
Ax;
0.5*Ax;
];
-127-
0. MATLAB script to generate finite octet truss models (frameoffset.m).
%
%
%
%
frame.m
Norman Fleck's Material - matlab model
Tetrahedron-base, 1 layer thick
Unit cell from Nathan Wick's paper, add inner strut offset
if
if
if
if
if
if
-exist('L', 'var')
L = 1;
end
-exist('Lb','var') Lb = 1;
-exist('Rx','var')
Rx = 2;
-exist('Ry','var') Ry = 2;
-exist('E','var')
E = 1e7;
-exist('ofst','var')
ofst = 0.05;
H = sqrt(Lb^2 - L^2/3)+
2*ofst;
% Face member
end
end
end
end
end
% Brace member
%
%
%
%
% Height of unit cell
dx = sqrt(3)*L/3;
delx = dx;
faces
% x-dir offset between
% upper and lower
% ********* Create nodes **********
% Nodes in each cell (nec)
% node#
x
y
nec = [
1,
0
2,
sqrt(3)*L/2
0
3,
dx
4, sqrt(3)*L/2+dx
0
5,
0
6,
sqrt(3)*L/2
0
7,
dx
8, sqrt(3)*L/2+dx
0
z
L/2
H;
H;
L/2
0;
0;
H-ofst;
L/2
H-ofst;
L/2
ofst;
I;
ofst;
% Nodes on back row (+x dir)
nbr =
[
1,
sqrt(3)*L
sqrt(3)*L+dx
sqrt(3)*L
sqrt(3)*L+dx
2,
3,
4,
L/2
L/2
L/2
L/2
H;
0;
H-ofst;
];
ofst;
% Nodes on deepest row (+y dir)
ndr = [
1,
sqrt(3)*L/2
L
2, sqrt(3)*L/2+dx
L
3,
sqrt(3)*L/2
L
4, sqrt(3)*L/2+dx
L
H;
0;
H-ofst;
ofst;
];
global NODES;
NODES = [ 0 0 0 0 1;
% initialize node array
i = 1;
for rx = 0:Rx-1
for ry = 0:Ry-l
for n = l:size(nec,l)
% (all cells)
nx = nec(n,2) + rx*sqrt(3)*L
ny = nec(n,3) + ry*L;
nz = nec(n,4);
NODES(i,:)
i = i + 1;
=
[i,
nx, ny, nz]
end
if
(rx == Rx -
1)
% (back row)
for n = l:size(nbr,l)
nx = nbr(n,2)
+ rx*sqrt(3
ny = nbr(n,3) + ry*L;
nz = nbr(n,4);
NODES(i,:) = [i, nx, ny, nz];
i = i + 1;
end
end
if
(ry == Ry -
# of unit cells in x-dir
# of unit cells in y-dir
Young's modulus
Inner strut offset
1)
% (deepest row)
for n = 1:size(ndr,l)
-128-
nx = ndr(n,2) + rx*sqrt(3)*L;
ny = ndr(n,3) + ry*L;
nz = ndr(n,4);
NODES(i,:) =
i = i + 1;
[i, nx, ny, nz];
end
end
end
end
****
*
% *Create
members
% Members in each cell (mec)
% mem#
x1
x2
mec = [
1,
0
sqrt(3)*L/2
L
2,
0
sqrt(3)*L/2
0
3,
sqrt(3)*L/2
H;
4,
sqrt(3) *L/2
L/2
H;
5,
sqrt(3) *L/2
L/2
H;
6,
dx
sqrt(3)*L/2+dx L
7,
dx
sqrt(3)*L/2+dx
0
8, sqrt(3)*L/2+dx
0;
9,
sqrt(3)*L/2+dx L
0;
10, sqrt(3)*L/2+dx 0
0;
11,
0
L/2
ofst;
12, sqrt(3)*L/2
L
L/2
ofst;
13, sqrt(3)*L/2
0
L/2
ofst;
14, sqrt(3)*L/2
0
ofst;
15, sqrt(3)*L/2+dx 0
H-ofst;
16, sqrt(3)*L/2+dx L
H-ofst; ];
% Members on back row (+x dir)
mbr = [
1,
sqrt(3)*L+dx
L/2
H-ofst; 1;
****
H;
MEMBERS = [ 0 0 0 ];
i = 1;
tol = 0.00le-3;
for rx = 0:Rx-1
for ry = 0:Ry-1
zl
L/2
H
% (top face)
L/2
H
H;
H
sqrt(3)*L/2
H
sqrt (3) *L
H
sqrt (3) *L
L
0
L/2
% (bottom face)
0
L/2
0;
0
sqrt (3)*L/2+dx
L
0
sqrt(3)*L+dx
L/2
0
sqrt(3)*L+dx
L/2
H-ofst
L/2
dx
% (brace)
H-ofst
dx
H-ofst
dx
H-ofst
sqr t(3)*L/2+dx
0
ofst
sqrt (3)*L
L/2
ofst
sqrt (3) *L
L/2
L/2
% (brace)
ofst
% Members on deepest row (+y dlir)
mdr = [
1,
sqrt(3)*L/2
L
ofst; ];
% (brace)
% Members between cells
mbc = [
1, sqrt(3)*L/2
0
H;
% (top)
2,
sqrt(3)*L/2+dx 0
(bottom)
yl
z2
H-ofst
H
0
sqr t(3)*L/2+dx
sqrt (3) *L/2
sqrt(3)*L/2 +dx L
% initialize member array
% tolerance
-129-
sqrt(3) *L
L
L
0;
1;
%
for n = 1:size(mec,1)
nx = mec(n,2) + rx*sqrt(3)*L;
ny = mec(n,3) + ry*L;
nz
% (all cells)
= mec(n,4);
n1 = fj(nx,ny,nz,tol);
nx = mec(n,5) + rx*sqrt(3)*L;
ny = mec(n,6) + ry*L;
nz = mec(n,7);
n2 = fj(nx,ny,nz,tol);
MEMBERS(i,:) = [i, n1, n2];
i = 1 + 1;
end
if (rx == Rx - 1)
for n = 1:size(mbr,l)
nx = mbr(n,2) + rx*sqrt(3)*L;
ny = mbr(n,3) + ry*L;
nz = mbr(n,4);
nl = fj(nx,ny,nz,tol);
nx = mbr(n,5) + rx*sqrt(3)*L;
% (back row)
ny = mbr(n,6) + ry*L;
nz = mbr(n,7);
n2 = fj(nx,ny,nz,tol);
MEMBERS(i,:) = [i, n1, n2];
i = i + 1;
end
en d
if (ry == Ry - 1)%
for n = 1:size(mdr,l)
nx = mdr(n,2) + rx*sqrt(3)*L;
ny = mdr(n,3) + ry*L;
nz = mdr(n,4);
n1 = fj(nx,ny,nz,tol);
nx
mdr(n,5) + rx*sqrt(3)*L;
ny = mdr(n,6) + ry*L;
(deepest row)
nz = mdr(n,7);
n2 = fj(nx,ny,nz,tol);
MEMBERS(i,:) = [i, n1, n2];
i = i + 1;
end
end
if ( (rx > 0) & (ry > 0) ) % members bet ween cells
for n = 1:size(mbc,l)
nx = mbc(n,2) + (rx-0.5)*sqrt(3)*L;
ny = mbc(n,3) + (ry-0.5)*L;
nz = mbc(n,4);
n1 = fj(nx,ny,nz,tol);
nx = mbc(n,5) + (rx-0.5)*sqrt(3)*L;
ny = mbc(n,6) + (ry-0.5)*L;
nz = mbc(n,7);
n2 = fj(nx,ny,nz,tol);
MEMBERS(i,:) =
i = i + 1;
[i,
n1, n2];
end
end
end
end
% check for repeated nodes
for n = 1:size(NODES,l)
for i = n+1 : size(NODES,l)
if( (NODES(n,2)==NODES(i,2))
& (NODES(n,3)==NODES(i,3))
fprintf(l,'Nodes %d and %d are the same\n',n,i);
end
end
end
% check for repeated members
for n = l:size(MEMBERS,l)
for i = n+1 : size(MEMBERS,1)
-130-
& (NODES(n,4)==NODES(i,4))
if(
(MEMBERS(n,2)==MEMBERS(i,2)) & (MEMBERS(n,3)==MEMBERS(i,3))
fprintf(1, 'Members %d and %d are the same\n',n,i);
end
end
end
-131-
P. MATLAB script to compress octet truss in x-direction (constrain-x.m)
% constrainx.m
% Constrain unit cell for loading in x-dir
U = -0.le-3;
if -exist('U','var')
magnitude
end
% applied to each side
JI = zeros(size(NODES,1),7);
JI(:,1:4) = NODES;
MI = MEMBERS;
AAJ = zeros(size(NODES,1),4);
AAJ(:,l) = transpose(l:size(NODES,1));
% Restrained Joint Displacements
%
J# x-dir y-dir z-dir
RJD =
[
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
32,
-l*U
0
+1*U
-l*U
+1*U
-1*U
0
+1*U
-l*U
0
+1*U
-1*U
+1*U
-1*U
0
+1*U
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
1;
% Linked Joint Information: LJI
%
Depends on joint number:
%
J# x-dir y-dir z-dir
LJI =
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
[
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
2
0
0
7
0
7
10
0
10
0
0
15
0
0;
0;
0;
0;
0;
0;
0;
0;
12;
0;
13;
0;
0;
12;
0;
-132-
% displacement
16,
17,
18,
19,
20,
21,
22,
23,
24,
0
2
4
5
7
10
12
13
15
13;
2;
4;
5;
7;
10;
12;
13;
15;
15
2
4
5
7
10
12
13
15
% Inner strut joints
];
for i = 1:size(NODES,1)
for j = 2:4
if (RJD(i,j) ~= 0)
JI(i,j+3)
=
% restrain all displaced nodes
1;
elseif (LJI(i,j) > 0)
JI(i,j+3) = -1;
end
% identify linked nodes
end
end
% Restrain zero-displacement nodes
for i = 1:8, JI(i,7) = 1;
end
JI(4,6) = 1;
JI(13,6) = 1;
% bottom face restrained in z-dir
% node 4 in y-dir
% node 13 in y-dir
-133-
Q. MATLAB script to compress octet truss in y-direction (constrain-y.m)
% constrain-y.m
% Constrain unit cell for loading in y-dir
U = -0.le-3;
if -exist('U','var')
magnitude
end
% applied to each side
JI = zeros(size(NODES,1),7);
JI(:,1:4) = NODES;
MI = MEMBERS;
AAJ
zeros(size(NODES,1),4);
AAJ(:,l) = transpose(l:size(NODES,1));
% Restrained Joint Displacements
%
J# x-dir y-dir z-dir
RJD =
[
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
32,
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
-1*U
-1*U
-1*U
0
0
+1*U
+1*U
+1*U
-1*U
-1*U
-1*U
0
0
+1*U
+1*U
+1*U
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
];
% Linked Joint Information: LJI
%
Depends on joint number:
%
J# x-dir y-dir z-dir
LJI =
[
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
4
0
5
0
0
4
0
5
12
0
13
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0;
0;
0;
0;
0;
0;
0;
0;
12;
0;
13;
0;
0;
14,
12
0
12;
15,
0
0
0;
-134-
% displacement
16,
17,
18,
19,
20,
21,
22,
23,
24,
13
2
4
5
7
10
12
13
15
0
2
4
5
7
10
12
13
15
13;
2;
4;
5;
7.
10;
12;
13;
15;
for i = 1:size(NODES,1)
for j = 2:4
if (RJD(i,j) ~= 0)
JI(i,j+3) = 1;
elseif (LJI(i,j) > 0)
JI(i,j+3) = -1;
% restrain all displaced nodes
% identify linked nodes
end
end
end
% Restrain zero-displacement rodes
for i = 1:8,
JI(i,7) = 1;
end
JI(4,5) = 1;
% bottom face restrained in z-dir
% node 4 in x-dir
-135-
R. MATLAB script to compress octet truss in z-direction (constrain-z.m)
% constrainz.m
% Constrain unit cell for loading in z-dir
U = -0.1e-3;
if -exist('U','var')
magnitude
JI = zeros(size(NODES,1),7);
JI(:,1:4) = NODES;
MI
= MEMBERS;
AAJ = zeros(size(NODES,1),4);
AAJ(:,l) = transpose(l:size(NODES,1));
% Restrained Joint Displacements
%
J# x-dir y-dir z-dir
RJD =
[
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
31,
32,
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0;
0;
0;
0;
0;
0;
0;
0;
+1*U;
+1*U;
+1*U;
+1*U;
+1*U;
+1*U;
+1*U;
+1*U;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
];
% Linked Joint Information: LJI
%
Depends on joint number:
%
J# x-dir y-dir z-dir
LJI =
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
[
4
0
5
0
0
3
0
5
12
0
13
0
0
12
0
13
2
0
2
0
0
7
0
7
10
0
10
0
0
15
0
15
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
-136-
end
% displacement
17,
18,
19,
20,
21,
22,
23,
24,
2
4
5
7
10
12
13
15
2
4
5
7
10
12
13
15
2;
% Inner strut joints
4.
5;
7.
10;
12;
13;
15; ];
for i = 1:size(NODES,1)
for j = 2:4
(RJD(i,j) ~= 0)
JI(i,j+3) = 1;
elseif (LJI(i,j) > 0)
JI(i,j+3) = -1;
% restrain all displaced nodes
if
% identify linked nodes
end
end
end
% Restrain zero-displacement nodes
for i = 1:8, JI(i,7) = 1;
end
JI(2,6) = 1;
JI(4,5) = 1;
% bottom face restrained in z-dir
% node 2 in y-dir
% node 4 in x-dir
-137-
S. MATLAB script to calculate normal stress /strain properties of octet truss
(main.m)
% main.m
% Octet truss material: unit cell analysis
end
FLength = 10e-3;
% Face member, m
if -exist('Lb','var')
Lb = 10e-3;
end
% Brace member, m
if -exist('E','var')
E = 70e9;
end
% Young 's modulus, Pa
if -exist('diam','var')
end
diam = 1.30e-3;
% Diameter of member,i
if -exist('ofst','var')
end
ofst = 0.75e-3;
% Inner strut offset,i
if -exist('U','var')
U = -le-3;
end
% displacement magnitude, m
if -exist('FLength','var')
% Model parameters:
L = FLength;
fprintf(l,'MODEL PARAMETERS:\n');
fprintf(l,'L = %f m
Lb = %f m\n',L,Lb);
fprintf(1,'E = %g pa diam= %f m\n',E,diam);
fprintf(1,'offset = %f m U = %f m\n',ofst,U);
fprintf(1,'\nRESULTS:\n');
% Load in x-dir
L = FLength;
frame_offset
constrain_x
solvetrusslink
L = FLength;
volumefrac
P = 0; i = 0;
for j = 1:size(NODES,l)
% Calculate net force in x-direction
nx = NODES(j,2);
ny = NODES(j,3);
nz = NODES(j,4);
switch nz
case 0
if (
= 2*a),
P = P + Aj(3*j-2); i=i+l;
end
case H
if (nx == 2*a + delx), P = P + Aj(3*j-2); i=i+l;
end
end
end
fprintf(1,'\nNet Force in x-dir = %f (including %d nodes)\n',P,i);
stress = P / (2*b*H);
strain = 2*U / (2*a);
Ex = stress / strain;
Exn = (Ex/E)*(1/vf);
fprintf(1,'stress = %f Pa\n',stress);
fprintf(1,'strain = %f\n',strain);
fprintf(1,'X-dir modulus = %g Pa\n',Ex);
fprintf(l,'Normalized X-dir modulus = %f\n',Exn);
figure(l); clf; draw; title('Load in x-dir');
drawdef;
% Load in y-dir
L = FLength;
frame_offset
constrain-y
solve-truss-link
L
FLength;
P = 0; i = 0;
for j = 1:size(NODES,l)
ny = NODES(j,3);
nz = NODES(j,4);
if (ny==L)&( (nz==0)
P = P + Aj(3*j-1);
% Calculate net force in y-direction
|
(nz==H)
i=i+l;
end
end
-138-
fprintf(1,'\nNet Force in y-dir = %f (including %d nodes)\n',P,i);
stress = P / (2*a*H);
strain = 2*U / (2*b);
Ey = stress / strain;
Eyn =
(Ey/E)*(l/vf);
fprintf(l,'stress = %f Pa\n',stress);
fprintf(1,'strain = %f\n',strain);
fprintf(l,'Y-dir modulus = %g Pa\n',Ey);
fprintf (1, 'Normalized Y-dir modulus = %f\n',Eyn);
figure(2); clf; draw; drawdef; title('Load in y-dir');
% Load in z-dir
L = FLength;
frame-offset
constrain_z
solve_truss_link
L = FLength;
P = 0; i = 0;
for j = 1:size(NODES,l)
nz = NODES(j,4);
if
(nz == H),
P = P + Ai(3*j);
% Calculate net force in z-direction
i=i+l; enc
end
fprintf (1, '\nNet Force in z-dir = %f
stress = P / (2*a*2*b);
strain = U / H;
Ez = stress / strain;
Ezn =
(including %d nodes) \n',P,i);
(Ez/E)*(l/vf);
fprintf(l,'stress = %f Pa\n',stress);
fprintf(l,'strain = %f\n',strain);
fprintf(1,'Z-dir modulus = %g Pa\n',Ez);
fprintf(1,'Normalized Z-dir modulus = %f\n',Ezn);
figure(3); clf; draw; title('Load in z-dir'); drawdef;
fprintf(1,'Volume fraction vf = %f%%\n',vf);
-139-
T. MATLAB script for parametric analysis of octet truss (parametric.m)
%
%
%
%
parametric.m
Octet truss material: unit cell analysis
Script to examine range of L / Lb
Normalize results
L_Lb-min = .1;
L_Lbmax = 1.7;
L_Lb-steps = 30;
% Ratio of L / Lb
F Length = 10e-3;
if -exist('E','var')
end
% Young' s modulus, Pa
if -exist('diam','var')
% Diameter of member, m
if -exist('ofst','var')
% Inner strut offset, m
if -exist('U','var')
end
% displa cement magnitude, m
if -exist('FLength','var')
end
E = 70e9;
% Face member, m
diam = 2.0e-3;
end
ofst = 0.75e-3;
end
U = -0.1e-3;
fp = fopen('Results.txt','w');
% Model parameters:
for pntr = [1 fp];
fprintf(pntr,'MODEL PARAMETERS:\n');
fprintf(pntr,'L = %f m \n',FLength);
fprintf(pntr, 'E = %g pa diam = %f m\n',E,diam);
fprintf(pntr,'offset = %f m U = %f m\n',ofst,U);
fprintf(pntr,'\nSCRIPT PARAMETERS\n');
fprintf(pntr,'L/Lb: min = %g,
max=%g,
steps=%d\n',
L_Lb_min,LLbmax,L Lb steps);
fprintf(pntr,'\nPROGRESS:\n');
end
fprintf(fp,'L/Lb\tEnx\tEny\tEnz');
for LLb = logspace (log10 (LLb-min),log10 (LLb-max),LLb_steps)
fprintf(1,'.');
L = FLength;
Lb = L / LLb;
fprintf(fp,'\n%f\t',LLb);
frameoffset;
constrain-x;
solvetruss-link;
L = FLength;
volumefrac;
P = 0; i = 0;
for j = 1:size(NODES,l)
% x-direction
nx = NODES(j,2);
nz
= NODES(j,4);
switch nz
if (nm
case 0,
case H,
if
== 2*a),
(nx == 2*a + delx),
P = P + Aj(3*j-2);
P = P + Aj(3*j-2);
i=i+l;
i=i+l;
end
end
if (i ~= 6) fprintf(l,'Error: %d nodes in x-dir force\n',i); end
stress = P / (2*b*H);
strain = 2*U / (2*a);
Ex = stress / strain;
Exn = (Ex/E)*(l/vf);
fprintf(fp,'%f\t',Exn);
L = FLength;
frame-offset;
P = 0; i = 0;
constrain-y;
solve-truss_link;
L = FLength;
for i = 1:size(NODES,l)
% y-direction
ny = NODES(j,3);
nz = NODES(j,4);
if (ny == L)&( (nz==0) I (nz==H)
P = P + Aj(3*j-1); i=i+l;
end
-140-
end
end
end
if (i ~= 6) fprintf(1,'Error: %d nodes in y-dir force\n',i); end
stress = P / (2*a*H);
strain = 2*U / (2*b);
Ey = stress / strain;
Eyn = (Ey/E)*(l/vf);
fprintf(fp,'%f\t',Eyn);
L = FLength;
frame_offset;
constrain-z;
solvetruss-link;
L = FLength;
P = 0; i = 0;
for j = 1:size(NODES,l)
% z-direction
nz = NODES(j,4);
if (nz == H),
P = P + Aj(3*j);
i=i+l; end
end
if (i ~= 8) fprintf(l,'Error: %d nodes in y-dir force\n',i); end
stress = P / (2*a*2*b);
strain = U / H;
Ez = stress / strain;
Ezn = (Ez/E)*(l/vf);
fprintf(fp,'%f\t',Ezn);
end
fprintf(fp,'\n\n');
fprintf(l,'\n');
fclose(fp);
-141-
U. MATLAB script to calculate the volume fraction for an octet truss structure
(volumefrac.m).
% Calculate Volume Fraction
% Volume fraction
TotalLength = 0;
for i =
jx =
jy =
jz =
kx =
ky =
kz =
1:size(MEMBERS,l)
NODES(MEMBERS(i,2),2);
NODES(MEMBERS(i,2),3);
NODES(MEMBERS(i,2),4);
NODES(MEMBERS(i,3),2);
NODES(MEMBERS(i,3),3);
NODES(MEMBERS(i,3),4);
TotalLength = TotalLength + sqrt( (jx-kx)^2 + (jy-ky)^2 + (jz-kz)^2 );
end
MemberVolume = Ax*TotalLength;
SurfaceArea = (sqrt(3)/2)*L^2 * ( Rx*Ry + (Rx-l)*(Ry-1) );
Volume = H*SurfaceArea;
vf = MemberVolume / Volume
-142-
V. MATLAB script to load octet truss unit cell in zy-shear (constrain_zy_shear.m)
% constrain-zyshear.m
% Constrain unit cell for loading in zy-shear
end
U = 0.le-3;
if -exist('U','var')
magnitude
% applied to each side
JI = zeros(size(NODES,1),7);
JI(:,1:4) = NODES;
MI
MEMBERS;
AAJ = zeros(size(NODES,1),4);
AAJ(:,l) = transpose(l:size(NODES,1));
% Restrained Joint Displacements
%
J# x-dir y-dir z-dir
RJD =
[
1,
2,
3,
4,
5,
6,
7,
8,
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
9,
10,
11,
0
0
0
+1*U
+1*U
+1*U
12,
0
+1*U
13,
14,
15,
16,
0
0
0
0
+1*U
+1*U
+1*U
+1*U
17,
18,
19,
20,
21,
22,
23,
24,
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0; J;
Linked Joint Information: LJI
Depends on joint number:
J# x-dir y-dir z-dir
LJ I
=
[
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
2
0
2
0
0
7
0
7
10
0
10
0
0
15
0
15
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
17,
2
2
2;
18,
19,
4
5
4
5
4;
5;
20,
7
7
7;
21,
22,
23,
10
12
13
10
12
13
10;
12;
13;
% Inner strut joints
-
143 -
% displacement
24,
15
15
15;
1;
for i = 1:size(NODES,l)
for j = 2:4
if (RJD(i,j) ~= 0)
JI(i,j+3)
=
% restrain all displaced nodes
1;
elseif (LJI(i,j) > 0)
JI(i,j+3) = -1;
end
% identify linked nodes
end
end
% Restrain zero-displacement nodes
for i = 1:8
JI(i,6:7) = [1 1];
end
for i = 9:16
% bottom face restrained in y,z-dir
% top face restrained in z-dir
JI(i,7) = 1;
end
JI(4,5) = 1;
% node 4 in x-dir
-144-
W. MATLAB script to load octet truss unit cell in zx shear (constrainzxshear.m)
% constrainzxshear.m
% Constrain unit cell for loading in zx-shear
U =
if -exist('U','var')
magnitude
0.le-3;
end
% applied to each side
JI = zeros(size(NODES,1),7);
JI(:,1:4) = NODES;
MI = MEMBERS;
AAJ = zeros(size(NODES,1),4);
AAJ(:,l) = transpose(l:size(NODES,1));
% Restrained Joint Displacements
%
J# x-dir y-dir z-dir
RJD =
[
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
0
0
0
0
0
0
0
0
+1*U
+1*U
+1*U
+1*U
+1*U
+1*U
+1*U
+1*U
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0; ];
% Linked Joint Information: LJI
%
Depends on joint number:
%
J# x-dir y-dir z-dir
LJI =
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
[
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
4
5
7
10
12
13
2
0
2
0
0
7
0
7
10
0
10
0
0
15
0
15
2
4
5
7
10
12
13
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
2;
4;
5;
7;
10;
12;
13;
% Inner strut joints
-
145 -
% displacement
24,
15
15
15;
1;
for i = 1:size(NODES,l)
for j = 2:4
if (RJD(i,j) ~= 0)
JI(i,j+3) = 1;
elseif (LJI(i,j) > 0)
JI(i,j+3) = -1;
end
end
end
% restrain all displaced nodes
% identify linked nodes
% Restrain zero-displacement nodes
for i = 1:8
JI(i,7) = 1;
JI(i,5) = 1;
end
for i = 9:16
% bottom face restrained in x,z-dir
% top face restrained in z-dir
JI(i,7) = 1;
end
JI(4,6)
= 1;
% node 4 in y-dir
-146-
X. MATLAB script to load octet truss unit cell in xy shear (constrainxyshear.m)
% constrainxy_shear.m
% Constrain unit cell for loading in xy-shear
U =
if -exist('U','var')
magnitude
0.le-3;
end
% applied to each side
JI = zeros(size(NODES,1),7);
JI(:,1:4) = NODES;
MI = MEMBERS;
AAJ = zeros(size(NODES,1),4);
AAJ(:,l) = transpose(l:size(NODES,1));
% Restrained Joint Displacements
%
J# x-dir y-dir z-dir
RJD =
[
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
0
0
0
0
0
+1*U
+1*U
+1*U
0
0
0
0
0
+1*U
+1*U
+1*U
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0;
0; ];
% Linked Joint Information: LJI
%
Depends on joint number:
%
J# x-dir y-dir z-dir
LJI =
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
[
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
4
5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
4
5
20,
7
7
21,
22,
23,
24,
10
12
13
15
10
12
13
15
2;
0;
2;
0;
0;
7;
0;
7;
10;
0;
10;
0;
0;
15;
0;
15;
2;
4;
5;
% Inner strut joints
7;
10;
12;
13;
15; ];
-147-
% displacement
for i = 1:size(NODES,l)
for j = 2:4
if (RJD(i,j) ~= 0)
JI(i,j+3) = 1;
elseif (LJI(i,j) > 0)
JI(i,j+3) = -1;
end
end
end
% restrain all displaced nodes
% identify linked nodes
% Restrain zero-displacement nodes
for i = [1, 2, 3, 9, 10, 11]
% Front face restrained in x,y-dir
JI(i,5:6) =
[1 1];
end
for i = (6, 7, 8, 14, 15, 16] % back face restrained in y-dir
JI(i,6) = 1;
end
JI(4,7) = 1;
% node 4 in z-dir
-148-