Input file for Three-Span Beam Structure
/*
* =====================================================================
* Structural Analysis of a Three-Span Beam Structure.
*
* Written By: Mark Austin March 1998
* =====================================================================
*/
/* Setup problem specific parameters */
NDimension = 2;
NDofPerNode = 3;
MaxNodesPerElement = 2;
StartMesh();
/* Generate line of nodes */
node = 1;
AddNode(node, [ 0 m, 0 m ] );
node = 2;
AddNode(node, [ 10 m, 0 m ] );
node = 3;
AddNode(node, [ 20 m, 0 m ] );
node = 4;
AddNode(node, [ 25 m, 0 m ] );
/* Attach beam elements to nodes */
elmtno = 1;
AddElmt( elmtno, [ 1, 2 ], "beamelmt");
elmtno = 2;
AddElmt( elmtno, [ 2, 3 ], "beamelmt");
elmtno = 3;
AddElmt( elmtno, [ 3, 4 ], "beamelmt");
/* Define section and material properties */
ElementAttr("beamelmt") { type = "FRAME_2D";
section = "beamsection";
material = "beammaterial";
}
SectionAttr("beamsection") { Izz = 6.60e8 mm^4;
area = 4.26e4 mm^2;
}
MaterialAttr("beammaterial") { poisson = 0.25;
E = 200 GPa;
}
/* Apply full-fixity at wall support and vertical restraint at */
/* supports "B" and "C". */
nodeno = 1;
FixNode( nodeno, [ 1, 1, 1 ]);
nodeno = 2;
FixNode( nodeno, [ 0, 1, 0 ]);
nodeno = 3;
FixNode( nodeno, [ 0, 1, 0 ]);
/* Build array of Fixed-End Forces/Moments */
forces = Matrix( [3,6] );
forces = ColumnUnits ( forces, [ N, N, N*m, N, N, N*m ]);
/* Equivalent concentrated end forces/moments for element 1 */
L = 10 m; P = 10 kN;
forces[1][2] = -P/2;
forces[1][3] = -P*L/8;
forces[1][5] = -P/2;
forces[1][6] = P*L/8;
/* Equivalent concentrated end forces/moments for element 2 */
L = 10 m; W = 2 kN/m;
forces[2][2] = -W*L/2;
forces[2][3] = -W*L*L/12;
forces[2][5] = -W*L/2;
forces[2][6] = W*L*L/12;
/* Equivalent concentrated end forces/moments for element 3 */
L = 5 m; W = 0 kN/m;
forces[3][2] = -W*L/2;
forces[3][3] = -W*L*L/12;
forces[3][5] = -W*L/2;
forces[3][6] = W*L*L/12;
/* Apply external forces */
Fx = forces[1][4] + forces[2][1]; /* Fixed end forces at node 3 */
Fy = forces[1][5] + forces[2][2];
Mz = forces[1][6] + forces[2][3];
nodeno = 2;
NodeLoad( nodeno, [ Fx, Fy, Mz ]);
Fx = forces[2][4] + forces[3][1]; /* Fixed end forces at node 3 */
Fy = forces[2][5] + forces[3][2];
Mz = forces[2][6] + forces[3][3];
nodeno = 3;
NodeLoad( nodeno, [ Fx, Fy, Mz ]);
Fx = forces[3][4]; /* Fixed end forces at node 4 */
Fy = forces[3][5];
Mz = forces[3][6];
P = 10 kN; /* Vertical load applied to node 4 */
nodeno = 4;
NodeLoad( nodeno, [ Fx, Fy - P, Mz ]);
/* Compile and Print Finite Element Mesh */
EndMesh();
PrintMesh();
/* Compute "stiffness" and "external load" matrices */
eload = ExternalLoad();
stiff = Stiff();
/* Compute and print displacements */
displ = Solve(stiff, eload);
PrintDispl(displ);
/* Print member forces for elements 1 through 3 */
for ( ii = 1; ii <= 3; ii = ii + 1 ) {
print "\nMember forces for Element", ii, "\n\n";
elmt = GetStress( [ii], displ );
print "End 1 : Horizontal =", elmt[1][3] - forces [ ii ][1] ,"\n";
print " Vertical =", elmt[1][4] - forces [ ii ][2] ,"\n";
print " Moment =", elmt[1][5] - forces [ ii ][3] ,"\n";
print "End 2 : Horizontal =", elmt[2][3] - forces [ ii ][4] ,"\n";
print " Vertical =", elmt[2][4] - forces [ ii ][5] ,"\n";
print " Moment =", elmt[2][5] - forces [ ii ][6] ,"\n";
}
/* Compute and print support reactions */
elmt1 = GetStress( [1], displ );
elmt2 = GetStress( [2], displ );
elmt3 = GetStress( [3], displ );
print "\nSupport Reactions \n";
print "===============================================\n";
print "Support A : Vertical Reaction =", elmt1[1][4] - forces [1][2] (kN) ,"\n";
print " Wall Moment =", elmt1[1][5] - forces [1][3] (kN*m),"\n";
print "\n";
print "Support B : Vertical Reaction =", elmt1[2][4] - forces [1][5]
+ elmt2[1][4] - forces [2][2] (kN),"\n";
print "\n";
print "Support C : Vertical Reaction =", elmt2[2][4] - forces [2][5]
+ elmt3[1][4] - forces [3][2] (kN),"\n";
print "===============================================\n";
quit;
Developed in March 1998 by Mark Austin
Last Modified March 3, 1998
Copyright © 1998, Mark Austin,
Department of Civil Engineering,
University of Maryland